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:
|
public:
|
||||||
typedef std::function<bool(const Kit *)> Matcher;
|
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(const Matcher &m) : m_matcher(m) {}
|
||||||
|
KitMatcher() {}
|
||||||
|
|
||||||
|
bool isValid() const { return !!m_matcher; }
|
||||||
bool matches(const Kit *kit) const { return m_matcher(kit); }
|
bool matches(const Kit *kit) const { return m_matcher(kit); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -260,7 +260,11 @@ void TargetSetupPage::setupWidgets()
|
|||||||
{
|
{
|
||||||
// Known profiles:
|
// Known profiles:
|
||||||
QList<Kit *> kitList;
|
QList<Kit *> kitList;
|
||||||
kitList = KitManager::matchingKits(m_requiredMatcher);
|
if (m_requiredMatcher.isValid())
|
||||||
|
kitList = KitManager::matchingKits(m_requiredMatcher);
|
||||||
|
else
|
||||||
|
kitList = KitManager::kits();
|
||||||
|
|
||||||
|
|
||||||
foreach (Kit *k, kitList)
|
foreach (Kit *k, kitList)
|
||||||
addWidget(k);
|
addWidget(k);
|
||||||
@@ -374,7 +378,7 @@ void TargetSetupPage::handleKitUpdate(Kit *k)
|
|||||||
|
|
||||||
TargetSetupWidget *widget = m_widgets.value(k->id());
|
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)
|
if (widget && !acceptable)
|
||||||
removeWidget(k);
|
removeWidget(k);
|
||||||
@@ -510,7 +514,7 @@ void TargetSetupPage::removeWidget(Kit *k)
|
|||||||
|
|
||||||
TargetSetupWidget *TargetSetupPage::addWidget(Kit *k)
|
TargetSetupWidget *TargetSetupPage::addWidget(Kit *k)
|
||||||
{
|
{
|
||||||
if (!k || !m_requiredMatcher.matches(k))
|
if (!k || (m_requiredMatcher.isValid() && !m_requiredMatcher.matches(k)))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
IBuildConfigurationFactory *factory
|
IBuildConfigurationFactory *factory
|
||||||
@@ -528,7 +532,7 @@ TargetSetupWidget *TargetSetupPage::addWidget(Kit *k)
|
|||||||
m_baseLayout->removeWidget(widget);
|
m_baseLayout->removeWidget(widget);
|
||||||
m_baseLayout->removeItem(m_spacer);
|
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);
|
m_widgets.insert(k->id(), widget);
|
||||||
connect(widget, SIGNAL(selectedToggled()),
|
connect(widget, SIGNAL(selectedToggled()),
|
||||||
this, SLOT(kitSelectionChanged()));
|
this, SLOT(kitSelectionChanged()));
|
||||||
|
|||||||
@@ -1628,7 +1628,7 @@ bool QmakeProject::matchesKit(const Kit *kit)
|
|||||||
QtSupport::BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(kit);
|
QtSupport::BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(kit);
|
||||||
if (!parentQts.isEmpty())
|
if (!parentQts.isEmpty())
|
||||||
return parentQts.contains(version);
|
return parentQts.contains(version);
|
||||||
return true;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString QmakeProject::executableFor(const QmakeProFileNode *node)
|
QString QmakeProject::executableFor(const QmakeProFileNode *node)
|
||||||
|
|||||||
Reference in New Issue
Block a user