diff options
author | hjk <hjk@qt.io> | 2023-11-17 10:19:48 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2023-11-17 13:08:40 +0000 |
commit | c4c561556d9ac13ff206c988a1f7776f140ef975 (patch) | |
tree | 821d6127d32fb9afa046cbc3a25b7c6d5221e273 /src/plugins/baremetal | |
parent | 7c7abec04fac951835f55fc6b6dee04283d214a8 (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.cpp | 19 | ||||
-rw-r--r-- | src/plugins/baremetal/baremetalplugin.h | 4 | ||||
-rw-r--r-- | src/plugins/baremetal/debugserverprovidermanager.cpp | 17 | ||||
-rw-r--r-- | src/plugins/baremetal/debugserverprovidermanager.h | 9 |
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 |