diff --git a/src/icon.cpp b/src/icon.cpp --- a/src/icon.cpp +++ b/src/icon.cpp @@ -439,6 +439,7 @@ QString iconSource = m_source.toString(); if (iconSource.startsWith(QLatin1String("image://"))) { + const auto multiplier = QCoreApplication::instance()->testAttribute(Qt::AA_UseHighDpiPixmaps) ? (window() ? window()->devicePixelRatio() : qGuiApp->devicePixelRatio()) : 1; QUrl iconUrl(iconSource); QString iconProviderId = iconUrl.host(); QString iconId = iconUrl.path(); @@ -455,10 +456,10 @@ return img; switch(imageProvider->imageType()){ case QQmlImageProviderBase::Image: - img = imageProvider->requestImage(iconId, &actualSize, size); + img = imageProvider->requestImage(iconId, &actualSize, size * multiplier); break; case QQmlImageProviderBase::Pixmap: - img = imageProvider->requestPixmap(iconId, &actualSize, size).toImage(); + img = imageProvider->requestPixmap(iconId, &actualSize, size * multiplier).toImage(); break; case QQmlImageProviderBase::Texture: case QQmlImageProviderBase::Invalid: diff --git a/src/libkirigami/platformtheme.cpp b/src/libkirigami/platformtheme.cpp --- a/src/libkirigami/platformtheme.cpp +++ b/src/libkirigami/platformtheme.cpp @@ -129,6 +129,7 @@ void PlatformThemePrivate::syncCustomPalette() { + const auto prev = customPalette; for (auto state : { QPalette::Active, QPalette::Inactive, QPalette::Disabled }) { setPaletteColor(customPalette, state, QPalette::WindowText, q->textColor()); setPaletteColor(customPalette, state, QPalette::Window, q->backgroundColor()); @@ -143,7 +144,9 @@ setPaletteColor(customPalette, state, QPalette::Link, q->linkColor()); setPaletteColor(customPalette, state, QPalette::LinkVisited, q->visitedLinkColor()); } - emit q->paletteChanged(customPalette); + if (prev != customPalette) { + emit q->paletteChanged(customPalette); + } } void PlatformThemePrivate::findParentStyle()