aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2023-09-08 16:17:04 +0200
committerUlf Hermann <ulf.hermann@qt.io>2023-09-15 15:32:39 +0200
commit16002e56fd1cdef9ebc9b71e8c685177178647e4 (patch)
treecfec13495e23780657ff61df15ce0aebb16682bf /src
parent75a33aceab62d12cf9bc9567676c118af631fd32 (diff)
Settings: Allow settings locations in resource file system
Pick-to: 6.6 6.5 Fixes: QTBUG-116681 Change-Id: If08f584bf83b75faf5ed0b73962b90c16fc1d016 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Semih Yavuz <semih.yavuz@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/core/qqmlsettings.cpp25
1 files changed, 15 insertions, 10 deletions
diff --git a/src/core/qqmlsettings.cpp b/src/core/qqmlsettings.cpp
index a22eda6d98..0b3bc9ebd3 100644
--- a/src/core/qqmlsettings.cpp
+++ b/src/core/qqmlsettings.cpp
@@ -2,15 +2,18 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "qqmlsettings_p.h"
-#include <qcoreevent.h>
-#include <qcoreapplication.h>
-#include <qloggingcategory.h>
-#include <qsettings.h>
-#include <qpointer.h>
-#include <qjsvalue.h>
-#include <qqmlinfo.h>
-#include <qdebug.h>
-#include <qhash.h>
+
+#include <QtQml/qjsvalue.h>
+#include <QtQml/qqmlfile.h>
+#include <QtQml/qqmlinfo.h>
+
+#include <QtCore/qcoreapplication.h>
+#include <QtCore/qcoreevent.h>
+#include <QtCore/qdebug.h>
+#include <QtCore/qhash.h>
+#include <QtCore/qloggingcategory.h>
+#include <QtCore/qpointer.h>
+#include <QtCore/qsettings.h>
QT_BEGIN_NAMESPACE
@@ -236,7 +239,9 @@ QSettings *QQmlSettingsPrivate::instance() const
return settings;
QQmlSettings *q = const_cast<QQmlSettings *>(q_func());
- settings = location.isLocalFile() ? new QSettings(location.toLocalFile(), QSettings::IniFormat, q) : new QSettings(q);
+ settings = QQmlFile::isLocalFile(location)
+ ? new QSettings(QQmlFile::urlToLocalFileOrQrc(location), QSettings::IniFormat, q)
+ : new QSettings(q);
if (settings->status() != QSettings::NoError) {
// TODO: can't print out the enum due to the following error: