summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2018-01-04 14:50:05 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2018-01-05 09:25:36 +0000
commitaf62a9590c33dd9daec1bab49cc4a9494410aa62 (patch)
treeef0bb38b9f22e65449bc2adb1340b1290eef3590
parent6797ca18f6ef39f0ca05f89c07d7e3a131138f00 (diff)
downloadqt-creator-af62a9590c33dd9daec1bab49cc4a9494410aa62.tar.gz
QbsProjectManager: Fix reparsing after switching build configurations
After switching to a different build configuration, property changes in the build config widget would no longer cause project reparsing. Likely caused by e52ebbf217. Change-Id: Ifebec74475def49885232ad71d4de01f51568fcb Reviewed-by: hjk <hjk@qt.io>
-rw-r--r--src/plugins/qbsprojectmanager/qbsproject.cpp30
-rw-r--r--src/plugins/qbsprojectmanager/qbsproject.h3
2 files changed, 2 insertions, 31 deletions
diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp
index f82715adde..e87dda87cb 100644
--- a/src/plugins/qbsprojectmanager/qbsproject.cpp
+++ b/src/plugins/qbsprojectmanager/qbsproject.cpp
@@ -125,7 +125,6 @@ QbsProject::QbsProject(const FileName &fileName) :
m_parsingScheduled(false),
m_cancelStatus(CancelStatusNone),
m_cppCodeModelUpdater(new CppTools::CppProjectUpdater(this)),
- m_currentBc(0),
m_extraCompilersPending(false)
{
m_parsingDelay.setInterval(1000); // delay parsing by 1s.
@@ -148,6 +147,7 @@ QbsProject::QbsProject(const FileName &fileName) :
};
subscribeSignal(&BuildConfiguration::environmentChanged, this, delayedParsing);
subscribeSignal(&BuildConfiguration::buildDirectoryChanged, this, delayedParsing);
+ subscribeSignal(&QbsBuildConfiguration::qbsConfigurationChanged, this, delayedParsing);
subscribeSignal(&Target::activeBuildConfigurationChanged, this, delayedParsing);
connect(&m_parsingDelay, &QTimer::timeout, this, &QbsProject::startParsing);
@@ -338,11 +338,6 @@ bool QbsProject::renameFileInProduct(const QString &oldPath, const QString &newP
return addFilesToProduct(QStringList() << newPath, newProductData, newGroupData, &dummy);
}
-void QbsProject::invalidate()
-{
- prepareForParsing();
-}
-
static qbs::AbstractJob *doBuildOrClean(const qbs::Project &project,
const QList<qbs::ProductData> &products,
const qbs::BuildOptions &options)
@@ -546,29 +541,8 @@ void QbsProject::handleRuleExecutionDone()
void QbsProject::changeActiveTarget(Target *t)
{
- BuildConfiguration *bc = 0;
- if (t) {
+ if (t)
m_qbsProject = m_qbsProjects.value(t);
- if (t->kit())
- bc = t->activeBuildConfiguration();
- }
- buildConfigurationChanged(bc);
-}
-
-void QbsProject::buildConfigurationChanged(BuildConfiguration *bc)
-{
- if (m_currentBc)
- disconnect(m_currentBc, &QbsBuildConfiguration::qbsConfigurationChanged,
- this, &QbsProject::delayParsing);
-
- m_currentBc = qobject_cast<QbsBuildConfiguration *>(bc);
- if (m_currentBc) {
- connect(m_currentBc, &QbsBuildConfiguration::qbsConfigurationChanged,
- this, &QbsProject::delayParsing);
- delayParsing();
- } else {
- invalidate();
- }
}
void QbsProject::startParsing()
diff --git a/src/plugins/qbsprojectmanager/qbsproject.h b/src/plugins/qbsprojectmanager/qbsproject.h
index 055618e6e1..1e38cd2303 100644
--- a/src/plugins/qbsprojectmanager/qbsproject.h
+++ b/src/plugins/qbsprojectmanager/qbsproject.h
@@ -110,7 +110,6 @@ public:
void configureAsExampleProject(const QSet<Core::Id> &platforms) final;
- void invalidate();
void delayParsing();
private:
@@ -119,7 +118,6 @@ private:
void rebuildProjectTree();
void changeActiveTarget(ProjectExplorer::Target *t);
- void buildConfigurationChanged(ProjectExplorer::BuildConfiguration *bc);
void startParsing();
void parse(const QVariantMap &config, const Utils::Environment &env, const QString &dir,
@@ -168,7 +166,6 @@ private:
CppTools::CppProjectUpdater *m_cppCodeModelUpdater = nullptr;
CppTools::ProjectInfo m_cppCodeModelProjectInfo;
- QbsBuildConfiguration *m_currentBc;
mutable ProjectExplorer::ProjectImporter *m_importer = nullptr;
QTimer m_parsingDelay;