diff options
| author | Marco Bubke <[email protected]> | 2019-02-20 17:26:36 +0100 |
|---|---|---|
| committer | Marco Bubke <[email protected]> | 2019-03-04 16:43:09 +0000 |
| commit | 0c177cd0d19a64270ee4d3eb1f588962ae835dbe (patch) | |
| tree | c05f8fd20cb25cbd48272d5248f9d69b69a101c0 /src | |
| parent | 15777d11ef94b2dda4ee496f1bba0a0b229bcd1f (diff) | |
Add ICore::cacheResourcePath()
We need some directory where we save the index database and the precompiled
headers. This files should be persistent but the user can delete them
if he wants because we will rebuild them.
Task-number: QTCREATORBUG-22012
Change-Id: I9f25eb48a9992d6385a96427ef9c10bc739a3567
Reviewed-by: Eike Ziller <[email protected]>
Diffstat (limited to 'src')
6 files changed, 17 insertions, 6 deletions
diff --git a/src/plugins/clangpchmanager/clangpchmanagerplugin.cpp b/src/plugins/clangpchmanager/clangpchmanagerplugin.cpp index 8f7ea722426..7d564399b65 100644 --- a/src/plugins/clangpchmanager/clangpchmanagerplugin.cpp +++ b/src/plugins/clangpchmanager/clangpchmanagerplugin.cpp @@ -62,7 +62,9 @@ QString backendProcessPath() class ClangPchManagerPluginData { public: - Sqlite::Database database{Utils::PathString{Core::ICore::userResourcePath() + "/symbol-experimental-v1.db"}, 1000ms}; + Sqlite::Database database{Utils::PathString{Core::ICore::cacheResourcePath() + + "/symbol-experimental-v1.db"}, + 1000ms}; ClangBackEnd::RefactoringDatabaseInitializer<Sqlite::Database> databaseInitializer{database}; ClangBackEnd::FilePathCaching filePathCache{database}; ClangPchManager::ProgressManager pchCreationProgressManager{[](QFutureInterface<void> &promise) { diff --git a/src/plugins/clangpchmanager/pchmanagerconnectionclient.cpp b/src/plugins/clangpchmanager/pchmanagerconnectionclient.cpp index 6db0db09745..a8e7e7a2ef4 100644 --- a/src/plugins/clangpchmanager/pchmanagerconnectionclient.cpp +++ b/src/plugins/clangpchmanager/pchmanagerconnectionclient.cpp @@ -51,11 +51,11 @@ ClangPchManager::PchManagerConnectionClient::PchManagerConnectionClient( { m_processCreator.setTemporaryDirectoryPattern("clangpchmanagerbackend-XXXXXX"); - QDir pchsDirectory(Core::ICore::userResourcePath()); + QDir pchsDirectory(Core::ICore::cacheResourcePath()); pchsDirectory.mkdir("pchs"); pchsDirectory.cd("pchs"); m_processCreator.setArguments({connectionName(), - Core::ICore::userResourcePath() + "/symbol-experimental-v1.db", + Core::ICore::cacheResourcePath() + "/symbol-experimental-v1.db", pchsDirectory.absolutePath()}); stdErrPrefixer().setPrefix("PchManagerConnectionClient.stderr: "); diff --git a/src/plugins/clangrefactoring/clangrefactoringplugin.cpp b/src/plugins/clangrefactoring/clangrefactoringplugin.cpp index 917823152e3..ea765bed5f8 100644 --- a/src/plugins/clangrefactoring/clangrefactoringplugin.cpp +++ b/src/plugins/clangrefactoring/clangrefactoringplugin.cpp @@ -77,7 +77,9 @@ class ClangRefactoringPluginData public: using QuerySqliteReadStatementFactory = QuerySqliteStatementFactory<Sqlite::Database, Sqlite::ReadStatement>; - Sqlite::Database database{Utils::PathString{Core::ICore::userResourcePath() + "/symbol-experimental-v1.db"}, 1000ms}; + Sqlite::Database database{Utils::PathString{Core::ICore::cacheResourcePath() + + "/symbol-experimental-v1.db"}, + 1000ms}; ClangBackEnd::RefactoringDatabaseInitializer<Sqlite::Database> databaseInitializer{database}; ClangBackEnd::FilePathCaching filePathCache{database}; ClangPchManager::ProgressManager progressManager{ diff --git a/src/plugins/clangrefactoring/refactoringconnectionclient.cpp b/src/plugins/clangrefactoring/refactoringconnectionclient.cpp index ff66ec20cbf..a42ed38a161 100644 --- a/src/plugins/clangrefactoring/refactoringconnectionclient.cpp +++ b/src/plugins/clangrefactoring/refactoringconnectionclient.cpp @@ -48,8 +48,8 @@ RefactoringConnectionClient::RefactoringConnectionClient(RefactoringClientInterf , m_serverProxy(client) { m_processCreator.setTemporaryDirectoryPattern("clangrefactoringbackend-XXXXXX"); - m_processCreator.setArguments({connectionName(), - Core::ICore::userResourcePath() + "/symbol-experimental-v1.db"}); + m_processCreator.setArguments( + {connectionName(), Core::ICore::cacheResourcePath() + "/symbol-experimental-v1.db"}); stdErrPrefixer().setPrefix("RefactoringConnectionClient.stderr: "); stdOutPrefixer().setPrefix("RefactoringConnectionClient.stdout: "); diff --git a/src/plugins/coreplugin/icore.cpp b/src/plugins/coreplugin/icore.cpp index f16f4369bb2..9cb23af6562 100644 --- a/src/plugins/coreplugin/icore.cpp +++ b/src/plugins/coreplugin/icore.cpp @@ -35,6 +35,7 @@ #include <QSysInfo> #include <QApplication> +#include <QStandardPaths> /*! \namespace Core @@ -439,6 +440,11 @@ QString ICore::userResourcePath() return urp; } +QString ICore::cacheResourcePath() +{ + return QStandardPaths::writableLocation(QStandardPaths::CacheLocation); +} + QString ICore::installerResourcePath() { return QFileInfo(settings(QSettings::SystemScope)->fileName()).path() + '/' diff --git a/src/plugins/coreplugin/icore.h b/src/plugins/coreplugin/icore.h index 80e387658f4..5125345cffd 100644 --- a/src/plugins/coreplugin/icore.h +++ b/src/plugins/coreplugin/icore.h @@ -94,6 +94,7 @@ public: static QString resourcePath(); static QString userResourcePath(); + static QString cacheResourcePath(); static QString installerResourcePath(); static QString libexecPath(); static QString clangExecutable(const QString &clangBinDirectory); |
