From 48ed9841fe65328bf2b84f1c4c47da3435a4f261 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Wed, 3 Apr 2024 13:26:41 +0300 Subject: [PATCH] kdeplasma-addons: datetime runner optimization Signed-off-by: Ivailo Monev --- .../runners/datetime/datetimerunner.cpp | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/kdeplasma-addons/runners/datetime/datetimerunner.cpp b/kdeplasma-addons/runners/datetime/datetimerunner.cpp index d9f3fb59..51728963 100644 --- a/kdeplasma-addons/runners/datetime/datetimerunner.cpp +++ b/kdeplasma-addons/runners/datetime/datetimerunner.cpp @@ -84,33 +84,37 @@ void DateTimeRunner::match(Plasma::RunnerContext &context) QDateTime DateTimeRunner::datetime(const QString &tz, QString &tzName) { QDateTime dt; + const QDateTime cdt = QDateTime::currentDateTimeUtc(); if (tz.compare(QLatin1String("UTC"), Qt::CaseInsensitive) == 0) { tzName = QLatin1String( "UTC" ); - dt = KTimeZone::utc().toZoneTime(QDateTime::currentDateTimeUtc()); + dt = cdt; return dt; } foreach (const KTimeZone &zone, KSystemTimeZones::zones()) { const QString zoneName = zone.name(); - const QDateTime zoneDateTime = zone.toZoneTime(QDateTime::currentDateTimeUtc()); + const QDateTime zoneDateTime = zone.toZoneTime(cdt); if (zoneName.compare(tz, Qt::CaseInsensitive) == 0) { tzName = zoneName; dt = zoneDateTime; break; - } else if (!dt.isValid()) { - if (zoneName.contains(tz, Qt::CaseInsensitive)) { - tzName = zoneName; - dt = zoneDateTime; - } else { - foreach (const QByteArray &abbrev, zone.abbreviations()) { - if (QString(abbrev).contains(tz, Qt::CaseInsensitive)) { - tzName = abbrev; - dt = zoneDateTime; - } + } + + if (zoneName.contains(tz, Qt::CaseInsensitive)) { + tzName = zoneName; + dt = zoneDateTime; + } else { + foreach (const QByteArray &abbrev, zone.abbreviations()) { + if (QString(abbrev).contains(tz, Qt::CaseInsensitive)) { + tzName = abbrev; + dt = zoneDateTime; } } } + if (dt.isValid()) { + break; + } } return dt;