aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/modeleditor/modelindexer.h
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2020-02-05 16:30:33 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2020-02-07 14:01:06 +0000
commit3782eebfaf8326fec644e7754f3727ddfdfa1d84 (patch)
tree72dab01ba117d85ea2a629aa9aeabaae68b22e1b /src/plugins/modeleditor/modelindexer.h
parenta478359405930ce9f0f79f71562dfa35ece8def1 (diff)
ModelEditor: Do not query all files in the project for their mime type
Consulting the mime type database is much too expensive to do it for all files in a project, so take a shortcut. Example benchmark: When loading the Qt Creator super project (with all the commercial plugins) on my Linux machine, with this patch the time spent in ModelIndexer::scanProject() goes down from ~8 seconds to under 300 milliseconds. Note that the UI is frozen during that period. Task-number: QTCREATORBUG-18533 Change-Id: Id75d6bbcf37b4f4e41383a089e9e0dc5262cfbae Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Jochen Becher <jochen_becher@gmx.de>
Diffstat (limited to 'src/plugins/modeleditor/modelindexer.h')
-rw-r--r--src/plugins/modeleditor/modelindexer.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/plugins/modeleditor/modelindexer.h b/src/plugins/modeleditor/modelindexer.h
index da925977b6a..708ec26e9b4 100644
--- a/src/plugins/modeleditor/modelindexer.h
+++ b/src/plugins/modeleditor/modelindexer.h
@@ -34,6 +34,8 @@ class Project;
class FolderNode;
}
+namespace Utils { class MimeType; }
+
namespace ModelEditor {
namespace Internal {
@@ -72,7 +74,8 @@ private:
private:
void scanProject(ProjectExplorer::Project *project);
- QString findFirstModel(ProjectExplorer::FolderNode *folderNode);
+ QString findFirstModel(ProjectExplorer::FolderNode *folderNode,
+ const Utils::MimeType &mimeType);
void forgetProject(ProjectExplorer::Project *project);
void removeModelFile(const QString &file, ProjectExplorer::Project *project);
void removeDiagramReferenceFile(const QString &file, ProjectExplorer::Project *project);