forked from qt-creator/qt-creator
QmakeProjectManager: Prevent infinite loop on ABI change
Fixes: QTCREATORBUG-29204 Change-Id: I6f4e4fa96f6c48dc83f0e5baf2205421b9ff67ca Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
@@ -510,9 +510,9 @@ QWidget *QMakeStep::createConfigWidget()
|
||||
widget, [this] { qtVersionChanged(); });
|
||||
|
||||
connect(abisListWidget, &QListWidget::itemChanged, this, [this] {
|
||||
abisChanged();
|
||||
if (QmakeBuildConfiguration *bc = qmakeBuildConfiguration())
|
||||
BuildManager::buildLists({bc->cleanSteps()});
|
||||
if (m_ignoreChanges.isLocked())
|
||||
return;
|
||||
handleAbiWidgetChange();
|
||||
});
|
||||
|
||||
connect(widget, &QObject::destroyed, this, [this] {
|
||||
@@ -654,6 +654,8 @@ void QMakeStep::askForRebuild(const QString &title)
|
||||
|
||||
void QMakeStep::updateAbiWidgets()
|
||||
{
|
||||
const GuardLocker locker(m_ignoreChanges);
|
||||
|
||||
if (!abisLabel)
|
||||
return;
|
||||
|
||||
@@ -702,7 +704,7 @@ void QMakeStep::updateAbiWidgets()
|
||||
item->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
|
||||
item->setCheckState(selectedAbis.contains(param) ? Qt::Checked : Qt::Unchecked);
|
||||
}
|
||||
abisChanged();
|
||||
handleAbiWidgetChange();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -711,6 +713,13 @@ void QMakeStep::updateEffectiveQMakeCall()
|
||||
m_effectiveCall->setValue(effectiveQMakeCall());
|
||||
}
|
||||
|
||||
void QMakeStep::handleAbiWidgetChange()
|
||||
{
|
||||
abisChanged();
|
||||
if (QmakeBuildConfiguration *bc = qmakeBuildConfiguration())
|
||||
BuildManager::buildLists({bc->cleanSteps()});
|
||||
}
|
||||
|
||||
void QMakeStep::recompileMessageBoxFinished(int button)
|
||||
{
|
||||
if (button == QMessageBox::Yes) {
|
||||
|
@@ -155,6 +155,7 @@ private:
|
||||
|
||||
void updateAbiWidgets();
|
||||
void updateEffectiveQMakeCall();
|
||||
void handleAbiWidgetChange();
|
||||
|
||||
Utils::CommandLine m_qmakeCommand;
|
||||
Utils::CommandLine m_makeCommand;
|
||||
|
Reference in New Issue
Block a user