aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2017-11-14 14:19:52 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2017-11-17 10:09:41 +0000
commitb289a3f87a5286b9e2e4fc0c3a1da0852bdac2c5 (patch)
treeed2b5ed7bbe4756c06d82c5dec6b647f36b93dfd /src
parent951f0e0bbd76230c97b054fb19ab23464f8f77be (diff)
QbsProjectManager: Run updateAfterParse() also on add/remove file
Adding and removing files via the project tree is essentially the same thing as doing it by editing a project file, except that no reparsing is necessary. Task-number: QTCREATORBUG-19292 Change-Id: Idb1bcf0e183f34d4de513f69f974e45ac91afeeb Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/qbsprojectmanager/qbsproject.cpp10
-rw-r--r--src/plugins/qbsprojectmanager/qbsproject.h1
2 files changed, 8 insertions, 3 deletions
diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp
index eb3191e60e..f82715adde 100644
--- a/src/plugins/qbsprojectmanager/qbsproject.cpp
+++ b/src/plugins/qbsprojectmanager/qbsproject.cpp
@@ -275,7 +275,7 @@ bool QbsProject::addFilesToProduct(const QStringList &filePaths,
}
if (notAdded->count() != filePaths.count()) {
m_projectData = m_qbsProject.projectData();
- rebuildProjectTree();
+ delayedUpdateAfterParse();
}
return notAdded->isEmpty();
}
@@ -302,8 +302,7 @@ bool QbsProject::removeFilesFromProduct(const QStringList &filePaths,
}
if (notRemoved->count() != filePaths.count()) {
m_projectData = m_qbsProject.projectData();
- rebuildProjectTree();
- emit fileListChanged();
+ delayedUpdateAfterParse();
}
return notRemoved->isEmpty();
}
@@ -472,6 +471,11 @@ void QbsProject::updateAfterParse()
emit fileListChanged();
}
+void QbsProject::delayedUpdateAfterParse()
+{
+ QTimer::singleShot(0, this, &QbsProject::updateAfterParse);
+}
+
void QbsProject::updateProjectNodes()
{
OpTimer opTimer("updateProjectNodes");
diff --git a/src/plugins/qbsprojectmanager/qbsproject.h b/src/plugins/qbsprojectmanager/qbsproject.h
index fa12083716..055618e6e1 100644
--- a/src/plugins/qbsprojectmanager/qbsproject.h
+++ b/src/plugins/qbsprojectmanager/qbsproject.h
@@ -136,6 +136,7 @@ private:
void handleRuleExecutionDone();
bool checkCancelStatus();
void updateAfterParse();
+ void delayedUpdateAfterParse();
void updateProjectNodes();
void projectLoaded() override;