QmlDesigner: Use AppLocalDataLocation for source_path.db

Change-Id: I3ff160cea5dead12c1fbf28eb156d50097ca51f5
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Marco Bubke
2024-08-29 15:49:40 +02:00
parent 318c6ceda3
commit 7d5cf6e3e0

View File

@@ -45,6 +45,7 @@
#include <QFileSystemWatcher> #include <QFileSystemWatcher>
#include <QLibraryInfo> #include <QLibraryInfo>
#include <QQmlEngine> #include <QQmlEngine>
#include <QStandardPaths>
using namespace std::chrono; using namespace std::chrono;
using namespace std::chrono_literals; using namespace std::chrono_literals;
@@ -215,6 +216,21 @@ std::unique_ptr<ProjectStorageData> createProjectStorageData(::ProjectExplorer::
return {}; return {};
} }
} }
Utils::PathString createDatabasePath(std::string_view name)
{
auto directory = QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation);
QDir{}.mkpath(directory);
Utils::PathString path = directory;
path.append('/');
path.append(name);
return path;
}
} // namespace } // namespace
class QmlDesignerProjectManager::QmlDesignerProjectManagerProjectData class QmlDesignerProjectManager::QmlDesignerProjectManagerProjectData
@@ -244,21 +260,16 @@ public:
class QmlDesignerProjectManager::Data class QmlDesignerProjectManager::Data
{ {
public: public:
Data(ExternalDependenciesInterface &externalDependencies) Sqlite::Database sourcePathDatabase{createDatabasePath("source_path.db"),
: sourcePathDatabase{externalDependencies.userResourcePath(u"source_path.db"),
Sqlite::JournalMode::Wal, Sqlite::JournalMode::Wal,
Sqlite::LockingMode::Normal} Sqlite::LockingMode::Normal};
{}
public:
Sqlite::Database sourcePathDatabase;
QmlDesigner::SourcePathStorage sourcePathStorage{sourcePathDatabase, QmlDesigner::SourcePathStorage sourcePathStorage{sourcePathDatabase,
sourcePathDatabase.isInitialized()}; sourcePathDatabase.isInitialized()};
PathCacheType pathCache{sourcePathStorage}; PathCacheType pathCache{sourcePathStorage};
}; };
QmlDesignerProjectManager::QmlDesignerProjectManager(ExternalDependenciesInterface &externalDependencies) QmlDesignerProjectManager::QmlDesignerProjectManager(ExternalDependenciesInterface &externalDependencies)
: m_data{std::make_unique<Data>(externalDependencies)} : m_data{std::make_unique<Data>()}
, m_previewImageCacheData{std::make_unique<PreviewImageCacheData>(externalDependencies)} , m_previewImageCacheData{std::make_unique<PreviewImageCacheData>(externalDependencies)}
, m_externalDependencies{externalDependencies} , m_externalDependencies{externalDependencies}
{ {