diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2017-11-14 14:19:52 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2017-11-17 10:09:41 +0000 |
commit | b289a3f87a5286b9e2e4fc0c3a1da0852bdac2c5 (patch) | |
tree | ed2b5ed7bbe4756c06d82c5dec6b647f36b93dfd /src | |
parent | 951f0e0bbd76230c97b054fb19ab23464f8f77be (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.cpp | 10 | ||||
-rw-r--r-- | src/plugins/qbsprojectmanager/qbsproject.h | 1 |
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; |