From 32072ca19ec1ab520030a1fb411d8f2fca322374 Mon Sep 17 00:00:00 2001 From: Mikaël Capelle Date: Thu, 19 Nov 2020 21:21:38 +0100 Subject: Return shared_ptr in IPlugin::requirements(). --- src/plugincontainer.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'src/plugincontainer.cpp') diff --git a/src/plugincontainer.cpp b/src/plugincontainer.cpp index f7a556e0..fc7f5cd0 100644 --- a/src/plugincontainer.cpp +++ b/src/plugincontainer.cpp @@ -119,9 +119,7 @@ PluginRequirements::PluginRequirements( } void PluginRequirements::fetchRequirements() { - for (auto* requirement : m_Plugin->requirements()) { - m_Requirements.emplace_back(requirement); - } + m_Requirements = m_Plugin->requirements(); } IPluginProxy* PluginRequirements::proxy() const -- cgit v1.3.1 From f3f0036a056b17ed481cf3ec4dea78a59c04b16e Mon Sep 17 00:00:00 2001 From: Mikaël Capelle Date: Mon, 23 Nov 2020 15:30:21 +0100 Subject: Fix PluginContainer::setUserInterface(). --- src/mainwindow.cpp | 4 ++-- src/modinfowithconflictinfo.cpp | 4 ++-- src/modinfowithconflictinfo.h | 4 +++- src/plugincontainer.cpp | 18 ++++++++++-------- src/plugincontainer.h | 2 +- 5 files changed, 18 insertions(+), 14 deletions(-) (limited to 'src/plugincontainer.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 04833e6a..7558076d 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -511,6 +511,7 @@ MainWindow::MainWindow(Settings &settings m_Tutorial.expose("espList", m_OrganizerCore.pluginList()); m_OrganizerCore.setUserInterface(this); + m_PluginContainer.setUserInterface(this); connect(this, &MainWindow::userInterfaceInitialized, &m_OrganizerCore, &OrganizerCore::userInterfaceInitialized); for (const QString &fileName : m_PluginContainer.pluginFileNames()) { installTranslator(QFileInfo(fileName).baseName()); @@ -703,7 +704,7 @@ MainWindow::~MainWindow() try { cleanup(); - m_PluginContainer.setUserInterface(nullptr, nullptr); + m_PluginContainer.setUserInterface(nullptr); m_OrganizerCore.setUserInterface(nullptr); if (m_IntegratedBrowser) { @@ -1679,7 +1680,6 @@ void MainWindow::updateToolMenu() void MainWindow::registerModPage(IPluginModPage *modPage) { QAction *action = new QAction(modPage->icon(), modPage->displayName(), this); - modPage->setParentWidget(this); connect(action, &QAction::triggered, this, [this, modPage]() { if (modPage->useIntegratedBrowser()) { diff --git a/src/modinfowithconflictinfo.cpp b/src/modinfowithconflictinfo.cpp index 6e3f751e..ad7eda3f 100644 --- a/src/modinfowithconflictinfo.cpp +++ b/src/modinfowithconflictinfo.cpp @@ -15,7 +15,7 @@ namespace fs = std::filesystem; ModInfoWithConflictInfo::ModInfoWithConflictInfo( PluginContainer *pluginContainer, const MOBase::IPluginGame* gamePlugin, DirectoryEntry **directoryStructure) - : ModInfo(pluginContainer), m_GamePlugin(gamePlugin), + : ModInfo(pluginContainer), m_GamePlugin(gamePlugin), m_FileTree([this]() { return QDirFileTree::makeTree(absolutePath()); }), m_Valid([this]() { return doIsValid(); }), m_Contents([this]() { return doGetContents(); }), @@ -27,7 +27,7 @@ void ModInfoWithConflictInfo::clearCaches() } std::vector ModInfoWithConflictInfo::getFlags() const -{ +{ std::vector result = std::vector(); if (hasHiddenFiles()) { result.push_back(ModInfo::FLAG_HIDDEN_FILES); diff --git a/src/modinfowithconflictinfo.h b/src/modinfowithconflictinfo.h index e312a89a..0d11fcb1 100644 --- a/src/modinfowithconflictinfo.h +++ b/src/modinfowithconflictinfo.h @@ -34,7 +34,9 @@ public: * * @return true if the content is there, false otherwise. */ - virtual bool hasContent(int content) const override; /** + virtual bool hasContent(int content) const override; + + /** * @brief Retrieve a file tree corresponding to the underlying disk content * of this mod. * diff --git a/src/plugincontainer.cpp b/src/plugincontainer.cpp index fc7f5cd0..44c9a651 100644 --- a/src/plugincontainer.cpp +++ b/src/plugincontainer.cpp @@ -289,15 +289,17 @@ PluginContainer::~PluginContainer() { unloadPlugins(); } -void PluginContainer::setUserInterface(IUserInterface *userInterface, QWidget *widget) +void PluginContainer::setUserInterface(IUserInterface *userInterface) { - for (IPluginProxy *proxy : bf::at_key(m_Plugins)) { - proxy->setParentWidget(widget); - } - - if (userInterface != nullptr) { - for (IPluginModPage *modPage : bf::at_key(m_Plugins)) { - userInterface->registerModPage(modPage); + if (userInterface) { + for (IPluginProxy* proxy : bf::at_key(m_Plugins)) { + proxy->setParentWidget(userInterface->mainWindow()); + } + for (IPluginModPage* modPage : bf::at_key(m_Plugins)) { + modPage->setParentWidget(userInterface->mainWindow()); + } + for (IPluginTool* tool : bf::at_key(m_Plugins)) { + tool->setParentWidget(userInterface->mainWindow()); } } diff --git a/src/plugincontainer.h b/src/plugincontainer.h index 0c1290b4..26e12659 100644 --- a/src/plugincontainer.h +++ b/src/plugincontainer.h @@ -188,7 +188,7 @@ public: PluginContainer(OrganizerCore *organizer); virtual ~PluginContainer(); - void setUserInterface(IUserInterface *userInterface, QWidget *widget); + void setUserInterface(IUserInterface *userInterface); void loadPlugins(); void unloadPlugins(); -- cgit v1.3.1