diff options
-rw-r--r-- | src/core/module/Module.h | 2 | ||||
-rw-r--r-- | src/ui/dialog/controller/ModuleControllerDialog.cpp | 2 | ||||
-rw-r--r-- | src/ui/widgets/ModuleListView.cpp | 24 | ||||
-rw-r--r-- | src/ui/widgets/ModuleListView.h | 2 |
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 ¤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 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(); }; |