aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/mesonprojectmanager
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2023-09-28 07:56:57 +0200
committerhjk <hjk@qt.io>2023-09-28 07:04:03 +0000
commit071416fde32fc52cd089327b1c95e918fba112af (patch)
treee6ac86b93a61d561f84681df3cdba6ac1500c7ef /src/plugins/mesonprojectmanager
parent7bf1b6e586e8e56a1923419f58672772e575d7a6 (diff)
Meson: Move some code out of visible plugin setup
Background for the activity here is that this plugin's setup activities take on my machine around 0.2s on Creator during Creator startup and I'd like to reduce that a bit. Change-Id: I880a0b5ce5c4dce52a041b6a3ef9dc3cef346adb Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Diffstat (limited to 'src/plugins/mesonprojectmanager')
-rw-r--r--src/plugins/mesonprojectmanager/mesonprojectplugin.cpp25
-rw-r--r--src/plugins/mesonprojectmanager/toolssettingsaccessor.cpp19
-rw-r--r--src/plugins/mesonprojectmanager/toolssettingsaccessor.h5
3 files changed, 17 insertions, 32 deletions
diff --git a/src/plugins/mesonprojectmanager/mesonprojectplugin.cpp b/src/plugins/mesonprojectmanager/mesonprojectplugin.cpp
index cc1e3eb1e27..71ef57462b2 100644
--- a/src/plugins/mesonprojectmanager/mesonprojectplugin.cpp
+++ b/src/plugins/mesonprojectmanager/mesonprojectplugin.cpp
@@ -12,36 +12,20 @@
#include "toolssettingsaccessor.h"
#include "toolssettingspage.h"
-#include <coreplugin/icore.h>
-
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/projectmanager.h>
#include <projectexplorer/runcontrol.h>
#include <utils/fsengine/fileiconprovider.h>
-using namespace Core;
using namespace ProjectExplorer;
using namespace Utils;
namespace MesonProjectManager::Internal {
-class MesonProjectPluginPrivate : public QObject
+class MesonProjectPluginPrivate
{
- Q_OBJECT
public:
- MesonProjectPluginPrivate()
- {
- MesonTools::setTools(m_toolsSettings.loadMesonTools(ICore::dialogParent()));
- connect(ICore::instance(),
- &ICore::saveSettingsRequested,
- this,
- &MesonProjectPluginPrivate::saveAll);
- }
-
- ~MesonProjectPluginPrivate() {}
-
-private:
ToolsSettingsPage m_toolslSettingsPage;
ToolsSettingsAccessor m_toolsSettings;
MesonBuildStepFactory m_buildStepFactory;
@@ -50,11 +34,6 @@ private:
MesonActionsManager m_actions;
MachineFileManager m_machineFilesManager;
SimpleTargetRunnerFactory m_mesonRunWorkerFactory{{m_runConfigurationFactory.runConfigurationId()}};
-
- void saveAll()
- {
- m_toolsSettings.saveMesonTools(MesonTools::tools(), ICore::dialogParent());
- }
};
MesonProjectPlugin::~MesonProjectPlugin()
@@ -72,5 +51,3 @@ void MesonProjectPlugin::initialize()
}
} // MesonProjectManager::Internal
-
-#include "mesonprojectplugin.moc"
diff --git a/src/plugins/mesonprojectmanager/toolssettingsaccessor.cpp b/src/plugins/mesonprojectmanager/toolssettingsaccessor.cpp
index 3f5cdfa45a7..80e5274c481 100644
--- a/src/plugins/mesonprojectmanager/toolssettingsaccessor.cpp
+++ b/src/plugins/mesonprojectmanager/toolssettingsaccessor.cpp
@@ -7,6 +7,7 @@
#include "mesonprojectmanagertr.h"
#include <coreplugin/icore.h>
+#include <coreplugin/icore.h>
#include <utils/filepath.h>
#include <utils/store.h>
@@ -16,6 +17,7 @@
#include <iterator>
#include <vector>
+using namespace Core;
using namespace Utils;
namespace MesonProjectManager {
@@ -30,11 +32,16 @@ ToolsSettingsAccessor::ToolsSettingsAccessor()
{
setDocType("QtCreatorMesonTools");
setApplicationDisplayName(QGuiApplication::applicationDisplayName());
- setBaseFilePath(Core::ICore::userResourcePath(Constants::ToolsSettings::FILENAME));
+ setBaseFilePath(ICore::userResourcePath(Constants::ToolsSettings::FILENAME));
+
+ MesonTools::setTools(loadMesonTools());
+
+ QObject::connect(ICore::instance(), &ICore::saveSettingsRequested, [this] {
+ saveMesonTools(MesonTools::tools());
+ });
}
-void ToolsSettingsAccessor::saveMesonTools(const std::vector<MesonTools::Tool_t> &tools,
- QWidget *parent)
+void ToolsSettingsAccessor::saveMesonTools(const std::vector<MesonTools::Tool_t> &tools)
{
using namespace Constants;
Store data;
@@ -51,13 +58,13 @@ void ToolsSettingsAccessor::saveMesonTools(const std::vector<MesonTools::Tool_t>
entry_count++;
}
data.insert(ToolsSettings::ENTRY_COUNT, entry_count);
- saveSettings(data, parent);
+ saveSettings(data, ICore::dialogParent());
}
-std::vector<MesonTools::Tool_t> ToolsSettingsAccessor::loadMesonTools(QWidget *parent)
+std::vector<MesonTools::Tool_t> ToolsSettingsAccessor::loadMesonTools()
{
using namespace Constants;
- auto data = restoreSettings(parent);
+ auto data = restoreSettings(ICore::dialogParent());
auto entry_count = data.value(ToolsSettings::ENTRY_COUNT, 0).toInt();
std::vector<MesonTools::Tool_t> result;
for (auto toolIndex = 0; toolIndex < entry_count; toolIndex++) {
diff --git a/src/plugins/mesonprojectmanager/toolssettingsaccessor.h b/src/plugins/mesonprojectmanager/toolssettingsaccessor.h
index 61cc505d3a7..10fce88099d 100644
--- a/src/plugins/mesonprojectmanager/toolssettingsaccessor.h
+++ b/src/plugins/mesonprojectmanager/toolssettingsaccessor.h
@@ -14,8 +14,9 @@ class ToolsSettingsAccessor final : public Utils::UpgradingSettingsAccessor
{
public:
ToolsSettingsAccessor();
- void saveMesonTools(const std::vector<MesonTools::Tool_t> &tools, QWidget *parent);
- std::vector<MesonTools::Tool_t> loadMesonTools(QWidget *parent);
+
+ void saveMesonTools(const std::vector<MesonTools::Tool_t> &tools);
+ std::vector<MesonTools::Tool_t> loadMesonTools();
};
} // namespace Internal