diff options
author | saturneric <[email protected]> | 2024-04-15 13:28:26 +0000 |
---|---|---|
committer | saturneric <[email protected]> | 2024-04-15 13:29:10 +0000 |
commit | a961672975e3ee51442a1a1569f5894b96cf7aa9 (patch) | |
tree | 8227d8e42d0a3eca58001e1d120ce7e8f7437148 /src/ui/widgets/ModuleListView.cpp | |
parent | feat: add a grt viewer and solve some issues in gnupg info tab (diff) | |
download | GpgFrontend-a961672975e3ee51442a1a1569f5894b96cf7aa9.tar.gz GpgFrontend-a961672975e3ee51442a1a1569f5894b96cf7aa9.zip |
feat: prefer to show module name instead of module id
Diffstat (limited to 'src/ui/widgets/ModuleListView.cpp')
-rw-r--r-- | src/ui/widgets/ModuleListView.cpp | 24 |
1 files changed, 15 insertions, 9 deletions
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 ¤t, 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 |