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(); });
|
widget, [this] { qtVersionChanged(); });
|
||||||
|
|
||||||
connect(abisListWidget, &QListWidget::itemChanged, this, [this] {
|
connect(abisListWidget, &QListWidget::itemChanged, this, [this] {
|
||||||
abisChanged();
|
if (m_ignoreChanges.isLocked())
|
||||||
if (QmakeBuildConfiguration *bc = qmakeBuildConfiguration())
|
return;
|
||||||
BuildManager::buildLists({bc->cleanSteps()});
|
handleAbiWidgetChange();
|
||||||
});
|
});
|
||||||
|
|
||||||
connect(widget, &QObject::destroyed, this, [this] {
|
connect(widget, &QObject::destroyed, this, [this] {
|
||||||
@@ -654,6 +654,8 @@ void QMakeStep::askForRebuild(const QString &title)
|
|||||||
|
|
||||||
void QMakeStep::updateAbiWidgets()
|
void QMakeStep::updateAbiWidgets()
|
||||||
{
|
{
|
||||||
|
const GuardLocker locker(m_ignoreChanges);
|
||||||
|
|
||||||
if (!abisLabel)
|
if (!abisLabel)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -702,7 +704,7 @@ void QMakeStep::updateAbiWidgets()
|
|||||||
item->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
|
item->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
|
||||||
item->setCheckState(selectedAbis.contains(param) ? Qt::Checked : Qt::Unchecked);
|
item->setCheckState(selectedAbis.contains(param) ? Qt::Checked : Qt::Unchecked);
|
||||||
}
|
}
|
||||||
abisChanged();
|
handleAbiWidgetChange();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -711,6 +713,13 @@ void QMakeStep::updateEffectiveQMakeCall()
|
|||||||
m_effectiveCall->setValue(effectiveQMakeCall());
|
m_effectiveCall->setValue(effectiveQMakeCall());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QMakeStep::handleAbiWidgetChange()
|
||||||
|
{
|
||||||
|
abisChanged();
|
||||||
|
if (QmakeBuildConfiguration *bc = qmakeBuildConfiguration())
|
||||||
|
BuildManager::buildLists({bc->cleanSteps()});
|
||||||
|
}
|
||||||
|
|
||||||
void QMakeStep::recompileMessageBoxFinished(int button)
|
void QMakeStep::recompileMessageBoxFinished(int button)
|
||||||
{
|
{
|
||||||
if (button == QMessageBox::Yes) {
|
if (button == QMessageBox::Yes) {
|
||||||
|
@@ -155,6 +155,7 @@ private:
|
|||||||
|
|
||||||
void updateAbiWidgets();
|
void updateAbiWidgets();
|
||||||
void updateEffectiveQMakeCall();
|
void updateEffectiveQMakeCall();
|
||||||
|
void handleAbiWidgetChange();
|
||||||
|
|
||||||
Utils::CommandLine m_qmakeCommand;
|
Utils::CommandLine m_qmakeCommand;
|
||||||
Utils::CommandLine m_makeCommand;
|
Utils::CommandLine m_makeCommand;
|
||||||
|
Reference in New Issue
Block a user