aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2024-04-15 13:28:26 +0000
committersaturneric <[email protected]>2024-04-15 13:29:10 +0000
commita961672975e3ee51442a1a1569f5894b96cf7aa9 (patch)
tree8227d8e42d0a3eca58001e1d120ce7e8f7437148 /src
parentfeat: add a grt viewer and solve some issues in gnupg info tab (diff)
downloadGpgFrontend-a961672975e3ee51442a1a1569f5894b96cf7aa9.tar.gz
GpgFrontend-a961672975e3ee51442a1a1569f5894b96cf7aa9.zip
feat: prefer to show module name instead of module id
Diffstat (limited to 'src')
-rw-r--r--src/core/module/Module.h2
-rw-r--r--src/ui/dialog/controller/ModuleControllerDialog.cpp2
-rw-r--r--src/ui/widgets/ModuleListView.cpp24
-rw-r--r--src/ui/widgets/ModuleListView.h2
4 files changed, 18 insertions, 12 deletions
diff --git a/src/core/module/Module.h b/src/core/module/Module.h
index 16f55fb1..615d09b9 100644
--- a/src/core/module/Module.h
+++ b/src/core/module/Module.h
@@ -39,7 +39,7 @@ class ModuleManager;
using ModuleIdentifier = QString;
using ModuleVersion = QString;
-using ModuleMetaData = std::map<QString, QString>;
+using ModuleMetaData = QMap<QString, QString>;
using ModulePtr = std::shared_ptr<Module>;
using TaskRunnerPtr = std::shared_ptr<Thread::TaskRunner>;
diff --git a/src/ui/dialog/controller/ModuleControllerDialog.cpp b/src/ui/dialog/controller/ModuleControllerDialog.cpp
index 54fa9460..f7b335dd 100644
--- a/src/ui/dialog/controller/ModuleControllerDialog.cpp
+++ b/src/ui/dialog/controller/ModuleControllerDialog.cpp
@@ -123,7 +123,7 @@ void ModuleControllerDialog::slot_load_module_details(
info << "# METADATA" << Qt::endl << Qt::endl;
- for (const auto& metadata : module->GetModuleMetaData()) {
+ for (const auto& metadata : module->GetModuleMetaData().asKeyValueRange()) {
info << " - " << metadata.first << ": " << metadata.second << "\n";
}
diff --git a/src/ui/widgets/ModuleListView.cpp b/src/ui/widgets/ModuleListView.cpp
index 41c8b259..6a386813 100644
--- a/src/ui/widgets/ModuleListView.cpp
+++ b/src/ui/widgets/ModuleListView.cpp
@@ -33,7 +33,7 @@
namespace GpgFrontend::UI {
ModuleListView::ModuleListView(QWidget *parent)
- : QListView(parent), model_(new QStringListModel(this)) {
+ : QListView(parent), model_(new QStandardItemModel(this)) {
setModel(model_);
setEditTriggers(QAbstractItemView::NoEditTriggers);
@@ -43,22 +43,28 @@ ModuleListView::ModuleListView(QWidget *parent)
void ModuleListView::currentChanged(const QModelIndex &current,
const QModelIndex &previous) {
QListView::currentChanged(current, previous);
- emit this->SignalSelectModule(model_->data(current).toString());
+ auto *item = model_->itemFromIndex(current);
+ if (item != nullptr) {
+ emit this->SignalSelectModule(item->data(Qt::UserRole + 1).toString());
+ }
}
void ModuleListView::load_module_informations() {
- auto module_ids =
- Module::ModuleManager::GetInstance().ListAllRegisteredModuleID();
+ auto &module_manager = Module::ModuleManager::GetInstance();
+ auto module_ids = module_manager.ListAllRegisteredModuleID();
- QStringList model_data;
+ model_->clear();
for (const auto &module_id : module_ids) {
- model_data.append(module_id);
+ auto module = module_manager.SearchModule(module_id);
+ auto meta_data = module->GetModuleMetaData();
+ auto *item = new QStandardItem(meta_data.value("Name", module_id));
+ item->setData(module_id, Qt::UserRole + 1);
+ model_->appendRow(item);
}
-
- model_->setStringList(model_data);
}
auto ModuleListView::GetCurrentModuleID() -> Module::ModuleIdentifier {
- return model_->data(currentIndex()).toString();
+ auto *item = model_->itemFromIndex(currentIndex());
+ return item != nullptr ? item->data(Qt::UserRole + 1).toString() : "";
}
}; // namespace GpgFrontend::UI
diff --git a/src/ui/widgets/ModuleListView.h b/src/ui/widgets/ModuleListView.h
index ba569a6f..0b294bbf 100644
--- a/src/ui/widgets/ModuleListView.h
+++ b/src/ui/widgets/ModuleListView.h
@@ -46,7 +46,7 @@ class ModuleListView : public QListView {
const QModelIndex &previous) override;
private:
- QStringListModel *model_;
+ QStandardItemModel *model_;
void load_module_informations();
};