aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/controls/material/qquickmaterialstyle.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@theqtcompany.com>2016-01-14 11:34:22 +0100
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2016-01-14 10:40:09 +0000
commit70a31cdafbdb3f018e10465ccb9a481d6fa54ab5 (patch)
treeaf5ef4c20223bf17a55ca00e18589c34630d9ad7 /src/imports/controls/material/qquickmaterialstyle.cpp
parentc08c717225e3c5387dd5f03cf42a7473403142ae (diff)
Improve Material & Universal warnings
Before: QQuickMaterialStyle: unknown accent "foo" After: qrc:/main.qml:28:9: QML CheckBox: unknown Material.accent value: foo Furthermore, before invalid values in :/qtlabscontrols.conf were silently ignored. Now it gives a clear warning: :/qtlabscontrols.conf: unknown Material theme value: foo Change-Id: I0be4eb26ffe23643e282197dc76a091801ab2f4d Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Diffstat (limited to 'src/imports/controls/material/qquickmaterialstyle.cpp')
-rw-r--r--src/imports/controls/material/qquickmaterialstyle.cpp28
1 files changed, 15 insertions, 13 deletions
diff --git a/src/imports/controls/material/qquickmaterialstyle.cpp b/src/imports/controls/material/qquickmaterialstyle.cpp
index ca2b653c..401566e9 100644
--- a/src/imports/controls/material/qquickmaterialstyle.cpp
+++ b/src/imports/controls/material/qquickmaterialstyle.cpp
@@ -38,6 +38,7 @@
#include <QtCore/qdebug.h>
#include <QtCore/qsettings.h>
+#include <QtQml/qqmlinfo.h>
#include <QtLabsControls/private/qquickstyle_p.h>
QT_BEGIN_NAMESPACE
@@ -488,7 +489,7 @@ void QQuickMaterialStyle::setAccent(const QVariant &var)
if (var.type() == QVariant::Int) {
int val = var.toInt();
if (val > BlueGrey) {
- qWarning() << "QQuickMaterialStyle: unknown accent" << val;
+ qmlInfo(parent()) << "unknown Material.accent value: " << val;
return;
}
accent = val;
@@ -499,7 +500,7 @@ void QQuickMaterialStyle::setAccent(const QVariant &var)
} else {
QColor color(var.toString());
if (!color.isValid()) {
- qWarning() << "QQuickMaterialStyle: unknown accent" << var.toString();
+ qmlInfo(parent()) << "unknown Material.accent value: " << var.toString();
return;
}
custom = true;
@@ -823,15 +824,10 @@ void QQuickMaterialStyle::parentStyleChange(QQuickStyle *newParent, QQuickStyle
}
template <typename Enum>
-static Enum readEnumValue(QSettings *settings, const QString &name, bool *ok)
+static Enum toEnumValue(const QByteArray &value, bool *ok)
{
- int value = -1;
- *ok = settings->contains(name);
- if (*ok) {
- QMetaEnum enumeration = QMetaEnum::fromType<Enum>();
- value = enumeration.keyToValue(settings->value(name).toByteArray(), ok);
- }
- return static_cast<Enum>(value);
+ QMetaEnum enumeration = QMetaEnum::fromType<Enum>();
+ return static_cast<Enum>(enumeration.keyToValue(value, ok));
}
void QQuickMaterialStyle::init()
@@ -841,19 +837,25 @@ void QQuickMaterialStyle::init()
QSharedPointer<QSettings> settings = QQuickStyle::settings(QStringLiteral("Material"));
if (!settings.isNull()) {
bool ok = false;
- Theme theme = readEnumValue<Theme>(settings.data(), QStringLiteral("Theme"), &ok);
+ QByteArray value = settings->value(QStringLiteral("Theme")).toByteArray();
+ Theme theme = toEnumValue<Theme>(value, &ok);
if (ok)
defaultTheme = m_theme = theme;
+ else if (!value.isEmpty())
+ qWarning().nospace().noquote() << settings->fileName() << ": unknown Material theme value: " << value;
- Color accent = readEnumValue<Color>(settings.data(), QStringLiteral("Accent"), &ok);
+ value = settings->value(QStringLiteral("Accent")).toByteArray();
+ Color accent = toEnumValue<Color>(value, &ok);
if (ok) {
defaultCustom = m_customAccent = false;
defaultAccent = m_accent = accent;
} else {
- QColor color(settings->value(QStringLiteral("Accent")).toString());
+ QColor color(value.constData());
if (color.isValid()) {
defaultCustom = m_customAccent = true;
defaultAccent = m_accent = color.rgba();
+ } else if (!value.isEmpty()) {
+ qWarning().nospace().noquote() << settings->fileName() << ": unknown Material accent value: " << value;
}
}
}