Allow blocking auto files refresh

While importing assets, qml files are generated under the import
path and this triggers files update every time a file is added.
This results into high CPU usage.

Task-number: QDS-1675
Change-Id: Ia0775ef78bbffedfaf2c140365ee31718e7ee3a4
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Vikas Pachdha
2020-03-03 12:30:28 +01:00
committed by Tim Jenssen
parent 40899c7209
commit 07cbc49d33
2 changed files with 30 additions and 0 deletions

View File

@@ -104,6 +104,27 @@ public:
QPointer<QmlProjectItem> m_projectItem;
Utils::FilePath m_canonicalProjectDir;
private:
bool m_blockFilesUpdate = false;
friend class FilesUpdateBlocker;
};
class FilesUpdateBlocker {
public:
FilesUpdateBlocker(QmlBuildSystem* bs): m_bs(bs) {
if (m_bs)
m_bs->m_blockFilesUpdate = true;
}
~FilesUpdateBlocker() {
if (m_bs) {
m_bs->m_blockFilesUpdate = false;
m_bs->refresh(QmlBuildSystem::Everything);
}
}
private:
QPointer<QmlBuildSystem> m_bs;
};
class QMLPROJECTMANAGER_EXPORT QmlProject : public ProjectExplorer::Project