mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
feat: 任务栏适配不同主题的插件图标
根据当前主题获取不同颜色的图标 Log: Influence: 切换不同的主题,观察图标是否发生变化 Task: https://pms.uniontech.com/task-view-222025.html Change-Id: I751218f21bda4052d0bc60a46895660a4f7aad8b
This commit is contained in:
parent
d4522035cf
commit
40d13df340
@ -114,7 +114,7 @@ bool MultiQuickItem::eventFilter(QObject *obj, QEvent *event)
|
|||||||
void MultiQuickItem::initUi()
|
void MultiQuickItem::initUi()
|
||||||
{
|
{
|
||||||
QWidget *itemWidget = pluginItem()->itemWidget(QUICK_ITEM_KEY);
|
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();
|
m_itemWidgetParent = itemWidget->parentWidget();
|
||||||
// 如果插件没有返回图标的显示,则获取插件的itemWidget
|
// 如果插件没有返回图标的显示,则获取插件的itemWidget
|
||||||
QHBoxLayout *mainLayout = new QHBoxLayout(this);
|
QHBoxLayout *mainLayout = new QHBoxLayout(this);
|
||||||
@ -251,7 +251,7 @@ QColor QuickIconWidget::foregroundColor() const
|
|||||||
|
|
||||||
QPixmap QuickIconWidget::pluginIcon(bool contailGrab) 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) {
|
if (icon.isNull() && contailGrab) {
|
||||||
// 如果图标为空,就使用itemWidget的截图作为它的图标,这种一般是适用于老版本插件或者没有实现v23接口的插件
|
// 如果图标为空,就使用itemWidget的截图作为它的图标,这种一般是适用于老版本插件或者没有实现v23接口的插件
|
||||||
QWidget *itemWidget = m_pluginInter->itemWidget(m_itemKey);
|
QWidget *itemWidget = m_pluginInter->itemWidget(m_itemKey);
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include "pluginsiteminterface.h"
|
#include "pluginsiteminterface.h"
|
||||||
|
|
||||||
#include <DFontSizeManager>
|
#include <DFontSizeManager>
|
||||||
|
#include <DGuiApplicationHelper>
|
||||||
|
|
||||||
#define ICONHEIGHT 24
|
#define ICONHEIGHT 24
|
||||||
#define ICONWIDTH 24
|
#define ICONWIDTH 24
|
||||||
@ -73,7 +74,7 @@ QWidget *SingleQuickItem::iconWidget(QWidget *parent)
|
|||||||
// 显示图标的窗体
|
// 显示图标的窗体
|
||||||
QWidget *widget = new QWidget(parent);
|
QWidget *widget = new QWidget(parent);
|
||||||
bool childIsEmpty = true;
|
bool childIsEmpty = true;
|
||||||
QIcon icon = pluginItem()->icon(DockPart::QuickPanel);
|
QIcon icon = pluginItem()->icon(DockPart::QuickPanel, DGuiApplicationHelper::instance()->themeType());
|
||||||
if (icon.isNull()) {
|
if (icon.isNull()) {
|
||||||
// 如果图标为空,则将获取itemWidget作为它的显示
|
// 如果图标为空,则将获取itemWidget作为它的显示
|
||||||
QWidget *itemWidget = pluginItem()->itemWidget(QUICK_ITEM_KEY);
|
QWidget *itemWidget = pluginItem()->itemWidget(QUICK_ITEM_KEY);
|
||||||
@ -118,7 +119,7 @@ QWidget *SingleQuickItem::iconWidget(QWidget *parent)
|
|||||||
QPixmap SingleQuickItem::pixmap() const
|
QPixmap SingleQuickItem::pixmap() const
|
||||||
{
|
{
|
||||||
// 如果快捷面板区域的图标为空,那么就获取itemWidget的截图
|
// 如果快捷面板区域的图标为空,那么就获取itemWidget的截图
|
||||||
QIcon icon = pluginItem()->icon(DockPart::QuickPanel);
|
QIcon icon = pluginItem()->icon(DockPart::QuickPanel, DGuiApplicationHelper::instance()->themeType());
|
||||||
if (icon.isNull()) {
|
if (icon.isNull()) {
|
||||||
QWidget *itemWidget = pluginItem()->itemWidget(itemKey());
|
QWidget *itemWidget = pluginItem()->itemWidget(itemKey());
|
||||||
if (itemWidget) {
|
if (itemWidget) {
|
||||||
|
@ -72,7 +72,7 @@ DockItem::ItemType QuickSettingItem::itemType() const
|
|||||||
|
|
||||||
const QPixmap QuickSettingItem::dragPixmap()
|
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);
|
QPainter pa(&pm);
|
||||||
pa.setPen(foregroundColor());
|
pa.setPen(foregroundColor());
|
||||||
|
@ -74,7 +74,7 @@ typedef struct DragInfo{
|
|||||||
if (!dockItem)
|
if (!dockItem)
|
||||||
return QPixmap();
|
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())
|
if (!pixmap.isNull())
|
||||||
return pixmap;
|
return pixmap;
|
||||||
|
|
||||||
|
@ -24,6 +24,8 @@
|
|||||||
#include "quicksettingcontroller.h"
|
#include "quicksettingcontroller.h"
|
||||||
|
|
||||||
#include <DListView>
|
#include <DListView>
|
||||||
|
#include <DGuiApplicationHelper>
|
||||||
|
|
||||||
#include <QBoxLayout>
|
#include <QBoxLayout>
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QMetaObject>
|
#include <QMetaObject>
|
||||||
@ -243,7 +245,7 @@ void StretchPluginsItem::paintEvent(QPaintEvent *event)
|
|||||||
{
|
{
|
||||||
Q_UNUSED(event);
|
Q_UNUSED(event);
|
||||||
QPainter painter(this);
|
QPainter painter(this);
|
||||||
QIcon icon = m_pluginInter->icon(DockPart::SystemPanel);
|
QIcon icon = m_pluginInter->icon(DockPart::SystemPanel, DGuiApplicationHelper::instance()->themeType());
|
||||||
|
|
||||||
QRect rctPixmap(rect());
|
QRect rctPixmap(rect());
|
||||||
if (needShowText()) {
|
if (needShowText()) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user