From 322e2a282158c53f21eb1ca1a2e42097a897bfa2 Mon Sep 17 00:00:00 2001 From: Mikolaj Boc Date: Fri, 18 Aug 2023 17:30:46 +0200 Subject: [PATCH] Simplify QWasmIDBSettingsPrivate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since QWasmIDBSettingsPrivate is only supported on JSPI now, there is no need to maintain the isReadReady flag anymore. This lets us simplify the class a lot. Change-Id: I67322389463af13b5110091a4f8433f08da19925 Reviewed-by: Qt CI Bot Reviewed-by: Morten Johan Sørvig --- src/corelib/io/qsettings_wasm.cpp | 53 ++++--------------------------- 1 file changed, 7 insertions(+), 46 deletions(-) diff --git a/src/corelib/io/qsettings_wasm.cpp b/src/corelib/io/qsettings_wasm.cpp index 96b0033d95..960938fb25 100644 --- a/src/corelib/io/qsettings_wasm.cpp +++ b/src/corelib/io/qsettings_wasm.cpp @@ -236,26 +236,17 @@ public: const QString &application); ~QWasmIDBSettingsPrivate(); - std::optional get(const QString &key) const override; - QStringList children(const QString &prefix, ChildSpec spec) const override; void clear() override; void sync() override; void flush() override; - bool isWritable() const override; - void initAccess() override; - - void loadLocal(); - void setReady(); private: - bool writeSettingsToTemporaryFile(void *dataPtr, int size); + bool writeSettingsToTemporaryFile(const QString &fileName, void *dataPtr, int size); QString databaseName; QString id; }; -static bool isReadReady = false; - constexpr char DbName[] = "/home/web_user"; QWasmIDBSettingsPrivate::QWasmIDBSettingsPrivate(QSettings::Scope scope, @@ -270,7 +261,6 @@ QWasmIDBSettingsPrivate::QWasmIDBSettingsPrivate(QSettings::Scope scope, return; } - setStatus(QSettings::AccessError); // access error until sandbox gets loaded databaseName = organization; id = application; @@ -285,35 +275,23 @@ QWasmIDBSettingsPrivate::QWasmIDBSettingsPrivate(QSettings::Scope scope, void *contents; int size; emscripten_idb_load(DbName, fileName().toLocal8Bit(), &contents, &size, &error); - if (error || !writeSettingsToTemporaryFile(contents, size)) { + if (error || !writeSettingsToTemporaryFile(fileName(), contents, size)) { setStatus(QSettings::AccessError); return; } } - setReady(); + QConfFileSettingsPrivate::initAccess(); } QWasmIDBSettingsPrivate::~QWasmIDBSettingsPrivate() = default; -void QWasmIDBSettingsPrivate::initAccess() -{ - if (isReadReady) - QConfFileSettingsPrivate::initAccess(); -} +bool QWasmIDBSettingsPrivate::writeSettingsToTemporaryFile(const QString &fileName, void *dataPtr, + int size) -std::optional QWasmIDBSettingsPrivate::get(const QString &key) const { - if (isReadReady) - return QConfFileSettingsPrivate::get(key); - - return std::nullopt; -} - -bool QWasmIDBSettingsPrivate::writeSettingsToTemporaryFile(void *dataPtr, int size) -{ - QFile file(fileName()); - QFileInfo fileInfo(fileName()); + QFile file(fileName); + QFileInfo fileInfo(fileName); QDir dir(fileInfo.path()); if (!dir.exists()) dir.mkpath(fileInfo.path()); @@ -324,11 +302,6 @@ bool QWasmIDBSettingsPrivate::writeSettingsToTemporaryFile(void *dataPtr, int si return size == file.write(reinterpret_cast(dataPtr), size); } -QStringList QWasmIDBSettingsPrivate::children(const QString &prefix, ChildSpec spec) const -{ - return QConfFileSettingsPrivate::children(prefix, spec); -} - void QWasmIDBSettingsPrivate::clear() { QConfFileSettingsPrivate::clear(); @@ -359,18 +332,6 @@ void QWasmIDBSettingsPrivate::flush() sync(); } -bool QWasmIDBSettingsPrivate::isWritable() const -{ - return isReadReady && QConfFileSettingsPrivate::isWritable(); -} - -void QWasmIDBSettingsPrivate::setReady() -{ - isReadReady = true; - setStatus(QSettings::NoError); - QConfFileSettingsPrivate::initAccess(); -} - QSettingsPrivate *QSettingsPrivate::create(QSettings::Format format, QSettings::Scope scope, const QString &organization, const QString &application) {