Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37911800
en ru br
Репозитории ALT

Группа :: Графические оболочки/Прочее
Пакет: 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
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin