update:完善搜索功能

This commit is contained in:
momen 2025-07-06 20:14:51 +08:00
parent 7b6df76276
commit 1be6e62d55
2 changed files with 30 additions and 0 deletions

View File

@ -60,6 +60,11 @@ MainWindow::MainWindow(QWidget *parent)
});
checkUpdates();
// 新增:监听搜索框文本变化
connect(ui->searchPlainTextEdit, &QPlainTextEdit::textChanged, this, [=]() {
QString keyword = ui->searchPlainTextEdit->toPlainText();
filterAppsByKeyword(keyword);
});
initStyle();
});
@ -196,6 +201,7 @@ void MainWindow::checkUpdates()
{
aptssUpdater updater;
QJsonArray updateInfo = updater.getUpdateInfoAsJson();
m_allApps = updateInfo; // 保存所有应用数据
m_model->setUpdateData(updateInfo);
for (const auto &item : updateInfo) {
@ -205,6 +211,27 @@ void MainWindow::checkUpdates()
}
}
// 新增:根据关键字过滤应用
void MainWindow::filterAppsByKeyword(const QString &keyword)
{
if (keyword.trimmed().isEmpty()) {
m_model->setUpdateData(m_allApps);
return;
}
QJsonArray filtered;
for (const auto &item : m_allApps) {
QJsonObject obj = item.toObject();
// 可根据需要匹配更多字段
QString name = obj.value("name").toString();
QString package = obj.value("package").toString();
if (name.contains(keyword, Qt::CaseInsensitive) ||
package.contains(keyword, Qt::CaseInsensitive)) {
filtered.append(item);
}
}
m_model->setUpdateData(filtered);
}
void MainWindow::runAptssUpgrade()
{
QProcess process;

View File

@ -6,6 +6,7 @@
#include "applistmodel.h"
#include "appdelegate.h"
#include <QListView>
#include <QJsonArray> // 添加头文件
QT_BEGIN_NAMESPACE
namespace Ui {
@ -29,5 +30,7 @@ private:
AppListModel *m_model;
AppDelegate *m_delegate;
QListView *listView; // 声明 QListView 指针
QJsonArray m_allApps; // 新增:保存所有应用数据
void filterAppsByKeyword(const QString &keyword); // 新增:搜索过滤函数声明
};
#endif // MAINWINDOW_H