From 40d13df340af15ed70f3e9ebbddec2e75677d1d1 Mon Sep 17 00:00:00 2001 From: donghualin Date: Thu, 1 Dec 2022 10:17:37 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BB=BB=E5=8A=A1=E6=A0=8F=E9=80=82?= =?UTF-8?q?=E9=85=8D=E4=B8=8D=E5=90=8C=E4=B8=BB=E9=A2=98=E7=9A=84=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根据当前主题获取不同颜色的图标 Log: Influence: 切换不同的主题,观察图标是否发生变化 Task: https://pms.uniontech.com/task-view-222025.html Change-Id: I751218f21bda4052d0bc60a46895660a4f7aad8b --- frame/item/components/multiquickitem.cpp | 4 ++-- frame/item/components/singlequickitem.cpp | 5 +++-- frame/item/quicksettingitem.cpp | 2 +- frame/window/quickpluginwindow.cpp | 2 +- frame/window/systempluginwindow.cpp | 4 +++- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/frame/item/components/multiquickitem.cpp b/frame/item/components/multiquickitem.cpp index 9e8d1a4fa..b5aea75b3 100644 --- a/frame/item/components/multiquickitem.cpp +++ b/frame/item/components/multiquickitem.cpp @@ -114,7 +114,7 @@ bool MultiQuickItem::eventFilter(QObject *obj, QEvent *event) void MultiQuickItem::initUi() { QWidget *itemWidget = pluginItem()->itemWidget(QUICK_ITEM_KEY); - if (pluginItem()->icon(DockPart::QuickPanel).isNull() && itemWidget) { + if (pluginItem()->icon(DockPart::QuickPanel, DGuiApplicationHelper::instance()->themeType()).isNull() && itemWidget) { m_itemWidgetParent = itemWidget->parentWidget(); // 如果插件没有返回图标的显示,则获取插件的itemWidget QHBoxLayout *mainLayout = new QHBoxLayout(this); @@ -251,7 +251,7 @@ QColor QuickIconWidget::foregroundColor() const QPixmap QuickIconWidget::pluginIcon(bool contailGrab) const { - QIcon icon = m_pluginInter->icon(DockPart::QuickPanel); + QIcon icon = m_pluginInter->icon(DockPart::QuickPanel, DGuiApplicationHelper::instance()->themeType()); if (icon.isNull() && contailGrab) { // 如果图标为空,就使用itemWidget的截图作为它的图标,这种一般是适用于老版本插件或者没有实现v23接口的插件 QWidget *itemWidget = m_pluginInter->itemWidget(m_itemKey); diff --git a/frame/item/components/singlequickitem.cpp b/frame/item/components/singlequickitem.cpp index 02c0fd475..d88f903d4 100644 --- a/frame/item/components/singlequickitem.cpp +++ b/frame/item/components/singlequickitem.cpp @@ -22,6 +22,7 @@ #include "pluginsiteminterface.h" #include +#include #define ICONHEIGHT 24 #define ICONWIDTH 24 @@ -73,7 +74,7 @@ QWidget *SingleQuickItem::iconWidget(QWidget *parent) // 显示图标的窗体 QWidget *widget = new QWidget(parent); bool childIsEmpty = true; - QIcon icon = pluginItem()->icon(DockPart::QuickPanel); + QIcon icon = pluginItem()->icon(DockPart::QuickPanel, DGuiApplicationHelper::instance()->themeType()); if (icon.isNull()) { // 如果图标为空,则将获取itemWidget作为它的显示 QWidget *itemWidget = pluginItem()->itemWidget(QUICK_ITEM_KEY); @@ -118,7 +119,7 @@ QWidget *SingleQuickItem::iconWidget(QWidget *parent) QPixmap SingleQuickItem::pixmap() const { // 如果快捷面板区域的图标为空,那么就获取itemWidget的截图 - QIcon icon = pluginItem()->icon(DockPart::QuickPanel); + QIcon icon = pluginItem()->icon(DockPart::QuickPanel, DGuiApplicationHelper::instance()->themeType()); if (icon.isNull()) { QWidget *itemWidget = pluginItem()->itemWidget(itemKey()); if (itemWidget) { diff --git a/frame/item/quicksettingitem.cpp b/frame/item/quicksettingitem.cpp index 36b960e20..07b930e77 100644 --- a/frame/item/quicksettingitem.cpp +++ b/frame/item/quicksettingitem.cpp @@ -72,7 +72,7 @@ DockItem::ItemType QuickSettingItem::itemType() const const QPixmap QuickSettingItem::dragPixmap() { - QPixmap pm = m_pluginInter->icon(DockPart::QuickPanel).pixmap(ICONWIDTH, ICONHEIGHT); + QPixmap pm = m_pluginInter->icon(DockPart::QuickPanel, DGuiApplicationHelper::instance()->themeType()).pixmap(ICONWIDTH, ICONHEIGHT); QPainter pa(&pm); pa.setPen(foregroundColor()); diff --git a/frame/window/quickpluginwindow.cpp b/frame/window/quickpluginwindow.cpp index e3416949a..54c52290a 100644 --- a/frame/window/quickpluginwindow.cpp +++ b/frame/window/quickpluginwindow.cpp @@ -74,7 +74,7 @@ typedef struct DragInfo{ if (!dockItem) return QPixmap(); - QPixmap pixmap = dockItem->pluginItem()->icon(DockPart::QuickShow).pixmap(QSize(ITEMSIZE, ITEMSIZE)); + QPixmap pixmap = dockItem->pluginItem()->icon(DockPart::QuickShow, DGuiApplicationHelper::instance()->themeType()).pixmap(QSize(ITEMSIZE, ITEMSIZE)); if (!pixmap.isNull()) return pixmap; diff --git a/frame/window/systempluginwindow.cpp b/frame/window/systempluginwindow.cpp index e01164ae2..91c92b3e6 100644 --- a/frame/window/systempluginwindow.cpp +++ b/frame/window/systempluginwindow.cpp @@ -24,6 +24,8 @@ #include "quicksettingcontroller.h" #include +#include + #include #include #include @@ -243,7 +245,7 @@ void StretchPluginsItem::paintEvent(QPaintEvent *event) { Q_UNUSED(event); QPainter painter(this); - QIcon icon = m_pluginInter->icon(DockPart::SystemPanel); + QIcon icon = m_pluginInter->icon(DockPart::SystemPanel, DGuiApplicationHelper::instance()->themeType()); QRect rctPixmap(rect()); if (needShowText()) {