From 3c88cc03f85c08f89a48d41cd7948313ef70d7a5 Mon Sep 17 00:00:00 2001 From: gfdgd_xi <3025613752@qq.com> Date: Sat, 11 May 2024 19:46:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E4=BB=8Eapt=E6=BA=90?= =?UTF-8?q?=E8=AF=BB=E5=8F=96=E6=95=B0=E6=8D=AE=E5=B9=B6=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernelinformation.cpp | 18 ++++++++++++------ mainwindow.cpp | 3 ++- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/kernelinformation.cpp b/kernelinformation.cpp index a552ea9..a983056 100644 --- a/kernelinformation.cpp +++ b/kernelinformation.cpp @@ -18,6 +18,7 @@ void KernelInformation::LoadInfo() AptPkgInfo info = AptPkgInfo("linux-", AptPkgInfo::PkgSearchOption::HeadInclude); QStringList list = info.GetAptPackageList(); QJsonArray array; + indexMap = {}; for(QString i: list) { QJsonObject object; bool isContinue = false; @@ -51,8 +52,12 @@ void KernelInformation::LoadInfo() alreadyIndex = indexMap.value(strTemp); QJsonArray pkgArray = array.at(alreadyIndex).toObject().value("PkgName").toArray(); pkgArray.append(i); - array.insert(alreadyIndex, array.at(alreadyIndex).toObject().insert("PkgName", pkgArray)->toObject()); - //array.at(alreadyIndex).toObject().insert("PkgName", pkgArray); + qDebug() << pkgArray; + //array.replace(alreadyIndex, array.at(alreadyIndex).toObject().insert("PkgName", pkgArray)->toObject()); + qDebug() << alreadyIndex << array.count(); + QJsonObject pkgObject = array.at(alreadyIndex).toObject(); + pkgObject["PkgName"] = pkgArray; + array.replace(alreadyIndex, pkgObject);//.insert("PkgName", pkgArray)->toObject()); continue; } info.SetPkgName(strTemp); @@ -61,6 +66,7 @@ void KernelInformation::LoadInfo() object.insert("Des", info.get_maintainer(i)); object.insert("Arch", info.get_architecture(i)); object.insert("PkgName", QJsonArray::fromStringList(QStringList() << i)); + indexMap.insert(strTemp, array.count()); array.append(object); } this->listData = array; @@ -130,16 +136,16 @@ QStringList KernelInformation::get_system(int value) const QStringList KernelInformation::get_arch(int value) const { - QJsonArray list = get_kernelData(value).value("Arch").toArray(); - int count = list.count(); + //QJsonArray list = get_kernelData(value).value("Arch").toArray(); + /*int count = list.count(); QStringList result; for(int i = 0; i < count; i++) { result << list.at(i).toString(); } if(!result.count()) { result << "all"; - } - return result; + }*/ + return QStringList() << get_kernelData(value).value("Arch").toString(); } QString KernelInformation::localKernelName() const diff --git a/mainwindow.cpp b/mainwindow.cpp index c15aa8a..2725095 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -31,12 +31,13 @@ void MainWindow::RefreshKernelListView(KernelInformation *info, bool showLocalAr int count = info->get_count(); QStandardItemModel *model = new QStandardItemModel(); model->setHorizontalHeaderLabels(QStringList() << tr("ID") << tr("Kernel Name") << tr("Author") << tr("Arch") << tr("Installed")); + const QString arch = info->arch(); int line = 0; for(int i = 0; i < count; i++) { // 显示所有架构 QString kernelArch = ""; bool isLocalArch = false; - const QString arch = info->arch(); + for(QString i: info->get_arch(i)) { if(i == arch) { isLocalArch = true;