From a449098db96527f8ac772cd518657d8e22018468 Mon Sep 17 00:00:00 2001 From: Mikaƫl Capelle Date: Wed, 11 Nov 2020 16:14:55 +0100 Subject: Cleaner IPluginRequirement. --- src/plugincontainer.cpp | 9 +++++---- src/plugincontainer.h | 21 +-------------------- src/settingsdialogplugins.cpp | 2 +- 3 files changed, 7 insertions(+), 25 deletions(-) (limited to 'src') diff --git a/src/plugincontainer.cpp b/src/plugincontainer.cpp index 030fdb31..a218b1f0 100644 --- a/src/plugincontainer.cpp +++ b/src/plugincontainer.cpp @@ -74,12 +74,13 @@ MOBase::IPluginProxy* PluginRequirements::proxy() const return m_PluginProxy; } -std::vector PluginRequirements::problems() const +std::vector PluginRequirements::problems() const { - std::vector result; + std::vector result; for (auto& requirement : m_Requirements) { - for (auto p : requirement->problems(m_Organizer)) { - result.push_back(Problem(requirement.get(), p)); + auto p = requirement->check(m_Organizer); + if (p) { + result.push_back(*p); } } return result; diff --git a/src/plugincontainer.h b/src/plugincontainer.h index cd1d03ca..520ee83e 100644 --- a/src/plugincontainer.h +++ b/src/plugincontainer.h @@ -32,25 +32,6 @@ class OrganizerProxy; * class owns the requirements. */ class PluginRequirements { -public: - - // Small intermediate class. - struct Problem { - public: - - QString description() const { return m_Requirement->description(m_Id); } - - - private: - Problem(const MOBase::IPluginRequirement* requirement, unsigned int id) : - m_Requirement(requirement), m_Id(id) { } - - const MOBase::IPluginRequirement* m_Requirement; - unsigned int m_Id; - - friend class PluginRequirements; - }; - public: /** @@ -66,7 +47,7 @@ public: /** * @return the list of problems to be resolved before enabling the plugin. */ - std::vector problems() const; + std::vector problems() const; /** * @return the name of the games (gameName()) this plugin can be used with, or an empty diff --git a/src/settingsdialogplugins.cpp b/src/settingsdialogplugins.cpp index 0c02ffb0..1e2117cf 100644 --- a/src/settingsdialogplugins.cpp +++ b/src/settingsdialogplugins.cpp @@ -187,7 +187,7 @@ void PluginsSettingsTab::on_checkboxEnabled_clicked(bool checked) if (!problems.empty()) { QStringList descriptions; for (auto& problem : problems) { - descriptions.append(problem.description()); + descriptions.append(problem.shortDescription()); } QMessageBox::warning( parentWidget(), QObject::tr("Cannot enable plugin"), -- cgit v1.3.1