diff options
author | Liang Qi <liang.qi@qt.io> | 2018-10-29 08:09:46 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2018-10-29 08:10:45 +0100 |
commit | 2609429d7afc263ab8e44864b0f42f1c8356eda8 (patch) | |
tree | 78798b4006a7c6664bf41b44011a57110ee94acd /src/imports/settings | |
parent | 475c74a9926efcd968572563e678988e53804603 (diff) | |
parent | 4a886753a75c7c4d66f1fa9cab5a6c5a03240df3 (diff) |
Merge remote-tracking branch 'origin/5.11' into 5.12
Conflicts:
src/imports/settings/qqmlsettings.cpp
src/quick/items/qquickwindow.cpp
tools/qmlplugindump/main.cpp
Change-Id: I96fedbc773a110374baed79a0b7de92d65df0ed6
Diffstat (limited to 'src/imports/settings')
-rw-r--r-- | src/imports/settings/qqmlsettings.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/imports/settings/qqmlsettings.cpp b/src/imports/settings/qqmlsettings.cpp index 6b3904909a..310ef62d9f 100644 --- a/src/imports/settings/qqmlsettings.cpp +++ b/src/imports/settings/qqmlsettings.cpp @@ -39,10 +39,12 @@ #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> @@ -271,6 +273,26 @@ QSettings *QQmlSettingsPrivate::instance() const if (!settings) { QQmlSettings *q = const_cast<QQmlSettings*>(q_func()); settings = fileName.isEmpty() ? new QSettings(q) : new QSettings(fileName, QSettings::IniFormat, q); + if (settings->status() != QSettings::NoError) { + // TODO: can't print out the enum due to the following error: + // error: C2666: 'QQmlInfo::operator <<': 15 overloads have similar conversions + qmlWarning(q) << "Failed to initialize QSettings instance. Status code is: " << int(settings->status()); + + if (settings->status() == QSettings::AccessError) { + QVector<QString> missingIdentifiers; + if (QCoreApplication::organizationName().isEmpty()) + missingIdentifiers.append(QLatin1String("organizationName")); + if (QCoreApplication::organizationDomain().isEmpty()) + missingIdentifiers.append(QLatin1String("organizationDomain")); + if (QCoreApplication::applicationName().isEmpty()) + missingIdentifiers.append(QLatin1String("applicationName")); + + if (!missingIdentifiers.isEmpty()) + qmlWarning(q) << "The following application identifiers have not been set: " << missingIdentifiers; + } + return settings; + } + if (!category.isEmpty()) settings->beginGroup(category); if (initialized) |