forked from qt-creator/qt-creator
MiniProjectTargetSelector: Update mutable KitInformation
Make sure the widgets get updated. This used to work implicitly for QComboBoxes, but not for other widgets. Task-number: QTCREATORBUG-14774 Change-Id: I84440090e459b60fee268693ba0857ea1c0fe5c2 Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
This commit is contained in:
@@ -70,6 +70,8 @@ public:
|
|||||||
|
|
||||||
static QString msgManage();
|
static QString msgManage();
|
||||||
|
|
||||||
|
Kit *kit() const { return m_kit; }
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void dirty();
|
void dirty();
|
||||||
|
|
||||||
|
@@ -605,22 +605,26 @@ void KitAreaWidget::updateKit(Kit *k)
|
|||||||
if (!m_kit || m_kit != k)
|
if (!m_kit || m_kit != k)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Check whether our widgets changed
|
bool addedMutables = false;
|
||||||
bool mustRegenerate = false;
|
QList<Core::Id> knownIdList = Utils::transform(m_widgets, &KitConfigWidget::kitInformationId);
|
||||||
QList<Core::Id> knownIdList;
|
|
||||||
foreach (KitConfigWidget *w, m_widgets)
|
|
||||||
knownIdList << w->kitInformationId();
|
|
||||||
|
|
||||||
foreach (KitInformation *ki, KitManager::kitInformation()) {
|
foreach (KitInformation *ki, KitManager::kitInformation()) {
|
||||||
Core::Id currentId = ki->id();
|
Core::Id currentId = ki->id();
|
||||||
if (m_kit->isMutable(currentId) && !knownIdList.removeOne(currentId)) {
|
if (m_kit->isMutable(currentId) && !knownIdList.removeOne(currentId)) {
|
||||||
mustRegenerate = true;
|
addedMutables = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const bool removedMutables = !knownIdList.isEmpty();
|
||||||
|
|
||||||
if (mustRegenerate || !knownIdList.isEmpty())
|
if (addedMutables || removedMutables) {
|
||||||
|
// Redo whole setup if the number of mutable settings did change
|
||||||
setKit(m_kit);
|
setKit(m_kit);
|
||||||
|
} else {
|
||||||
|
// Refresh all widgets if the number of mutable settings did not change
|
||||||
|
foreach (KitConfigWidget *w, m_widgets)
|
||||||
|
w->refresh();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////
|
/////////
|
||||||
|
Reference in New Issue
Block a user