From a36ba3cab27a5a13d9175ba585ed1ed62fd6e404 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Fri, 6 May 2022 16:12:43 +0300 Subject: [PATCH] kinfocenter: assume all module sections can have more than one entry snd_soc_core has two different descriptions and two same license and author sections for example Signed-off-by: Ivailo Monev --- kinfocenter/Modules/kernel/kernel.cpp | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/kinfocenter/Modules/kernel/kernel.cpp b/kinfocenter/Modules/kernel/kernel.cpp index 52a57342..1e0996d5 100644 --- a/kinfocenter/Modules/kernel/kernel.cpp +++ b/kinfocenter/Modules/kernel/kernel.cpp @@ -95,7 +95,10 @@ void KCMKernel::load() moduleoptionswidgetitemlist << i18n("Size") << KGlobal::locale()->formatByteSize(kmod_module_get_size(kmodmodule), 1); (void)new QTreeWidgetItem(modulewidgetitem, moduleoptionswidgetitemlist); + QTreeWidgetItem* modulelicenseswidgetitem = nullptr; + QTreeWidgetItem* moduledescriptionswidgetitem = nullptr; QTreeWidgetItem* moduleauthorswidgetitem = nullptr; + QTreeWidgetItem* modulesignerswidgetitem = nullptr; QTreeWidgetItem* modulefirmwareswidgetitem = nullptr; struct kmod_list *kseclist = NULL; @@ -109,11 +112,23 @@ void KCMKernel::load() QStringList modulesectionwidgetitemlist; if (qstrcmp(kmodkey, "license") == 0) { + if (!modulelicenseswidgetitem) { + QStringList modulelicenseswidgetitemlist; + modulelicenseswidgetitemlist << i18n("Licenses"); + modulelicenseswidgetitem = new QTreeWidgetItem(modulewidgetitem, modulelicenseswidgetitemlist); + } + modulesectionwidgetitemlist << i18n("License") << QString::fromAscii(kmodvalue); - (void)new QTreeWidgetItem(modulewidgetitem, modulesectionwidgetitemlist); + (void)new QTreeWidgetItem(modulelicenseswidgetitem, modulesectionwidgetitemlist); } else if (qstrcmp(kmodkey, "description") == 0) { + if (!moduledescriptionswidgetitem) { + QStringList moduledescriptionswidgetitemlist; + moduledescriptionswidgetitemlist << i18n("Descriptions"); + moduledescriptionswidgetitem = new QTreeWidgetItem(modulewidgetitem, moduledescriptionswidgetitemlist); + } + modulesectionwidgetitemlist << i18n("Description") << QString::fromAscii(kmodvalue); - (void)new QTreeWidgetItem(modulewidgetitem, modulesectionwidgetitemlist); + (void)new QTreeWidgetItem(moduledescriptionswidgetitem, modulesectionwidgetitemlist); } else if (qstrcmp(kmodkey, "author") == 0) { if (!moduleauthorswidgetitem) { QStringList moduleauthorswidgetitemlist; @@ -124,8 +139,14 @@ void KCMKernel::load() modulesectionwidgetitemlist << i18n("Author") << QString::fromAscii(kmodvalue); (void)new QTreeWidgetItem(moduleauthorswidgetitem, modulesectionwidgetitemlist); } else if (qstrcmp(kmodkey, "signer") == 0) { + if (!modulesignerswidgetitem) { + QStringList modulesignerswidgetitemlist; + modulesignerswidgetitemlist << i18n("Signers"); + modulesignerswidgetitem = new QTreeWidgetItem(modulewidgetitem, modulesignerswidgetitemlist); + } + modulesectionwidgetitemlist << i18n("Signer") << QString::fromAscii(kmodvalue); - (void)new QTreeWidgetItem(modulewidgetitem, modulesectionwidgetitemlist); + (void)new QTreeWidgetItem(modulesignerswidgetitem, modulesectionwidgetitemlist); } else if (qstrcmp(kmodkey, "firmware") == 0) { if (!modulefirmwareswidgetitem) { QStringList modulefirmwareswidgetitemlist; -- 2.11.0