Skip to content

Commit

Permalink
fix: dcc-dock-plugin icon tweak
Browse files Browse the repository at this point in the history
控制中心中dock的插件统一混合颜色
暗色主题时填充白色,浅色主题填充黑色

Issue: linuxdeepin/developer-center#6454
  • Loading branch information
kegechen committed Mar 4, 2024
1 parent 1653473 commit 3eb9528
Show file tree
Hide file tree
Showing 6 changed files with 11 additions and 37 deletions.
9 changes: 8 additions & 1 deletion frame/dbus/dbusdockadaptors.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,14 @@ QIcon DBusDockAdaptors::getSettingIcon(PluginsItemInterface *plugin, QSize &pixm
QIcon icon = plugin->icon(DockPart::DCCSetting, colorType);
if (!icon.isNull()) {
pixmapSize = iconSize(icon);
return icon;

QColor c = colorType == DGuiApplicationHelper::LightType ? Qt::black :Qt::white;
QPixmap pixmap = icon.pixmap(pixmapSize);
QPainter pa(&pixmap);
pa.setCompositionMode(QPainter::CompositionMode_SourceIn);
pa.fillRect(pixmap.rect(), c);

return pixmap;
}

// 如果插件中没有设置图标,则根据插件的类型,获取其他的图标
Expand Down
6 changes: 0 additions & 6 deletions plugins/multitasking/multitaskingplugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -145,12 +145,6 @@ QIcon MultitaskingPlugin::icon(const DockPart &dockPart, DGuiApplicationHelper::
if (dockPart == DockPart::DCCSetting) {
auto icon = QIcon::fromTheme("dcc-multitasking-view", QIcon(":/icons/dcc-multitasking-view.svg"));
QPixmap pixmap = icon.pixmap(QSize(18, 18));
if (themeType == DGuiApplicationHelper::ColorType::LightType)
return pixmap;

QPainter pa(&pixmap);
pa.setCompositionMode(QPainter::CompositionMode_SourceIn);
pa.fillRect(pixmap.rect(), Qt::white);
return pixmap;
}

Expand Down
12 changes: 2 additions & 10 deletions plugins/onboard/onboardplugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -146,16 +146,8 @@ void OnboardPlugin::pluginSettingsChanged()

QIcon OnboardPlugin::icon(const DockPart &dockPart, DGuiApplicationHelper::ColorType themeType)
{
if (dockPart == DockPart::DCCSetting) {
if (themeType == DGuiApplicationHelper::ColorType::LightType)
return QIcon(":/icons/icon/dcc_keyboard.svg");

QPixmap pixmap(":/icons/icon/dcc_keyboard.svg");
QPainter pa(&pixmap);
pa.setCompositionMode(QPainter::CompositionMode_SourceIn);
pa.fillRect(pixmap.rect(), Qt::white);
return pixmap;
}
if (dockPart == DockPart::DCCSetting)
return QIcon(":/icons/icon/dcc_keyboard.svg");

if (dockPart == DockPart::QuickPanel)
return m_onboardItem->iconPixmap(QSize(24, 24), themeType);
Expand Down
6 changes: 0 additions & 6 deletions plugins/show-desktop/showdesktopplugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -127,12 +127,6 @@ QIcon ShowDesktopPlugin::icon(const DockPart &dockPart, DGuiApplicationHelper::C
auto loadsvg = []{ return ImageUtil::loadSvg(":/icons/dcc-show-desktop.svg", QSize(18, 18));};
auto icon = QIcon::fromTheme("dcc-show-desktop", loadsvg());
QPixmap pixmap = icon.pixmap(QSize(18, 18));
if (themeType == DGuiApplicationHelper::ColorType::LightType)
return pixmap;

QPainter pa(&pixmap);
pa.setCompositionMode(QPainter::CompositionMode_SourceIn);
pa.fillRect(pixmap.rect(), Qt::white);
return pixmap;
}

Expand Down
7 changes: 0 additions & 7 deletions plugins/shutdown/shutdownplugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -277,13 +277,6 @@ QIcon ShutdownPlugin::icon(const DockPart &dockPart, DGuiApplicationHelper::Colo
if (dockPart == DockPart::DCCSetting) {
QString iconFile(":/icons/resources/icons/dcc_shutdown.svg");
auto pixmap = ImageUtil::loadSvg(iconFile, QSize(18, 18));
if (themeType == DGuiApplicationHelper::ColorType::LightType)
return pixmap;

QPainter pa(&pixmap);
pa.setCompositionMode(QPainter::CompositionMode_SourceIn);
pa.fillRect(pixmap.rect(), Qt::white);

return pixmap;
}

Expand Down
8 changes: 1 addition & 7 deletions plugins/trash/trashplugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -172,16 +172,10 @@ void TrashPlugin::pluginSettingsChanged()
refreshPluginItemsVisible();
}

QIcon TrashPlugin::icon(const DockPart &dockPart, DGuiApplicationHelper::ColorType themeType)
QIcon TrashPlugin::icon(const DockPart &dockPart, DGuiApplicationHelper::ColorType )
{
if (dockPart == DockPart::DCCSetting) {
auto pixmap = ImageUtil::loadSvg(":/icons/dcc_trash.svg", QSize(18, 18));
if (themeType == DGuiApplicationHelper::ColorType::LightType)
return pixmap;

QPainter pa(&pixmap);
pa.setCompositionMode(QPainter::CompositionMode_SourceIn);
pa.fillRect(pixmap.rect(), Qt::white);
return pixmap;
}

Expand Down

0 comments on commit 3eb9528

Please sign in to comment.