From d084792a3268ccd6ae0d9278281ecb70eb0cb7b6 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Thu, 29 Jul 2021 02:46:02 +0300 Subject: [PATCH] kdeplasma-addons: extract condition from forecast if possible fixes condition detection from wetter.com provider Signed-off-by: Ivailo Monev --- .../wallpapers/weather/weatherwallpaper.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/kdeplasma-addons/wallpapers/weather/weatherwallpaper.cpp b/kdeplasma-addons/wallpapers/weather/weatherwallpaper.cpp index a62dd338..3b25bc9f 100644 --- a/kdeplasma-addons/wallpapers/weather/weatherwallpaper.cpp +++ b/kdeplasma-addons/wallpapers/weather/weatherwallpaper.cpp @@ -27,6 +27,7 @@ #include // KDE includes +#include #include #include #include @@ -588,7 +589,18 @@ void WeatherWallpaper::dataUpdated(const QString &source, const Plasma::DataEngi return; } - m_condition = data[QLatin1String( "Condition Icon" )].toString(); + m_condition = data[QLatin1String("Condition Icon")].toString(); + // qDebug() << Q_FUNC_INFO << source << m_condition; + if (m_condition.isEmpty() || m_condition == QLatin1String("weather-none-available")) { + const QString todayforecast = data[QLatin1String("Short Forecast Day 0")].toString(); + const QStringList splitforecast = todayforecast.split(QLatin1Char('|')); + if (splitforecast.size() == 6) { + m_condition = splitforecast.at(1); + } else if (!splitforecast.isEmpty()) { + kWarning() << "forecast data has changed"; + } + // qDebug() << Q_FUNC_INFO << splitforecast << m_condition; + } loadImage(); }