aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/baremetal
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2023-11-17 10:19:48 +0100
committerhjk <hjk@qt.io>2023-11-17 13:08:40 +0000
commitc4c561556d9ac13ff206c988a1f7776f140ef975 (patch)
tree821d6127d32fb9afa046cbc3a25b7c6d5221e273 /src/plugins/baremetal
parent7c7abec04fac951835f55fc6b6dee04283d214a8 (diff)
BareMetal: Move DebugServerProviderManager closer to new setup system
Change-Id: Ic8029b0436d4c0e86e0f707632139a2074b296eb Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Diffstat (limited to 'src/plugins/baremetal')
-rw-r--r--src/plugins/baremetal/baremetalplugin.cpp19
-rw-r--r--src/plugins/baremetal/baremetalplugin.h4
-rw-r--r--src/plugins/baremetal/debugserverprovidermanager.cpp17
-rw-r--r--src/plugins/baremetal/debugserverprovidermanager.h9
4 files changed, 18 insertions, 31 deletions
diff --git a/src/plugins/baremetal/baremetalplugin.cpp b/src/plugins/baremetal/baremetalplugin.cpp
index 09e17fcd6b..0f55162318 100644
--- a/src/plugins/baremetal/baremetalplugin.cpp
+++ b/src/plugins/baremetal/baremetalplugin.cpp
@@ -4,11 +4,9 @@
#include "baremetalplugin.h"
-#include "baremetalconstants.h"
#include "baremetaldebugsupport.h"
#include "baremetaldevice.h"
#include "baremetalrunconfiguration.h"
-#include "baremetaltr.h"
#include "debugserverprovidermanager.h"
@@ -18,25 +16,10 @@
namespace BareMetal::Internal {
-// BareMetalPluginPrivate
-
-class BareMetalPluginPrivate
-{
-public:
- DebugServerProviderManager debugServerProviderManager;
-};
-
// BareMetalPlugin
-BareMetalPlugin::~BareMetalPlugin()
-{
- delete d;
-}
-
void BareMetalPlugin::initialize()
{
- d = new BareMetalPluginPrivate;
-
setupBareMetalDevice();
setupIarToolChain();
@@ -49,7 +32,7 @@ void BareMetalPlugin::initialize()
void BareMetalPlugin::extensionsInitialized()
{
- DebugServerProviderManager::instance()->restoreProviders();
+ setupDebugServerProviderManager(this);
}
} // BareMetal::Internal
diff --git a/src/plugins/baremetal/baremetalplugin.h b/src/plugins/baremetal/baremetalplugin.h
index cbad40df5c..b529256b25 100644
--- a/src/plugins/baremetal/baremetalplugin.h
+++ b/src/plugins/baremetal/baremetalplugin.h
@@ -13,13 +13,9 @@ class BareMetalPlugin final : public ExtensionSystem::IPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "BareMetal.json")
- ~BareMetalPlugin() final;
-
void initialize() final;
void extensionsInitialized() final;
- class BareMetalPluginPrivate *d = nullptr;
-
#ifdef WITH_TESTS
private slots:
void testIarOutputParsers_data();
diff --git a/src/plugins/baremetal/debugserverprovidermanager.cpp b/src/plugins/baremetal/debugserverprovidermanager.cpp
index e7afc2ef10..b32006d2c4 100644
--- a/src/plugins/baremetal/debugserverprovidermanager.cpp
+++ b/src/plugins/baremetal/debugserverprovidermanager.cpp
@@ -33,8 +33,6 @@ const char countKeyC[] = "DebugServerProvider.Count";
const char fileVersionKeyC[] = "Version";
const char fileNameKeyC[] = "debugserverproviders.xml";
-static DebugServerProviderManager *m_instance = nullptr;
-
// DebugServerProviderManager
DebugServerProviderManager::DebugServerProviderManager()
@@ -48,7 +46,6 @@ DebugServerProviderManager::DebugServerProviderManager()
new StLinkUvscServerProviderFactory,
new JLinkUvscServerProviderFactory})
{
- m_instance = this;
m_writer = new Utils::PersistentSettingsWriter(
m_configFile, "QtCreatorDebugServerProviders");
@@ -69,14 +66,26 @@ DebugServerProviderManager::~DebugServerProviderManager()
m_providers.clear();
qDeleteAll(m_factories);
delete m_writer;
- m_instance = nullptr;
}
+static DebugServerProviderManager *m_instance = nullptr;
+
DebugServerProviderManager *DebugServerProviderManager::instance()
{
+ if (!m_instance) {
+ m_instance = new DebugServerProviderManager;
+ m_instance->restoreProviders();
+ }
+
return m_instance;
}
+void setupDebugServerProviderManager(QObject *guard)
+{
+ DebugServerProviderManager::instance(); // force creation
+ m_instance->setParent(guard);
+}
+
void DebugServerProviderManager::restoreProviders()
{
PersistentSettingsReader reader;
diff --git a/src/plugins/baremetal/debugserverprovidermanager.h b/src/plugins/baremetal/debugserverprovidermanager.h
index 08a9d3b51d..87833a507f 100644
--- a/src/plugins/baremetal/debugserverprovidermanager.h
+++ b/src/plugins/baremetal/debugserverprovidermanager.h
@@ -13,7 +13,6 @@ namespace Utils { class PersistentSettingsWriter; }
namespace BareMetal::Internal {
class BareMetalPlugin;
-class BareMetalPluginPrivate;
class IDebugServerProvider;
class IDebugServerProviderFactory;
@@ -25,7 +24,6 @@ class DebugServerProviderManager final : public QObject
public:
static DebugServerProviderManager *instance();
- ~DebugServerProviderManager() final;
static QList<IDebugServerProvider *> providers();
static QList<IDebugServerProviderFactory *> factories();
@@ -42,9 +40,10 @@ signals:
void providersLoaded();
private:
- void saveProviders();
DebugServerProviderManager();
+ ~DebugServerProviderManager() final;
+ void saveProviders();
void restoreProviders();
static void notifyAboutUpdate(IDebugServerProvider *provider);
@@ -53,9 +52,9 @@ private:
const Utils::FilePath m_configFile;
const QList<IDebugServerProviderFactory *> m_factories;
- friend class BareMetalPlugin; // for restoreProviders
- friend class BareMetalPluginPrivate; // for constructor
friend class IDebugServerProvider;
};
+void setupDebugServerProviderManager(QObject *guard);
+
} // BareMetal::Internal