Merge remote-tracking branch 'origin/4.12'

Change-Id: Ie35e9959693b6f6f78509eea5b259d6493ef87f2
This commit is contained in:
Eike Ziller
2020-04-17 08:09:55 +02:00
55 changed files with 7620 additions and 5291 deletions

View File

@@ -159,6 +159,14 @@ QbsBuildConfiguration::QbsBuildConfiguration(Target *target, Core::Id id)
QbsBuildConfiguration::~QbsBuildConfiguration()
{
for (BuildStep * const bs : buildSteps()->steps()) {
if (const auto qbs = qobject_cast<QbsBuildStep *>(bs))
qbs->dropSession();
}
for (BuildStep * const cs : cleanSteps()->steps()) {
if (const auto qcs = qobject_cast<QbsCleanStep *>(cs))
qcs->dropSession();
}
delete m_buildSystem;
}

View File

@@ -537,6 +537,15 @@ QbsBuildStepData QbsBuildStep::stepData() const
return data;
}
void QbsBuildStep::dropSession()
{
if (m_session) {
doCancel();
m_session->disconnect(this);
m_session = nullptr;
}
}
// --------------------------------------------------------------------
// QbsBuildStepConfigWidget:

View File

@@ -73,6 +73,8 @@ public:
QbsBuildSystem *qbsBuildSystem() const;
QbsBuildStepData stepData() const;
void dropSession();
signals:
void qbsConfigurationChanged();
void qbsBuildOptionsChanged();

View File

@@ -85,6 +85,15 @@ QbsCleanStep::~QbsCleanStep()
m_session->disconnect(this);
}
void QbsCleanStep::dropSession()
{
if (m_session) {
doCancel();
m_session->disconnect(this);
m_session = nullptr;
}
}
bool QbsCleanStep::init()
{
if (buildSystem()->isParsing() || m_session)

View File

@@ -46,6 +46,8 @@ public:
QbsBuildStepData stepData() const;
void dropSession();
private:
bool init() override;
void doRun() override;