diff --git a/source/utils/config/ConfigDisplayItem.h b/source/utils/config/ConfigDisplayItem.h index c8c0da3..9efefa6 100644 --- a/source/utils/config/ConfigDisplayItem.h +++ b/source/utils/config/ConfigDisplayItem.h @@ -1,16 +1,18 @@ #pragma once #include "config/WUPSConfig.h" +#include "plugin/PluginData.h" #include struct GeneralConfigInformation { std::string name; std::string author; std::string version; + std::shared_ptr pluginData; }; class ConfigDisplayItem { public: - ConfigDisplayItem(GeneralConfigInformation &info, std::unique_ptr config) : mConfig(std::move(config)), mInfo(std::move(info)) { + ConfigDisplayItem(GeneralConfigInformation &info, std::unique_ptr config, bool isActive) : mConfig(std::move(config)), mInfo(std::move(info)), mIsActivePlugin(isActive) { assert(mConfig); } [[nodiscard]] const GeneralConfigInformation &getConfigInformation() const { @@ -20,7 +22,12 @@ public: return *mConfig; } + [[nodiscard]] bool isActivePlugin () const { + return mIsActivePlugin; + + } private: std::unique_ptr mConfig; GeneralConfigInformation mInfo; + bool mIsActivePlugin; }; \ No newline at end of file diff --git a/source/utils/config/ConfigUtils.cpp b/source/utils/config/ConfigUtils.cpp index 6ce44b5..dc63cf1 100644 --- a/source/utils/config/ConfigUtils.cpp +++ b/source/utils/config/ConfigUtils.cpp @@ -76,13 +76,11 @@ void ConfigUtils::displayMenu() { std::vector configs; for (const auto &plugin : gLoadedPlugins) { - if (!plugin.isLinkedAndLoaded()) { - continue; - } GeneralConfigInformation info; - info.name = plugin.getMetaInformation().getName(); - info.author = plugin.getMetaInformation().getAuthor(); - info.version = plugin.getMetaInformation().getVersion(); + info.name = plugin.getMetaInformation().getName(); + info.author = plugin.getMetaInformation().getAuthor(); + info.version = plugin.getMetaInformation().getVersion(); + info.pluginData = plugin.getPluginDataCopy(); std::unique_ptr config; const auto configData = plugin.getConfigData(); @@ -125,8 +123,7 @@ void ConfigUtils::displayMenu() { if (!config) { config = make_unique_nothrow(info.name); } - - configs.emplace_back(info, std::move(config)); + configs.emplace_back(info, std::move(config), plugin.isLinkedAndLoaded()); } // Sort Configs by name