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 databaseInitializer{database}; ClangBackEnd::FilePathCaching filePathCache{database}; ClangPchManager::ProgressManager pchCreationProgressManager{[](QFutureInterface &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 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 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 #include +#include /*! \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); diff --git a/tests/unit/mockup/coreplugin/icore.h b/tests/unit/mockup/coreplugin/icore.h index cfec03f999a..579fbc3b56f 100644 --- a/tests/unit/mockup/coreplugin/icore.h +++ b/tests/unit/mockup/coreplugin/icore.h @@ -6,5 +6,11 @@ inline static QString userResourcePath() { return QDir::tempPath(); } + +inline static QString cacheResourcePath() +{ + return QDir::tempPath(); +} + } // namespace ICore } // namespace Core