KitManager: Move the instance setup to a function

Slightly nicer code and works well with settingspages nowadays.

Change-Id: Ic12ff58f4b0f8db226843961eb2ab6fb8879429c
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
hjk
2023-08-11 09:58:32 +02:00
parent 8f948c28a9
commit 6ee7989c61
2 changed files with 10 additions and 16 deletions

View File

@@ -118,20 +118,16 @@ private:
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
static Internal::KitManagerPrivate *d = nullptr; static Internal::KitManagerPrivate *d = nullptr;
static KitManager *m_instance = nullptr;
KitManager *KitManager::instance() KitManager *KitManager::instance()
{ {
if (!m_instance) static KitManager theManager;
m_instance = new KitManager; return &theManager;
return m_instance;
} }
KitManager::KitManager() KitManager::KitManager()
{ {
d = new KitManagerPrivate; d = new KitManagerPrivate;
QTC_CHECK(!m_instance);
m_instance = this;
connect(ICore::instance(), &ICore::saveSettingsRequested, this, &KitManager::saveKits); connect(ICore::instance(), &ICore::saveSettingsRequested, this, &KitManager::saveKits);
@@ -144,8 +140,6 @@ void KitManager::destroy()
{ {
delete d; delete d;
d = nullptr; d = nullptr;
delete m_instance;
m_instance = nullptr;
} }
void KitManager::restoreKits() void KitManager::restoreKits()
@@ -417,8 +411,8 @@ void KitManager::restoreKits()
d->m_writer = std::make_unique<PersistentSettingsWriter>(settingsFileName(), "QtCreatorProfiles"); d->m_writer = std::make_unique<PersistentSettingsWriter>(settingsFileName(), "QtCreatorProfiles");
d->m_initialized = true; d->m_initialized = true;
emit m_instance->kitsLoaded(); emit instance()->kitsLoaded();
emit m_instance->kitsChanged(); emit instance()->kitsChanged();
} }
KitManager::~KitManager() KitManager::~KitManager()
@@ -600,9 +594,9 @@ void KitManager::notifyAboutUpdate(Kit *k)
return; return;
if (Utils::contains(d->m_kitList, k)) if (Utils::contains(d->m_kitList, k))
emit m_instance->kitUpdated(k); emit instance()->kitUpdated(k);
else else
emit m_instance->unmanagedKitUpdated(k); emit instance()->unmanagedKitUpdated(k);
} }
Kit *KitManager::registerKit(const std::function<void (Kit *)> &init, Utils::Id id) Kit *KitManager::registerKit(const std::function<void (Kit *)> &init, Utils::Id id)
@@ -624,7 +618,7 @@ Kit *KitManager::registerKit(const std::function<void (Kit *)> &init, Utils::Id
if (!d->m_defaultKit || (!d->m_defaultKit->isValid() && kptr->isValid())) if (!d->m_defaultKit || (!d->m_defaultKit->isValid() && kptr->isValid()))
setDefaultKit(kptr); setDefaultKit(kptr);
emit m_instance->kitAdded(kptr); emit instance()->kitAdded(kptr);
return kptr; return kptr;
} }
@@ -647,7 +641,7 @@ void KitManager::setDefaultKit(Kit *k)
if (k && !Utils::contains(d->m_kitList, k)) if (k && !Utils::contains(d->m_kitList, k))
return; return;
d->m_defaultKit = k; d->m_defaultKit = k;
emit m_instance->defaultkitChanged(); emit instance()->defaultkitChanged();
} }
void KitManager::completeKit(Kit *k) void KitManager::completeKit(Kit *k)

View File

@@ -127,13 +127,12 @@ protected:
QAction *m_mutableAction = nullptr; QAction *m_mutableAction = nullptr;
}; };
class PROJECTEXPLORER_EXPORT KitManager : public QObject class PROJECTEXPLORER_EXPORT KitManager final : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
static KitManager *instance(); static KitManager *instance();
~KitManager() override;
static const QList<Kit *> kits(); static const QList<Kit *> kits();
static Kit *kit(const Kit::Predicate &predicate); static Kit *kit(const Kit::Predicate &predicate);
@@ -170,6 +169,7 @@ signals:
private: private:
KitManager(); KitManager();
~KitManager() override;
static void destroy(); static void destroy();