diff options
author | Marco Bubke <marco.bubke@qt.io> | 2018-09-27 17:52:44 +0200 |
---|---|---|
committer | Marco Bubke <marco.bubke@qt.io> | 2018-10-08 08:20:22 +0000 |
commit | 391cfab5d7cb7f4b38cf4a73995ac84b5b3a6ff9 (patch) | |
tree | 9cb7902e34339283d9caf3703706e2036b6c5ad4 /src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp | |
parent | ffc070a3f2605d4b85d839830eb4f30120415c9b (diff) | |
download | qt-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.cpp | 24 |
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(); |