From b59d372eadab53094194c4e69763170d101cd86f Mon Sep 17 00:00:00 2001 From: ck Date: Thu, 15 Aug 2024 17:43:25 +0800 Subject: [PATCH] fix: icon size changed on paletteChanged MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 只在初始化和 sourceSizeChanged 时更新图标大小 防止出现 dpr > 1.0 时未设置 sourceSize 的 item 在 updatePlayer 时图标一直放大 没有设置 sourceSize 会根据图片大小去 match dci 中的图标大小 --- src/private/dquickdciiconimage.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/private/dquickdciiconimage.cpp b/src/private/dquickdciiconimage.cpp index 3bf4d794b..696df34ef 100644 --- a/src/private/dquickdciiconimage.cpp +++ b/src/private/dquickdciiconimage.cpp @@ -134,6 +134,10 @@ void DQuickDciIconImageItemPrivate::updatePlayer() QObject::connect(parentPriv->imageItem, &DQuickIconImage::sourceSizeChanged, player, [this](){ updatePlayerIconSize(); }); + + // 只在初始化和 sourceSizeChanged 时更新图标大小 + // 防止出现 dpr > 1.0 时未设置 sourceSize 的 item 在 updatePlayer 时图标一直放大 + updatePlayerIconSize(); } QString iconPath = findDciIconPath(parentPriv->imageItem->name(), appIconThemeName()); @@ -155,8 +159,6 @@ void DQuickDciIconImageItemPrivate::updatePlayer() player->setPalette(palette); - updatePlayerIconSize(); - player->setDevicePixelRatio(devicePixelRatio); }