From bc65b6b119ff004499d7467e672861eea92dd792 Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Tue, 11 Nov 2014 14:19:50 +0100 Subject: [PATCH] Fix regressions in KitMatcher Task-number: QTCREATORBUG-13323 Change-Id: I48ddc83c40396a336a4c8e83ef4f5148e131c930 Reviewed-by: Tobias Hunger --- src/plugins/projectexplorer/kitmanager.h | 3 ++- src/plugins/projectexplorer/targetsetuppage.cpp | 12 ++++++++---- src/plugins/qmakeprojectmanager/qmakeproject.cpp | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/plugins/projectexplorer/kitmanager.h b/src/plugins/projectexplorer/kitmanager.h index 094af9307d9..fb1223caf12 100644 --- a/src/plugins/projectexplorer/kitmanager.h +++ b/src/plugins/projectexplorer/kitmanager.h @@ -115,9 +115,10 @@ class PROJECTEXPLORER_EXPORT KitMatcher { public: typedef std::function Matcher; - KitMatcher() : m_matcher([](const Kit *k) -> bool { Q_UNUSED(k); return true; }) {} KitMatcher(const Matcher &m) : m_matcher(m) {} + KitMatcher() {} + bool isValid() const { return !!m_matcher; } bool matches(const Kit *kit) const { return m_matcher(kit); } private: diff --git a/src/plugins/projectexplorer/targetsetuppage.cpp b/src/plugins/projectexplorer/targetsetuppage.cpp index 56738f7aeb3..a560009504a 100644 --- a/src/plugins/projectexplorer/targetsetuppage.cpp +++ b/src/plugins/projectexplorer/targetsetuppage.cpp @@ -260,7 +260,11 @@ void TargetSetupPage::setupWidgets() { // Known profiles: QList kitList; - kitList = KitManager::matchingKits(m_requiredMatcher); + if (m_requiredMatcher.isValid()) + kitList = KitManager::matchingKits(m_requiredMatcher); + else + kitList = KitManager::kits(); + foreach (Kit *k, kitList) addWidget(k); @@ -374,7 +378,7 @@ void TargetSetupPage::handleKitUpdate(Kit *k) TargetSetupWidget *widget = m_widgets.value(k->id()); - bool acceptable = m_requiredMatcher.matches(k); + bool acceptable = !m_requiredMatcher.isValid() || m_requiredMatcher.matches(k); if (widget && !acceptable) removeWidget(k); @@ -510,7 +514,7 @@ void TargetSetupPage::removeWidget(Kit *k) TargetSetupWidget *TargetSetupPage::addWidget(Kit *k) { - if (!k || !m_requiredMatcher.matches(k)) + if (!k || (m_requiredMatcher.isValid() && !m_requiredMatcher.matches(k))) return 0; IBuildConfigurationFactory *factory @@ -528,7 +532,7 @@ TargetSetupWidget *TargetSetupPage::addWidget(Kit *k) m_baseLayout->removeWidget(widget); m_baseLayout->removeItem(m_spacer); - widget->setKitSelected(m_preferredMatcher.matches(k)); + widget->setKitSelected(m_preferredMatcher.isValid() && m_preferredMatcher.matches(k)); m_widgets.insert(k->id(), widget); connect(widget, SIGNAL(selectedToggled()), this, SLOT(kitSelectionChanged())); diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index 20691ee95fe..ab398938497 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -1628,7 +1628,7 @@ bool QmakeProject::matchesKit(const Kit *kit) QtSupport::BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(kit); if (!parentQts.isEmpty()) return parentQts.contains(version); - return true; + return false; } QString QmakeProject::executableFor(const QmakeProFileNode *node)