From 17bbbee5e4620becdde64ce2ad70ad273e9dd1ba Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Thu, 29 Aug 2024 15:49:40 +0200 Subject: [PATCH] QmlDesigner: Use AppLocalDataLocation for source_path.db Change-Id: I3ff160cea5dead12c1fbf28eb156d50097ca51f5 Reviewed-by: Thomas Hartmann (cherry picked from commit 7d5cf6e3e0c2207f8fba3381fcda348f2f3f6b66) Reviewed-by: Marco Bubke --- .../qmldesigner/qmldesignerprojectmanager.cpp | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp b/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp index f46e6ba9d63..6bba6c12369 100644 --- a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp +++ b/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp @@ -45,6 +45,7 @@ #include #include #include +#include using namespace std::chrono; using namespace std::chrono_literals; @@ -215,6 +216,21 @@ std::unique_ptr createProjectStorageData(::ProjectExplorer:: 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 class QmlDesignerProjectManager::QmlDesignerProjectManagerProjectData @@ -244,21 +260,16 @@ public: class QmlDesignerProjectManager::Data { public: - Data(ExternalDependenciesInterface &externalDependencies) - : sourcePathDatabase{externalDependencies.userResourcePath(u"source_path.db"), - Sqlite::JournalMode::Wal, - Sqlite::LockingMode::Normal} - {} - -public: - Sqlite::Database sourcePathDatabase; + Sqlite::Database sourcePathDatabase{createDatabasePath("source_path.db"), + Sqlite::JournalMode::Wal, + Sqlite::LockingMode::Normal}; QmlDesigner::SourcePathStorage sourcePathStorage{sourcePathDatabase, sourcePathDatabase.isInitialized()}; PathCacheType pathCache{sourcePathStorage}; }; QmlDesignerProjectManager::QmlDesignerProjectManager(ExternalDependenciesInterface &externalDependencies) - : m_data{std::make_unique(externalDependencies)} + : m_data{std::make_unique()} , m_previewImageCacheData{std::make_unique(externalDependencies)} , m_externalDependencies{externalDependencies} {