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 <eike.ziller@qt.io>
This commit is contained in:
Marco Bubke
2019-02-20 17:26:36 +01:00
parent 15777d11ef
commit 0c177cd0d1
7 changed files with 23 additions and 6 deletions

View File

@@ -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) {

View File

@@ -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: ");

View File

@@ -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{

View File

@@ -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: ");

View File

@@ -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() + '/'

View File

@@ -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);

View File

@@ -6,5 +6,11 @@ inline static QString userResourcePath()
{
return QDir::tempPath();
}
inline static QString cacheResourcePath()
{
return QDir::tempPath();
}
} // namespace ICore
} // namespace Core