mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-11-04 00:02:21 +08:00
update:从desktop文件中提取应用名
This commit is contained in:
parent
17b5c9afce
commit
ddf1f7396b
@ -2,11 +2,14 @@
|
||||
#include <QProcess>
|
||||
#include <QTextStream>
|
||||
#include <QRegularExpression>
|
||||
#include <QFile>
|
||||
|
||||
aptssUpdater::aptssUpdater(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QStringList aptssUpdater::getUpdateablePackages()
|
||||
{
|
||||
QStringList packageDetails;
|
||||
@ -35,6 +38,7 @@ QStringList aptssUpdater::getUpdateablePackages()
|
||||
|
||||
return packageDetails;
|
||||
}
|
||||
|
||||
QStringList aptssUpdater::getPackageSizes()
|
||||
{
|
||||
QStringList packageSizes;
|
||||
@ -64,4 +68,34 @@ QStringList aptssUpdater::getPackageSizes()
|
||||
}
|
||||
|
||||
return packageSizes;
|
||||
}
|
||||
|
||||
QStringList aptssUpdater::getDesktopAppNames()
|
||||
{
|
||||
QStringList appNames;
|
||||
QStringList updateablePackages = getUpdateablePackages();
|
||||
|
||||
for (const QString &packageDetail : updateablePackages) {
|
||||
// 提取包名(忽略版本信息)
|
||||
QString packageName = packageDetail.split(' ').first();
|
||||
QString desktopFilePath = QString("/usr/share/applications/%1.desktop").arg(packageName);
|
||||
|
||||
QFile desktopFile(desktopFilePath);
|
||||
if (desktopFile.exists() && desktopFile.open(QIODevice::ReadOnly)) {
|
||||
QTextStream stream(&desktopFile);
|
||||
while (!stream.atEnd()) {
|
||||
QString line = stream.readLine();
|
||||
if (line.startsWith("Name=")) {
|
||||
QString appName = line.mid(5); // 提取 Name 属性值
|
||||
appNames << appName;
|
||||
break;
|
||||
}
|
||||
}
|
||||
desktopFile.close();
|
||||
} else {
|
||||
appNames << QString("未找到 .desktop 文件: %1").arg(packageName);
|
||||
}
|
||||
}
|
||||
|
||||
return appNames;
|
||||
}
|
||||
@ -13,6 +13,8 @@ public:
|
||||
QStringList getUpdateablePackages(); // 查询可更新包列表及更新内容
|
||||
qint64 getTotalDownloadSize(); // 获取更新总大小预估
|
||||
QStringList getPackageSizes(); // 获取每个包的大小
|
||||
QStringList getDesktopAppNames(); // 获取桌面应用名称列表
|
||||
|
||||
signals:
|
||||
};
|
||||
|
||||
|
||||
@ -15,13 +15,16 @@ void MainWindow::checkUpdates()
|
||||
// 获取可更新包列表
|
||||
QStringList updateablePackages = updater.getUpdateablePackages();
|
||||
QStringList packageSizes = updater.getPackageSizes();
|
||||
|
||||
QStringList appNames = updater.getDesktopAppNames();
|
||||
qDebug() << "可更新包列表:";
|
||||
for (int i = 0; i < updateablePackages.size(); ++i) {
|
||||
QString packageInfo = updateablePackages.at(i);
|
||||
QString packageSize = (i < packageSizes.size()) ? packageSizes.at(i) : "未知大小";
|
||||
qDebug() << QString("%1 (%2)").arg(packageInfo, packageSize);
|
||||
}
|
||||
for (const QString &appName : appNames) {
|
||||
qDebug() << appName;
|
||||
}
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user