Группа :: Графические оболочки/Прочее
Пакет: deepin-dock
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: 0001-fix-blur-icon-729.patch
Скачать
Скачать
From 3e26d6ca35196130657e13e7361be08542ba8195 Mon Sep 17 00:00:00 2001
From: caixr23 <caixiangrong@uniontech.com>
Date: Wed, 30 Nov 2022 16:46:54 +0800
Subject: [PATCH] fix: Д©╝Е╓█Д╩╩Е┼║Ф═▐Е⌡╬Ф═┤Ф╗║ГЁ┼И≈╝И╒≤ (#729)
И╚≤Е┬├Е╠▐Ф■╞Ф▄│Х╝╬Г╫╝И■≥Х╞╞
Log: Д©╝Е╓█Д╩╩Е┼║Ф═▐Е⌡╬Ф═┤Ф╗║ГЁ┼И≈╝И╒≤
Bug: https://pms.uniontech.com/bug-view-174459.html
Influence: Г╪╘Ф■╬Е░▌Д╩╩Е┼║Ф═▐-Е░└Ф▐▓Д╩╤Е⌡╬Ф═┤О╪▄Е▐ЁИ■╝Х▐°Е█∙Е⌡╬Ф═┤
---
frame/main.cpp | 2 +-
frame/util/imageutil.cpp | 6 +++---
plugins/multitasking/CMakeLists.txt | 5 ++++-
plugins/multitasking/multitaskingwidget.cpp | 5 +++--
plugins/onboard/onboarditem.cpp | 3 ++-
plugins/overlay-warning/overlaywarningwidget.cpp | 3 ++-
plugins/power/powerstatuswidget.cpp | 3 ++-
plugins/show-desktop/CMakeLists.txt | 5 ++++-
plugins/show-desktop/showdesktopwidget.cpp | 5 +++--
plugins/shutdown/CMakeLists.txt | 5 ++++-
plugins/shutdown/shutdownwidget.cpp | 4 +++-
plugins/trash/trashwidget.cpp | 3 ++-
12 files changed, 33 insertions(+), 16 deletions(-)
diff --git a/frame/main.cpp b/frame/main.cpp
index 7f2e352..d45144a 100644
--- a/frame/main.cpp
+++ b/frame/main.cpp
@@ -172,5 +172,5 @@ int main(int argc, char *argv[])
app.loadTranslator();
app.setAttribute(Qt::AA_EnableHighDpiScaling, true);
- app.setAttribute(Qt::AA_UseHighDpiPixmaps, false);
+ app.setAttribute(Qt::AA_UseHighDpiPixmaps, true);
// Х┤╙Е┼╗Е▄√Ф═┤Х╝╟Г■╠Ф╜╓Е╪─Е╖▀
diff --git a/frame/util/imageutil.cpp b/frame/util/imageutil.cpp
index cac4ddc..a6a21d2 100644
--- a/frame/util/imageutil.cpp
+++ b/frame/util/imageutil.cpp
@@ -8,5 +8,4 @@
#include <QPainter>
#include <QCursor>
-#include <QGSettings>
#include <QDebug>
@@ -16,11 +15,12 @@ const QPixmap ImageUtil::loadSvg(const QString &iconName, const QString &localPa
{
QIcon icon = QIcon::fromTheme(iconName);
+ int pixmapSize = QCoreApplication::testAttribute(Qt::AA_UseHighDpiPixmaps) ? size : int(size * ratio);
if (!icon.isNull()) {
- QPixmap pixmap = icon.pixmap(int(size * ratio), int(size * ratio));
+ QPixmap pixmap = icon.pixmap(pixmapSize);
pixmap.setDevicePixelRatio(ratio);
return pixmap;
}
- QPixmap pixmap(int(size * ratio), int(size * ratio));
+ QPixmap pixmap(pixmapSize, pixmapSize);
QString localIcon = QString("%1%2%3").arg(localPath).arg(iconName).arg(iconName.contains(".svg") ? "" : ".svg");
QSvgRenderer renderer(localIcon);
diff --git a/plugins/multitasking/CMakeLists.txt b/plugins/multitasking/CMakeLists.txt
index 618ddcd..ec4feda 100644
--- a/plugins/multitasking/CMakeLists.txt
+++ b/plugins/multitasking/CMakeLists.txt
@@ -5,5 +5,8 @@ project(${PLUGIN_NAME})
# Sources files
-file(GLOB SRCS "*.h" "*.cpp" "../../widgets/*.h" "../../widgets/*.cpp")
+file(GLOB SRCS "*.h" "*.cpp" "../../widgets/*.h" "../../widgets/*.cpp"
+ "../../frame/util/imageutil.h"
+ "../../frame/util/imageutil.cpp"
+ )
find_package(PkgConfig REQUIRED)
diff --git a/plugins/multitasking/multitaskingwidget.cpp b/plugins/multitasking/multitaskingwidget.cpp
index 143820c..577bee7 100644
--- a/plugins/multitasking/multitaskingwidget.cpp
+++ b/plugins/multitasking/multitaskingwidget.cpp
@@ -5,4 +5,5 @@
#include "multitaskingwidget.h"
#include "multitaskingplugin.h"
+#include "imageutil.h"
#include <QPainter>
@@ -30,7 +31,7 @@ void MultitaskingWidget::paintEvent(QPaintEvent *e)
if (Dock::Fashion == qApp->property(PROP_DISPLAY_MODE).value<Dock::DisplayMode>()) {
- icon = QIcon::fromTheme("deepin-multitasking-view", m_icon).pixmap(size() * 0.8 * ratio);
+ icon = ImageUtil::loadSvg("deepin-multitasking-view", QString(":/icons/"), int(size().width() * 0.8), ratio);
} else {
- icon = QIcon::fromTheme("deepin-multitasking-view", m_icon).pixmap(size() * 0.7 * ratio);
+ icon = ImageUtil::loadSvg("deepin-multitasking-view", QString(":/icons/"), int(size().width() * 0.7), ratio);
}
diff --git a/plugins/onboard/onboarditem.cpp b/plugins/onboard/onboarditem.cpp
index 2209e3a..9bc935f 100644
--- a/plugins/onboard/onboarditem.cpp
+++ b/plugins/onboard/onboarditem.cpp
@@ -96,5 +96,6 @@ const QPixmap OnboardItem::loadSvg(const QString &fileName, const QSize &size) c
QPixmap pixmap;
- pixmap = QIcon::fromTheme(fileName, m_icon).pixmap(size * ratio);
+ QSize pixmapSize = QCoreApplication::testAttribute(Qt::AA_UseHighDpiPixmaps) ? size : (size * ratio);
+ pixmap = QIcon::fromTheme(fileName, m_icon).pixmap(pixmapSize);
pixmap.setDevicePixelRatio(ratio);
diff --git a/plugins/overlay-warning/overlaywarningwidget.cpp b/plugins/overlay-warning/overlaywarningwidget.cpp
index c3f6953..e144407 100644
--- a/plugins/overlay-warning/overlaywarningwidget.cpp
+++ b/plugins/overlay-warning/overlaywarningwidget.cpp
@@ -51,5 +51,6 @@ const QPixmap OverlayWarningWidget::loadSvg(const QString &fileName, const QSize
QPixmap pixmap;
- pixmap = QIcon::fromTheme(fileName).pixmap(size * ratio);
+ QSize pixmapSize = QCoreApplication::testAttribute(Qt::AA_UseHighDpiPixmaps) ? size : (size * ratio);
+ pixmap = QIcon::fromTheme(fileName).pixmap(pixmapSize);
pixmap.setDevicePixelRatio(ratio);
diff --git a/plugins/power/powerstatuswidget.cpp b/plugins/power/powerstatuswidget.cpp
index 5414367..00da85f 100644
--- a/plugins/power/powerstatuswidget.cpp
+++ b/plugins/power/powerstatuswidget.cpp
@@ -97,6 +97,7 @@ QPixmap PowerStatusWidget::getBatteryIcon()
const auto ratio = devicePixelRatioF();
+ QSize pixmapSize = QCoreApplication::testAttribute(Qt::AA_UseHighDpiPixmaps) ? QSize(20, 20) : (QSize(20, 20) * ratio);
QPixmap pix = QIcon::fromTheme(iconStr,
- QIcon::fromTheme(":/batteryicons/resources/batteryicons/" + iconStr + ".svg")).pixmap(QSize(20, 20) * ratio);
+ QIcon::fromTheme(":/batteryicons/resources/batteryicons/" + iconStr + ".svg")).pixmap(pixmapSize);
pix.setDevicePixelRatio(ratio);
diff --git a/plugins/show-desktop/CMakeLists.txt b/plugins/show-desktop/CMakeLists.txt
index d98d5b7..3296a4c 100644
--- a/plugins/show-desktop/CMakeLists.txt
+++ b/plugins/show-desktop/CMakeLists.txt
@@ -5,5 +5,8 @@ project(${PLUGIN_NAME})
# Sources files
-file(GLOB SRCS "*.h" "*.cpp" "../../widgets/*.h" "../../widgets/*.cpp")
+file(GLOB SRCS "*.h" "*.cpp" "../../widgets/*.h" "../../widgets/*.cpp"
+ "../../frame/util/imageutil.h"
+ "../../frame/util/imageutil.cpp"
+ )
find_package(PkgConfig REQUIRED)
diff --git a/plugins/show-desktop/showdesktopwidget.cpp b/plugins/show-desktop/showdesktopwidget.cpp
index e31942f..9d796f0 100644
--- a/plugins/show-desktop/showdesktopwidget.cpp
+++ b/plugins/show-desktop/showdesktopwidget.cpp
@@ -5,4 +5,5 @@
#include "showdesktopwidget.h"
#include "showdesktopplugin.h"
+#include "imageutil.h"
#include <QPainter>
@@ -28,7 +29,7 @@ void ShowDesktopWidget::paintEvent(QPaintEvent *e)
if (Dock::Fashion == qApp->property(PROP_DISPLAY_MODE).value<Dock::DisplayMode>()) {
- icon = QIcon::fromTheme("deepin-toggle-desktop").pixmap(size() * 0.8 * ratio);
+ icon = ImageUtil::loadSvg("deepin-toggle-desktop", QString(), int(size().width() * 0.8), ratio);
} else {
- icon = QIcon::fromTheme("deepin-toggle-desktop").pixmap(size() * 0.7 * ratio);
+ icon = ImageUtil::loadSvg("deepin-toggle-desktop", QString(), int(size().width() * 0.7), ratio);
}
diff --git a/plugins/shutdown/CMakeLists.txt b/plugins/shutdown/CMakeLists.txt
index 2f123a3..6ac0907 100644
--- a/plugins/shutdown/CMakeLists.txt
+++ b/plugins/shutdown/CMakeLists.txt
@@ -5,5 +5,8 @@ project(${PLUGIN_NAME})
# Sources files
-file(GLOB_RECURSE SRCS "*.h" "*.cpp" "../../widgets/*.h" "../../widgets/*.cpp")
+file(GLOB_RECURSE SRCS "*.h" "*.cpp" "../../widgets/*.h" "../../widgets/*.cpp"
+ "../../frame/util/imageutil.h"
+ "../../frame/util/imageutil.cpp"
+ )
find_package(PkgConfig REQUIRED)
diff --git a/plugins/shutdown/shutdownwidget.cpp b/plugins/shutdown/shutdownwidget.cpp
index 53e5864..6aa7a0a 100644
--- a/plugins/shutdown/shutdownwidget.cpp
+++ b/plugins/shutdown/shutdownwidget.cpp
@@ -4,4 +4,5 @@
#include "shutdownwidget.h"
+#include "../frame/util/imageutil.h"
#include <QSvgRenderer>
@@ -100,5 +101,6 @@ const QPixmap ShutdownWidget::loadSvg(const QString &fileName, const QSize &size
QPixmap pixmap;
- pixmap = QIcon::fromTheme(fileName, m_icon).pixmap(size * ratio);
+ QSize pixmapSize = QCoreApplication::testAttribute(Qt::AA_UseHighDpiPixmaps) ? size : (size * ratio);
+ pixmap = QIcon::fromTheme(fileName, m_icon).pixmap(pixmapSize);
pixmap.setDevicePixelRatio(ratio);
diff --git a/plugins/trash/trashwidget.cpp b/plugins/trash/trashwidget.cpp
index 9383fb2..7061658 100644
--- a/plugins/trash/trashwidget.cpp
+++ b/plugins/trash/trashwidget.cpp
@@ -196,5 +196,6 @@ void TrashWidget::updateIcon()
const auto ratio = devicePixelRatioF();
- m_icon = icon.pixmap(size * ratio, size * ratio);
+ int pixmapSize = QCoreApplication::testAttribute(Qt::AA_UseHighDpiPixmaps) ? size : int(size * ratio);
+ m_icon = icon.pixmap(pixmapSize, pixmapSize);
m_icon.setDevicePixelRatio(ratio);
}
--
libgit2 1.3.2