diff --git a/platform/autotest/test-application-icon-proxy.cpp b/platform/autotest/test-application-icon-proxy.cpp index d80013c8c9fbfebf746fcc2b43b835b5c022eeab..9f26e5853daad4bc2bb8cd839fcb5133035954ff 100644 --- a/platform/autotest/test-application-icon-proxy.cpp +++ b/platform/autotest/test-application-icon-proxy.cpp @@ -61,27 +61,27 @@ void application_icon_proxy_test::setAppIdUpdatesStateAndSignalsOnlyOnChange() QCOMPARE(proxy.appId(), firstAppId); QCOMPARE(proxy.icon(), QString()); QCOMPARE(appIdSpy.count(), 1); - QCOMPARE(iconSpy.count(), 1); + QCOMPARE(iconSpy.count(), 0); proxy.setAppId(firstAppId); QCOMPARE(appIdSpy.count(), 1); - QCOMPARE(iconSpy.count(), 1); + QCOMPARE(iconSpy.count(), 0); proxy.setAppId(secondAppId); QCOMPARE(proxy.appId(), secondAppId); QCOMPARE(proxy.icon(), QString()); QCOMPARE(appIdSpy.count(), 2); - QCOMPARE(iconSpy.count(), 2); + QCOMPARE(iconSpy.count(), 0); proxy.setAppId(QString()); QCOMPARE(proxy.appId(), QString()); QCOMPARE(proxy.icon(), QString()); QCOMPARE(appIdSpy.count(), 3); - QCOMPARE(iconSpy.count(), 3); + QCOMPARE(iconSpy.count(), 0); proxy.setAppId(QString()); QCOMPARE(appIdSpy.count(), 3); - QCOMPARE(iconSpy.count(), 3); + QCOMPARE(iconSpy.count(), 0); } QTEST_GUILESS_MAIN(application_icon_proxy_test) diff --git a/platform/ukui/application-icon-proxy.cpp b/platform/ukui/application-icon-proxy.cpp index 061b9d48b8e8d01e825137b03f7a41d9b2b34298..e61a87194f81b3a45d275208b09354aa2da8f50d 100644 --- a/platform/ukui/application-icon-proxy.cpp +++ b/platform/ukui/application-icon-proxy.cpp @@ -126,10 +126,17 @@ QString ApplicationIconProxy::appId() const void ApplicationIconProxy::setAppId(const QString &appId) { - if (d->appId != appId) { - d->appId = appId; - Q_EMIT appIdChanged(); - d->icon = ApplicationIconConfig::instance()->getIcon(appId); + if (d->appId == appId) { + return; + } + + const QString icon = ApplicationIconConfig::instance()->getIcon(appId); + const bool iconChanged = d->icon != icon; + d->appId = appId; + d->icon = icon; + + Q_EMIT appIdChanged(); + if (iconChanged) { Q_EMIT iconChanged(); } } @@ -139,4 +146,4 @@ QString ApplicationIconProxy::icon() const return d->icon; } } -#include "application-icon-proxy.moc" \ No newline at end of file +#include "application-icon-proxy.moc"