diff options
Diffstat (limited to 'src/plugins/platforms/android/qandroidplatformtheme.cpp')
-rw-r--r-- | src/plugins/platforms/android/qandroidplatformtheme.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/plugins/platforms/android/qandroidplatformtheme.cpp b/src/plugins/platforms/android/qandroidplatformtheme.cpp index e729309ad9..f1ddcefef6 100644 --- a/src/plugins/platforms/android/qandroidplatformtheme.cpp +++ b/src/plugins/platforms/android/qandroidplatformtheme.cpp @@ -176,7 +176,7 @@ static void setPaletteColor(const QVariantMap &object, } } -static std::shared_ptr<AndroidStyle> loadAndroidStyle(QPalette *defaultPalette) +QJsonObject AndroidStyle::loadStyleData() { QString stylePath(QLatin1String(qgetenv("MINISTRO_ANDROID_STYLE_PATH"))); const QLatin1Char slashChar('/'); @@ -198,21 +198,29 @@ static std::shared_ptr<AndroidStyle> loadAndroidStyle(QPalette *defaultPalette) QFile f(stylePath + QLatin1String("style.json")); if (!f.open(QIODevice::ReadOnly)) - return std::shared_ptr<AndroidStyle>(); + return QJsonObject(); QJsonParseError error; QJsonDocument document = QJsonDocument::fromJson(f.readAll(), &error); if (document.isNull()) { qCritical() << error.errorString(); - return std::shared_ptr<AndroidStyle>(); + return QJsonObject(); } if (!document.isObject()) { qCritical() << "Style.json does not contain a valid style."; - return std::shared_ptr<AndroidStyle>(); + return QJsonObject(); } + return document.object(); +} + +static std::shared_ptr<AndroidStyle> loadAndroidStyle(QPalette *defaultPalette) +{ std::shared_ptr<AndroidStyle> style(new AndroidStyle); - style->m_styleData = document.object(); + style->m_styleData = AndroidStyle::loadStyleData(); + if (style->m_styleData.isEmpty()) + return std::shared_ptr<AndroidStyle>(); + for (QJsonObject::const_iterator objectIterator = style->m_styleData.constBegin(); objectIterator != style->m_styleData.constEnd(); ++objectIterator) { |