diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 6c248a7efa43dafd65609dffd1e79b0e3193d93f..27d2bb32b485e83b009951ff76506df02ba1ff46 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -589,12 +589,12 @@ public: #ifdef Q_OS_WIN if (Utils::winIs64BitSystem()) { CdbMatcher matcher64(64); - if (Kit *cdb64Kit = KitManager::find(&matcher64)) + if (Kit *cdb64Kit = KitManager::find(matcher64)) return cdb64Kit; } #endif CdbMatcher matcher; - return KitManager::find(&matcher); + return KitManager::find(matcher); } private: @@ -620,12 +620,9 @@ bool fillParameters(DebuggerStartParameters *sp, const Kit *kit, QString *errorM abis = Abi::abisOfBinary(Utils::FileName::fromString(sp->executable)); } if (!abis.isEmpty()) { - AbiKitMatcher matcher(abis); - kit = KitManager::find(&matcher); - if (!kit) { - CompatibleAbiKitMatcher matcher(abis); - kit = KitManager::find(&matcher); - } + kit = KitManager::find(AbiKitMatcher(abis)); + if (!kit) + kit = KitManager::find(CompatibleAbiKitMatcher(abis)); } if (!kit) kit = KitManager::defaultKit(); diff --git a/src/plugins/projectexplorer/kitinformation.cpp b/src/plugins/projectexplorer/kitinformation.cpp index 43c3a430ba3372b64f375cc21714a909efd5a40d..002a211cb9b13ded8e53a59af184315ec5a106c3 100644 --- a/src/plugins/projectexplorer/kitinformation.cpp +++ b/src/plugins/projectexplorer/kitinformation.cpp @@ -251,14 +251,13 @@ void ToolChainKitInformation::kitsWereLoaded() this, SLOT(toolChainUpdated(ProjectExplorer::ToolChain*))); } -void ToolChainKitInformation::toolChainUpdated(ProjectExplorer::ToolChain *tc) +void ToolChainKitInformation::toolChainUpdated(ToolChain *tc) { - ToolChainMatcher m(tc); - foreach (Kit *k, KitManager::kits(&m)) + foreach (Kit *k, KitManager::matchingKits(ToolChainMatcher(tc))) notifyAboutUpdate(k); } -void ToolChainKitInformation::toolChainRemoved(ProjectExplorer::ToolChain *tc) +void ToolChainKitInformation::toolChainRemoved(ToolChain *tc) { Q_UNUSED(tc); foreach (Kit *k, KitManager::kits()) diff --git a/src/plugins/projectexplorer/kitmanager.cpp b/src/plugins/projectexplorer/kitmanager.cpp index 76250684502ce9c72300f38d24095520330fd852..9bfb61ac5cf65e28e22e91b45a18190c4491db55 100644 --- a/src/plugins/projectexplorer/kitmanager.cpp +++ b/src/plugins/projectexplorer/kitmanager.cpp @@ -60,9 +60,6 @@ static Utils::FileName settingsFileName() } namespace ProjectExplorer { - -KitManager *KitManager::m_instance = 0; - namespace Internal { // -------------------------------------------------------------------------- @@ -129,15 +126,18 @@ KitManagerPrivate::~KitManagerPrivate() // KitManager: // -------------------------------------------------------------------------- -KitManager *KitManager::instance() +static Internal::KitManagerPrivate *d; +static KitManager *m_instance; + +QObject *KitManager::instance() { return m_instance; } KitManager::KitManager(QObject *parent) : - QObject(parent), - d(new Internal::KitManagerPrivate()) + QObject(parent) { + d = new Internal::KitManagerPrivate; QTC_CHECK(!m_instance); m_instance = this; @@ -154,8 +154,8 @@ KitManager::KitManager(QObject *parent) : bool KitManager::setKeepDisplayNameUnique(bool unique) { - bool current = m_instance->d->m_keepDisplayNameUnique; - m_instance->d->m_keepDisplayNameUnique = unique; + bool current = d->m_keepDisplayNameUnique; + d->m_keepDisplayNameUnique = unique; return current; } @@ -292,6 +292,11 @@ void KitManager::saveKits() d->m_writer->save(data, Core::ICore::mainWindow()); } +static bool isLoaded() +{ + return d->m_initialized; +} + bool greaterPriority(KitInformation *a, KitInformation *b) { return a->priority() > b->priority(); @@ -299,15 +304,15 @@ bool greaterPriority(KitInformation *a, KitInformation *b) void KitManager::registerKitInformation(KitInformation *ki) { - QTC_CHECK(!m_instance->isLoaded()); - QTC_ASSERT(!m_instance->d->m_informationList.contains(ki), return); + QTC_CHECK(!isLoaded()); + QTC_ASSERT(!d->m_informationList.contains(ki), return); QList<KitInformation *>::iterator it - = qLowerBound(m_instance->d->m_informationList.begin(), - m_instance->d->m_informationList.end(), ki, greaterPriority); - m_instance->d->m_informationList.insert(it, ki); + = qLowerBound(d->m_informationList.begin(), + d->m_informationList.end(), ki, greaterPriority); + d->m_informationList.insert(it, ki); - if (!m_instance->isLoaded()) + if (!isLoaded()) return; foreach (Kit *k, kits()) { @@ -322,8 +327,8 @@ void KitManager::registerKitInformation(KitInformation *ki) void KitManager::deregisterKitInformation(KitInformation *ki) { - QTC_CHECK(m_instance->d->m_informationList.contains(ki)); - m_instance->d->m_informationList.removeOne(ki); + QTC_CHECK(d->m_informationList.contains(ki)); + d->m_informationList.removeOne(ki); delete ki; } @@ -375,13 +380,17 @@ KitManager::KitList KitManager::restoreKits(const Utils::FileName &fileName) return result; } -QList<Kit *> KitManager::kits(const KitMatcher *m) +QList<Kit *> KitManager::kits() +{ + return d->m_kitList; +} + +QList<Kit *> KitManager::matchingKits(const KitMatcher &matcher) { QList<Kit *> result; - foreach (Kit *k, m_instance->d->m_kitList) { - if (!m || m->matches(k)) + foreach (Kit *k, d->m_kitList) + if (matcher.matches(k)) result.append(k); - } return result; } @@ -397,20 +406,22 @@ Kit *KitManager::find(const Core::Id &id) return 0; } -Kit *KitManager::find(const KitMatcher *m) +Kit *KitManager::find(const KitMatcher &matcher) { - QList<Kit *> matched = kits(m); - return matched.isEmpty() ? 0 : matched.first(); + foreach (Kit *k, d->m_kitList) + if (matcher.matches(k)) + return k; + return 0; } Kit *KitManager::defaultKit() { - return m_instance->d->m_defaultKit; + return d->m_defaultKit; } QList<KitInformation *> KitManager::kitInformation() { - return m_instance->d->m_informationList; + return d->m_informationList; } Internal::KitManagerConfigWidget *KitManager::createConfigWidget(Kit *k) @@ -426,15 +437,10 @@ Internal::KitManagerConfigWidget *KitManager::createConfigWidget(Kit *k) void KitManager::deleteKit(Kit *k) { - QTC_ASSERT(!KitManager::instance()->kits().contains(k), return); + QTC_ASSERT(!KitManager::kits().contains(k), return); delete k; } -bool KitManager::isLoaded() const -{ - return d->m_initialized; -} - QString KitManager::uniqueKitName(const Kit *k, const QString name, const QList<Kit *> &allKits) { QStringList nameList; @@ -465,20 +471,20 @@ void KitManager::notifyAboutDisplayNameChange(Kit *k) { if (!k) return; - if (m_instance->d->m_kitList.contains(k) && m_instance->d->m_keepDisplayNameUnique) + if (d->m_kitList.contains(k) && d->m_keepDisplayNameUnique) k->setDisplayName(uniqueKitName(k, k->displayName(), kits())); - int pos = m_instance->d->m_kitList.indexOf(k); - if (pos >= 0 && m_instance->d->m_initialized) - m_instance->d->moveKit(pos); + int pos = d->m_kitList.indexOf(k); + if (pos >= 0 && d->m_initialized) + d->moveKit(pos); notifyAboutUpdate(k); } void KitManager::notifyAboutUpdate(ProjectExplorer::Kit *k) { - if (!k || !m_instance->isLoaded()) + if (!k || !isLoaded()) return; - if (m_instance->d->m_kitList.contains(k)) + if (d->m_kitList.contains(k)) emit m_instance->kitUpdated(k); else emit m_instance->unmanagedKitUpdated(k); @@ -486,7 +492,7 @@ void KitManager::notifyAboutUpdate(ProjectExplorer::Kit *k) bool KitManager::registerKit(ProjectExplorer::Kit *k) { - QTC_ASSERT(m_instance->isLoaded(), return false); + QTC_ASSERT(isLoaded(), return false); if (!k) return true; foreach (Kit *current, kits()) { @@ -506,7 +512,7 @@ void KitManager::deregisterKit(Kit *k) { if (!k || !kits().contains(k)) return; - m_instance->d->m_kitList.removeOne(k); + d->m_kitList.removeOne(k); if (defaultKit() == k) { QList<Kit *> stList = kits(); Kit *newDefault = 0; @@ -528,7 +534,7 @@ void KitManager::setDefaultKit(Kit *k) return; if (k && !kits().contains(k)) return; - m_instance->d->m_defaultKit = k; + d->m_defaultKit = k; emit m_instance->defaultkitChanged(); } @@ -580,7 +586,7 @@ bool KitInformation::isSticky(const Kit *k) const void KitInformation::notifyAboutUpdate(Kit *k) { - KitManager::instance()->notifyAboutUpdate(k); + KitManager::notifyAboutUpdate(k); } } // namespace ProjectExplorer diff --git a/src/plugins/projectexplorer/kitmanager.h b/src/plugins/projectexplorer/kitmanager.h index 7daf3304ee9b089dd81c3bf8c8bb0a595dd050b5..a78ab209165f540174830afb84db69fb8b66bf5f 100644 --- a/src/plugins/projectexplorer/kitmanager.h +++ b/src/plugins/projectexplorer/kitmanager.h @@ -51,7 +51,6 @@ class KitManager; namespace Internal { class KitManagerConfigWidget; -class KitManagerPrivate; class KitModel; } // namespace Internal @@ -115,12 +114,13 @@ class PROJECTEXPLORER_EXPORT KitManager : public QObject Q_OBJECT public: - static KitManager *instance(); + static QObject *instance(); ~KitManager(); - static QList<Kit *> kits(const KitMatcher *m = 0); + static QList<Kit *> kits(); + static QList<Kit *> matchingKits(const KitMatcher &matcher); static Kit *find(const Core::Id &id); - static Kit *find(const KitMatcher *m); + static Kit *find(const KitMatcher &matcher); static Kit *defaultKit(); static QList<KitInformation *> kitInformation(); @@ -158,7 +158,6 @@ signals: private: explicit KitManager(QObject *parent = 0); - bool isLoaded() const; static bool setKeepDisplayNameUnique(bool unique); // Make sure the this is only called after all @@ -178,11 +177,6 @@ private: static void notifyAboutUpdate(ProjectExplorer::Kit *k); void addKit(Kit *k); - Internal::KitManagerPrivate *const d; - - static KitManager *m_instance; - - friend class Internal::KitManagerPrivate; // for the restoreToolChains methods friend class ProjectExplorerPlugin; // for constructor friend class Kit; friend class Internal::KitModel; diff --git a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp index 33aa335d6744f7162f3c399526a7c3e0ead028d7..4f70c7fd2522f4b606d2145b6878dc642a71ba2c 100644 --- a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp +++ b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp @@ -87,7 +87,7 @@ KitManagerConfigWidget::KitManagerConfigWidget(Kit *k) : connect(m_iconButton, SIGNAL(clicked()), this, SLOT(setIcon())); connect(m_nameEdit, SIGNAL(textChanged(QString)), this, SLOT(setDisplayName())); - KitManager *km = KitManager::instance(); + QObject *km = KitManager::instance(); connect(km, SIGNAL(unmanagedKitUpdated(ProjectExplorer::Kit*)), this, SLOT(workingCopyWasUpdated(ProjectExplorer::Kit*))); connect(km, SIGNAL(kitUpdated(ProjectExplorer::Kit*)), diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp index db63af0324178a02d25462f480d49bf43387bbe9..c6fd834cdef93f16eff4ca7c58b266fd1979b2e9 100644 --- a/src/plugins/projectexplorer/target.cpp +++ b/src/plugins/projectexplorer/target.cpp @@ -130,7 +130,7 @@ Target::Target(Project *project, Kit *k) : setDisplayName(d->m_kit->displayName()); setIcon(d->m_kit->icon()); - KitManager *km = KitManager::instance(); + QObject *km = KitManager::instance(); connect(km, SIGNAL(kitUpdated(ProjectExplorer::Kit*)), this, SLOT(handleKitUpdates(ProjectExplorer::Kit*))); connect(km, SIGNAL(kitRemoved(ProjectExplorer::Kit*)), diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp index d092ab08a3e3e7be852b154ad147173e2baa4ac8..dabdf32771ec61848a8325c261b4b203c9c84736 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.cpp +++ b/src/plugins/qmlprojectmanager/qmlproject.cpp @@ -50,6 +50,7 @@ #include <QDebug> using namespace Core; +using namespace ProjectExplorer; namespace QmlProjectManager { namespace Internal { @@ -377,12 +378,12 @@ bool QmlProject::fromMap(const QVariantMap &map) if (!activeTarget()) { // find a kit that matches prerequisites (prefer default one) Internal::QmlProjectKitMatcher matcher(defaultImport()); - QList<ProjectExplorer::Kit*> kits = ProjectExplorer::KitManager::kits(&matcher); + QList<Kit*> kits = KitManager::matchingKits(matcher); if (!kits.isEmpty()) { - ProjectExplorer::Kit *kit = 0; - if (kits.contains(ProjectExplorer::KitManager::defaultKit())) { - kit = ProjectExplorer::KitManager::defaultKit(); + Kit *kit = 0; + if (kits.contains(KitManager::defaultKit())) { + kit = KitManager::defaultKit(); } else { kit = kits.first(); } @@ -392,7 +393,7 @@ bool QmlProject::fromMap(const QVariantMap &map) // addedTarget calls updateEnabled on the runconfigurations // which needs to happen after refresh - foreach (ProjectExplorer::Target *t, targets()) + foreach (Target *t, targets()) addedTarget(t); connect(this, SIGNAL(addedTarget(ProjectExplorer::Target*)), diff --git a/src/plugins/qnx/blackberryconfigurationmanager.cpp b/src/plugins/qnx/blackberryconfigurationmanager.cpp index 1f08d03a7701a8ead0702aaf39f3bc8cc35c2d03..124c764080f1acb4ff00c31d9ff098c9fe09a9ae 100644 --- a/src/plugins/qnx/blackberryconfigurationmanager.cpp +++ b/src/plugins/qnx/blackberryconfigurationmanager.cpp @@ -239,13 +239,13 @@ void BlackBerryConfigurationManager::saveActiveConfigurationNdkEnvPath() void BlackBerryConfigurationManager::clearInvalidConfigurations() { // Deregister invalid auto deteted BlackBerry Kits - foreach (ProjectExplorer::Kit *kit, ProjectExplorer::KitManager::instance()->kits()) { + foreach (Kit *kit, KitManager::kits()) { if (!kit->isAutoDetected()) continue; - if (ProjectExplorer::DeviceTypeKitInformation::deviceTypeId(kit) == Constants::QNX_BB_OS_TYPE + if (DeviceTypeKitInformation::deviceTypeId(kit) == Constants::QNX_BB_OS_TYPE && !kit->isValid()) - ProjectExplorer::KitManager::instance()->deregisterKit(kit); + KitManager::deregisterKit(kit); } // Remove invalid auto detected BlackBerry qtVerions diff --git a/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.cpp b/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.cpp index 339103c8dce900de029f65b538c8cec6b0321eae..f5c43961a389c93149e20657a009cfab98b8bd19 100644 --- a/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.cpp +++ b/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.cpp @@ -41,6 +41,8 @@ #include <projectexplorer/customwizard/customwizard.h> #include <coreplugin/editormanager/editormanager.h> +using namespace ProjectExplorer; + namespace Qt4ProjectManager { AbstractMobileAppWizardDialog::AbstractMobileAppWizardDialog(QWidget *parent, @@ -208,13 +210,10 @@ bool AbstractMobileAppWizardDialog::isQtPlatformSelected(const QString &platform { QList<Core::Id> selectedKitsList = selectedKits(); - QtSupport::QtPlatformKitMatcher matcher(platform); - QList<ProjectExplorer::Kit *> kitsList - = ProjectExplorer::KitManager::kits(&matcher); - foreach (ProjectExplorer::Kit *k, kitsList) { + foreach (Kit *k, KitManager::matchingKits(QtSupport::QtPlatformKitMatcher(platform))) if (selectedKitsList.contains(k->id())) return true; - } + return false; } diff --git a/src/plugins/qt4projectmanager/wizards/qtwizard.cpp b/src/plugins/qt4projectmanager/wizards/qtwizard.cpp index ab736d24b2a4200a70ea1df7b2cb751668e22622..39db88588ee94d7ed2563f96fc73a4df039351a2 100644 --- a/src/plugins/qt4projectmanager/wizards/qtwizard.cpp +++ b/src/plugins/qt4projectmanager/wizards/qtwizard.cpp @@ -49,6 +49,7 @@ #include <QCoreApplication> #include <QVariant> +using namespace ProjectExplorer; using namespace Qt4ProjectManager; using namespace Qt4ProjectManager::Internal; @@ -323,13 +324,10 @@ bool BaseQt4ProjectWizardDialog::isQtPlatformSelected(const QString &platform) c { QList<Core::Id> selectedKitList = selectedKits(); - QtSupport::QtPlatformKitMatcher matcher(platform); - QList<ProjectExplorer::Kit *> kitList - = ProjectExplorer::KitManager::kits(&matcher); - foreach (ProjectExplorer::Kit *k, kitList) { + foreach (Kit *k, KitManager::matchingKits(QtSupport::QtPlatformKitMatcher(platform))) if (selectedKitList.contains(k->id())) return true; - } + return false; } diff --git a/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp b/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp index 2e09450664b12243cce331163b940842f4ac10a2..fc43e5e0530c31aabb00dd3e89eb2c21a46cd5b8 100644 --- a/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp +++ b/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp @@ -50,6 +50,7 @@ #include <QScrollArea> #include <QVBoxLayout> +using namespace ProjectExplorer; using namespace QtSupport; namespace Qt4ProjectManager { @@ -172,7 +173,7 @@ TargetSetupPage::TargetSetupPage(QWidget *parent) : setTitle(tr("Kit Selection")); - ProjectExplorer::KitManager *km = ProjectExplorer::KitManager::instance(); + QObject *km = KitManager::instance(); connect(km, SIGNAL(kitAdded(ProjectExplorer::Kit*)), this, SLOT(handleKitAddition(ProjectExplorer::Kit*))); connect(km, SIGNAL(kitRemoved(ProjectExplorer::Kit*)), @@ -254,7 +255,9 @@ void TargetSetupPage::setImportSearch(bool b) void TargetSetupPage::setupWidgets() { // Known profiles: - foreach (ProjectExplorer::Kit *k, ProjectExplorer::KitManager::kits(m_requiredMatcher)) + QList<Kit *> kits = m_requiredMatcher + ? KitManager::matchingKits(*m_requiredMatcher) : KitManager::kits(); + foreach (Kit *k, kits) addWidget(k); // Setup import widget: