diff --git a/src/declarativeimports/core/units.h b/src/declarativeimports/core/units.h --- a/src/declarativeimports/core/units.h +++ b/src/declarativeimports/core/units.h @@ -217,6 +217,11 @@ void updateDevicePixelRatio(); void updatePlasmaRCSettings(); + + static qreal deviceRatioToIconRatio(const qreal devicePixelRatio); + static qreal primaryScreenDevicePixelRatio(); + static qreal primaryScreenIconPixelRatio(); + /** * @return The dpi-adjusted size for a given icon size */ diff --git a/src/declarativeimports/core/units.cpp b/src/declarativeimports/core/units.cpp --- a/src/declarativeimports/core/units.cpp +++ b/src/declarativeimports/core/units.cpp @@ -155,23 +155,18 @@ int Units::roundToIconSize(int size) { - /*Do *not* use devicePixelIconSize here, we want to use the sizes of the pixmaps of the smallest icons on the disk. And those are unaffected by dpi*/ if (size <= 0) { return 0; - } else if (size < KIconLoader::SizeSmall) { - return KIconLoader::SizeSmall/2; - } else if (size < KIconLoader::SizeSmallMedium) { - return KIconLoader::SizeSmall; - - } else if (size < KIconLoader::SizeMedium) { - return KIconLoader::SizeSmallMedium; - - } else if (size < KIconLoader::SizeLarge) { - return KIconLoader::SizeMedium; - - } else if (size < KIconLoader::SizeHuge) { - return KIconLoader::SizeLarge; - + } else if (size < devicePixelIconSize(KIconLoader::SizeSmall)) { + return devicePixelIconSize(KIconLoader::SizeSmall) / 2; + } else if (size < devicePixelIconSize(KIconLoader::SizeSmallMedium)) { + return devicePixelIconSize(KIconLoader::SizeSmall); + } else if (size < devicePixelIconSize(KIconLoader::SizeMedium)) { + return devicePixelIconSize(KIconLoader::SizeSmallMedium); + } else if (size < devicePixelIconSize(KIconLoader::SizeLarge)) { + return devicePixelIconSize(KIconLoader::SizeMedium); + } else if (size < devicePixelIconSize(KIconLoader::SizeHuge)) { + return devicePixelIconSize(KIconLoader::SizeLarge); } else { return size; }