diff options
| author | Ulf Hermann <ulf.hermann@qt.io> | 2023-09-08 16:17:04 +0200 |
|---|---|---|
| committer | Ulf Hermann <ulf.hermann@qt.io> | 2023-09-15 15:32:39 +0200 |
| commit | 16002e56fd1cdef9ebc9b71e8c685177178647e4 (patch) | |
| tree | cfec13495e23780657ff61df15ce0aebb16682bf /src | |
| parent | 75a33aceab62d12cf9bc9567676c118af631fd32 (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.cpp | 25 |
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: |
