From e992ea1b908c21ffbbe78e40c2d3dae1d43a89bf Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Mon, 25 Feb 2013 14:12:14 +0100 Subject: Kits: Warn when initializing something too early/late Warn when somebody tries to register KitInformation after kits are already loaded. Also warn when trying to access kits before all plugins are initialized. This helps with making sure that initialization of plugins is done as expected. Change-Id: Ie2e9c79eee2a2c0de3397db9a95b5e41b614bfe8 Reviewed-by: Daniel Teske --- src/plugins/projectexplorer/kitmanager.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/plugins/projectexplorer/kitmanager.cpp') diff --git a/src/plugins/projectexplorer/kitmanager.cpp b/src/plugins/projectexplorer/kitmanager.cpp index cab0927994..7166b5ff0b 100644 --- a/src/plugins/projectexplorer/kitmanager.cpp +++ b/src/plugins/projectexplorer/kitmanager.cpp @@ -34,10 +34,12 @@ #include "kitinformation.h" #include "kitmanagerconfigwidget.h" #include "project.h" +#include "projectexplorer.h" #include #include +#include #include #include @@ -137,6 +139,7 @@ void KitManager::restoreKits() return; initializing = true; + QTC_CHECK(ProjectExplorerPlugin::instance()->pluginSpec()->state() == ExtensionSystem::PluginSpec::Running); QList kitsToRegister; QList kitsToValidate; @@ -261,6 +264,9 @@ bool greaterPriority(KitInformation *a, KitInformation *b) void KitManager::registerKitInformation(KitInformation *ki) { + QTC_CHECK(ProjectExplorerPlugin::instance()->pluginSpec()->state() <= ExtensionSystem::PluginSpec::Initialized); + QTC_CHECK(d->m_kitList.isEmpty()); + QList::iterator it = qLowerBound(d->m_informationList.begin(), d->m_informationList.end(), ki, greaterPriority); d->m_informationList.insert(it, ki); @@ -456,7 +462,7 @@ void KitManager::setDefaultKit(Kit *k) void KitManager::validateKits() { - foreach (Kit *k, kits()) + foreach (Kit *k, d->m_kitList) // no need to load kits just to validate them! k->validate(); } -- cgit v1.2.1