forked from qt-creator/qt-creator
Fix regressions in KitMatcher
Task-number: QTCREATORBUG-13323 Change-Id: I48ddc83c40396a336a4c8e83ef4f5148e131c930 Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
This commit is contained in:
@@ -115,9 +115,10 @@ class PROJECTEXPLORER_EXPORT KitMatcher
|
||||
{
|
||||
public:
|
||||
typedef std::function<bool(const Kit *)> 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:
|
||||
|
||||
@@ -260,7 +260,11 @@ void TargetSetupPage::setupWidgets()
|
||||
{
|
||||
// Known profiles:
|
||||
QList<Kit *> kitList;
|
||||
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()));
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user