ProjectExplorer: QPointer guard for OverrideMakeflagsAspect's widget

As for the other aspects.

KitManager::kitRemoved() triggers several actions in a fragile (wrong?)
order: BuildSettingsWidget::updateBuildSettings() after
Target::handleKitRemoval() already destroyed the target with all
configurations and steps.

Having a null there is fine.

Change-Id: I2e10826c12971a25ee4cbab24ef5327fa6e47499
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
This commit is contained in:
hjk
2020-07-28 16:03:02 +02:00
parent 68dcd02640
commit e69d90bc1a

View File

@@ -85,10 +85,10 @@ public:
void addToLayout(LayoutBuilder &builder) final void addToLayout(LayoutBuilder &builder) final
{ {
BaseBoolAspect::addToLayout(builder); BaseBoolAspect::addToLayout(builder);
builder.addItem(m_nonOverrideWarning); builder.addItem(m_nonOverrideWarning.data());
} }
QLabel *m_nonOverrideWarning; QPointer<QLabel> m_nonOverrideWarning;
}; };
class MakeStepConfigWidget : public BuildStepConfigWidget class MakeStepConfigWidget : public BuildStepConfigWidget
@@ -470,6 +470,7 @@ BuildStepConfigWidget *MakeStep::createConfigWidget()
m_userJobCountAspect->setEnabled(jobCountEnabled); m_userJobCountAspect->setEnabled(jobCountEnabled);
m_overrideMakeflagsAspect->setEnabled(jobCountEnabled); m_overrideMakeflagsAspect->setEnabled(jobCountEnabled);
QTC_ASSERT(m_overrideMakeflagsAspect->m_nonOverrideWarning, return);
m_overrideMakeflagsAspect->m_nonOverrideWarning->setVisible( m_overrideMakeflagsAspect->m_nonOverrideWarning->setVisible(
makeflagsJobCountMismatch() && !jobCountOverridesMakeflags()); makeflagsJobCountMismatch() && !jobCountOverridesMakeflags());
widget->m_disableInSubDirsCheckBox->setChecked(!enabledForSubDirs()); widget->m_disableInSubDirsCheckBox->setChecked(!enabledForSubDirs());