ProjectExplorer: Don't internally chain KitManager signal emission

Rather, emit directly in sequence. Saves a few cycles in the
signal/slot machinery simplifies reasoning on the user side
which signals to expect.

Change-Id: Ib75f47a73e9731b506b9df3c713684a9cf59aa67
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2023-08-16 09:08:45 +02:00
parent e2cc01d213
commit 16233c51cd

View File

@@ -141,10 +141,6 @@ KitManager *KitManager::instance()
KitManager::KitManager() KitManager::KitManager()
{ {
d = new KitManagerPrivate; d = new KitManagerPrivate;
connect(this, &KitManager::kitAdded, this, &KitManager::kitsChanged);
connect(this, &KitManager::kitRemoved, this, &KitManager::kitsChanged);
connect(this, &KitManager::kitUpdated, this, &KitManager::kitsChanged);
} }
void KitManager::destroy() void KitManager::destroy()
@@ -619,11 +615,13 @@ void KitManager::notifyAboutUpdate(Kit *k)
if (!k || !isLoaded()) if (!k || !isLoaded())
return; return;
if (Utils::contains(d->m_kitList, k)) if (Utils::contains(d->m_kitList, k)) {
emit instance()->kitUpdated(k); emit instance()->kitUpdated(k);
else emit instance()->kitsChanged();
} else {
emit 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)
{ {
@@ -645,6 +643,7 @@ Kit *KitManager::registerKit(const std::function<void (Kit *)> &init, Utils::Id
setDefaultKit(kptr); setDefaultKit(kptr);
emit instance()->kitAdded(kptr); emit instance()->kitAdded(kptr);
emit instance()->kitsChanged();
return kptr; return kptr;
} }
@@ -660,6 +659,7 @@ void KitManager::deregisterKit(Kit *k)
setDefaultKit(newDefault); setDefaultKit(newDefault);
} }
emit instance()->kitRemoved(k); emit instance()->kitRemoved(k);
emit instance()->kitsChanged();
} }
void KitManager::setDefaultKit(Kit *k) void KitManager::setDefaultKit(Kit *k)