diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2018-09-27 10:47:15 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2018-09-27 07:57:38 +0000 |
commit | 05afa85a3a3320a688bcf276607c15a95743a9ba (patch) | |
tree | f3e65728fa48802020689dcb6be4e605a839cb68 /src/Authoring/Studio/Palettes | |
parent | eda406902e1d7a08d482d05a9c715609f93ff7b2 (diff) |
Fix constant CPU load when project contains qml files
Checking whether a file is a behavior or qml stream is expensive, and
it was getting done continuously for some reason. Now we cache
the result of the first check for each file.
Task-number: QT3DS-2404
Change-Id: Iaf7fab48559790c6561ecf6b00d60febd68e6a08
Reviewed-by: Kimmo Leppälä <kimmo.leppala@qt.io>
Reviewed-by: Antti Määttä <antti.maatta@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Diffstat (limited to 'src/Authoring/Studio/Palettes')
-rw-r--r-- | src/Authoring/Studio/Palettes/Project/ProjectView.cpp | 15 |
1 files changed, 1 insertions, 14 deletions
diff --git a/src/Authoring/Studio/Palettes/Project/ProjectView.cpp b/src/Authoring/Studio/Palettes/Project/ProjectView.cpp index 6b7a5a49..fcfa8c2b 100644 --- a/src/Authoring/Studio/Palettes/Project/ProjectView.cpp +++ b/src/Authoring/Studio/Palettes/Project/ProjectView.cpp @@ -50,7 +50,6 @@ #include <QtQml/qqmlengine.h> #include <QtQml/qqmlfile.h> #include <QtQuick/qquickitem.h> -#include <QtQml/qqmlapplicationengine.h> ProjectView::ProjectView(const QSize &preferredSize, QWidget *parent) : QQuickWidget(parent) , m_ProjectModel(new ProjectFileSystemModel(this)) @@ -369,19 +368,7 @@ bool ProjectView::isPresentation(int row) const bool ProjectView::isQmlStream(int row) const { - const QString filePath = m_ProjectModel->filePath(row); - - if (!filePath.endsWith(QLatin1String(".qml"))) - return false; - - QQmlApplicationEngine qmlEngine(filePath); - if (qmlEngine.rootObjects().size() > 0) { - const char *rootClassName = qmlEngine.rootObjects().at(0) - ->metaObject()->superClass()->className(); - return strcmp(rootClassName, "Q3DStudio::Q3DSQmlBehavior") != 0; - } else { - return false; - } + return g_StudioApp.isQmlStream(m_ProjectModel->filePath(row)); } bool ProjectView::isRefreshable(int row) const |