summaryrefslogtreecommitdiff
path: root/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@qt.io>2018-09-27 17:52:44 +0200
committerMarco Bubke <marco.bubke@qt.io>2018-10-08 08:20:22 +0000
commit391cfab5d7cb7f4b38cf4a73995ac84b5b3a6ff9 (patch)
tree9cb7902e34339283d9caf3703706e2036b6c5ad4 /src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp
parentffc070a3f2605d4b85d839830eb4f30120415c9b (diff)
downloadqt-creator-391cfab5d7cb7f4b38cf4a73995ac84b5b3a6ff9.tar.gz
Clang: Add progress bars for creating PCHs and indexing
Task-number: QTCREATORBUG-21112 Change-Id: Ie0c00a58f479a2fe7cbc7322490808509733ff0f Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Diffstat (limited to 'src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp')
-rw-r--r--src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp b/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp
index 1fac050883..9cb45e0e35 100644
--- a/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp
+++ b/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp
@@ -83,6 +83,20 @@ public:
}
};
+struct Data // because we have a cycle dependency
+{
+ Data(const QString &databasePath)
+ : database{Utils::PathString{databasePath}, 100000ms}
+ {}
+
+ Sqlite::Database database;
+ RefactoringDatabaseInitializer<Sqlite::Database> databaseInitializer{database};
+ FilePathCaching filePathCache{database};
+ GeneratedFiles generatedFiles;
+ SymbolIndexing symbolIndexing{database, filePathCache, generatedFiles, [&] (int progress, int total) { clangCodeModelServer.setProgress(progress, total); }};
+ RefactoringServer clangCodeModelServer{symbolIndexing, filePathCache, generatedFiles};
+};
+
int main(int argc, char *argv[])
{
try {
@@ -99,14 +113,10 @@ int main(int argc, char *argv[])
const QString connectionName = arguments[0];
const QString databasePath = arguments[1];
- Sqlite::Database database{Utils::PathString{databasePath}, 100000ms};
- RefactoringDatabaseInitializer<Sqlite::Database> databaseInitializer{database};
- FilePathCaching filePathCache{database};
- GeneratedFiles generatedFiles;
- SymbolIndexing symbolIndexing{database, filePathCache, generatedFiles};
- RefactoringServer clangCodeModelServer{symbolIndexing, filePathCache, generatedFiles};
+ Data data{databasePath};
+
ConnectionServer<RefactoringServer, RefactoringClientProxy> connectionServer;
- connectionServer.setServer(&clangCodeModelServer);
+ connectionServer.setServer(&data.clangCodeModelServer);
connectionServer.start(connectionName);
return application.exec();