From 88c386d74d7d94ec16d4d84ed674eb51e31647ac Mon Sep 17 00:00:00 2001 From: Mikaƫl Capelle Date: Sun, 9 Jun 2024 12:18:17 +0200 Subject: Refactoring of game features for better management. (#2043) --- src/plugincontainer.cpp | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) (limited to 'src/plugincontainer.cpp') diff --git a/src/plugincontainer.cpp b/src/plugincontainer.cpp index 157d3399..c73d4566 100644 --- a/src/plugincontainer.cpp +++ b/src/plugincontainer.cpp @@ -320,7 +320,9 @@ void PluginRequirements::requiredFor(std::vector& required, // PluginContainer PluginContainer::PluginContainer(OrganizerCore* organizer) - : m_Organizer(organizer), m_UserInterface(nullptr), m_PreviewGenerator(*this) + : m_Organizer(organizer), m_UserInterface(nullptr), + m_GameFeatures(std::make_unique(organizer, this)), + m_PreviewGenerator(*this) {} PluginContainer::~PluginContainer() @@ -625,12 +627,12 @@ IPlugin* PluginContainer::registerPlugin(QObject* plugin, const QString& filepat return nullptr; } -IPlugin* PluginContainer::managedGame() const +IPluginGame* PluginContainer::managedGame() const { // TODO: This const_cast is safe but ugly. Most methods require a IPlugin*, so // returning a const-version if painful. This should be fixed by making methods accept // a const IPlugin* instead, but there are a few tricks with qobject_cast and const. - return const_cast(m_Organizer->managedGame()); + return m_Organizer ? const_cast(m_Organizer->managedGame()) : nullptr; } bool PluginContainer::isEnabled(IPlugin* plugin) const @@ -663,9 +665,8 @@ void PluginContainer::setEnabled(MOBase::IPlugin* plugin, bool enable, // If required, disable dependencies: if (!enable && dependencies) { for (auto* p : requirements(plugin).requiredFor()) { - setEnabled( - p, false, - false); // No need to "recurse" here since requiredFor already does it. + // No need to "recurse" here since requiredFor already does it. + setEnabled(p, false, false); } } @@ -760,11 +761,6 @@ IPluginGame* PluginContainer::game(const QString& name) const } } -const PreviewGenerator& PluginContainer::previewGenerator() const -{ - return m_PreviewGenerator; -} - void PluginContainer::startPluginsImpl(const std::vector& plugins) const { // setUserInterface() -- cgit v1.3.1