mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
feat(tray):dock mini size change dark icon
This commit is contained in:
parent
dd53d1cf7c
commit
398b0484f2
@ -25,6 +25,7 @@
|
||||
#include "networkplugin.h"
|
||||
#include "../util/imageutil.h"
|
||||
#include "../widgets/tipswidget.h"
|
||||
#include <DGuiApplicationHelper>
|
||||
|
||||
#include <QPainter>
|
||||
#include <QMouseEvent>
|
||||
@ -32,6 +33,7 @@
|
||||
#include <QApplication>
|
||||
|
||||
using namespace dde::network;
|
||||
DGUI_USE_NAMESPACE
|
||||
|
||||
WiredItem::WiredItem(WiredDevice *device)
|
||||
: DeviceItem(device),
|
||||
@ -52,6 +54,9 @@ WiredItem::WiredItem(WiredDevice *device)
|
||||
connect(m_device, static_cast<void (NetworkDevice::*)(NetworkDevice::DeviceStatus) const>(&NetworkDevice::statusChanged), this, &WiredItem::deviceStateChanged);
|
||||
connect(static_cast<WiredDevice *>(m_device.data()), &WiredDevice::connectionsChanged, this, &WiredItem::deviceStateChanged);
|
||||
connect(static_cast<WiredDevice *>(m_device.data()), &WiredDevice::activeWiredConnectionInfoChanged, this, &WiredItem::deviceStateChanged);
|
||||
connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [ = ] {
|
||||
refreshIcon();
|
||||
});
|
||||
|
||||
QTimer::singleShot(0, this, &WiredItem::refreshTips);
|
||||
QTimer::singleShot(0, this, &WiredItem::refreshIcon);
|
||||
@ -179,7 +184,7 @@ void WiredItem::reloadIcon()
|
||||
iconName.append("-symbolic");
|
||||
|
||||
// 最小尺寸时采用深色图标
|
||||
if (height() <= PLUGIN_BACKGROUND_MIN_SIZE)
|
||||
if (height() <= PLUGIN_BACKGROUND_MIN_SIZE && DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType)
|
||||
iconName.append(PLUGIN_MIN_ICON_NAME);
|
||||
|
||||
m_icon = QIcon::fromTheme(iconName).pixmap(iconSize * ratio, iconSize * ratio);
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include "networkplugin.h"
|
||||
#include "../util/imageutil.h"
|
||||
#include "../widgets/tipswidget.h"
|
||||
#include <DGuiApplicationHelper>
|
||||
|
||||
#include <QPainter>
|
||||
#include <QMouseEvent>
|
||||
@ -30,6 +31,7 @@
|
||||
#include <QIcon>
|
||||
|
||||
using namespace dde::network;
|
||||
DGUI_USE_NAMESPACE
|
||||
|
||||
WirelessItem::WirelessItem(WirelessDevice *device)
|
||||
: DeviceItem(device),
|
||||
@ -54,6 +56,9 @@ WirelessItem::WirelessItem(WirelessDevice *device)
|
||||
connect(m_device, static_cast<void (NetworkDevice::*)(const QString &statStr) const>(&NetworkDevice::statusChanged), this, &WirelessItem::deviceStateChanged);
|
||||
connect(static_cast<WirelessDevice *>(m_device.data()), &WirelessDevice::activeApInfoChanged, m_refreshTimer, static_cast<void (QTimer::*)()>(&QTimer::start));
|
||||
connect(static_cast<WirelessDevice *>(m_device.data()), &WirelessDevice::activeWirelessConnectionInfoChanged, m_refreshTimer, static_cast<void (QTimer::*)()>(&QTimer::start));
|
||||
connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [ = ] {
|
||||
update();
|
||||
});
|
||||
|
||||
//QMetaObject::invokeMethod(this, "init", Qt::QueuedConnection);
|
||||
QTimer::singleShot(0, this, &WirelessItem::refreshTips);
|
||||
@ -208,7 +213,7 @@ const QPixmap WirelessItem::iconPix(const Dock::DisplayMode displayMode, const i
|
||||
key = "network-wireless-warning-symbolic";
|
||||
}
|
||||
|
||||
if (height() <= PLUGIN_BACKGROUND_MIN_SIZE)
|
||||
if (height() <= PLUGIN_BACKGROUND_MIN_SIZE && DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType)
|
||||
key.append(PLUGIN_MIN_ICON_NAME);
|
||||
|
||||
return cachedPix(key, size);
|
||||
|
@ -39,6 +39,10 @@ OnboardItem::OnboardItem(QWidget *parent)
|
||||
{
|
||||
setMouseTracking(true);
|
||||
setMinimumSize(PLUGIN_BACKGROUND_MIN_SIZE, PLUGIN_BACKGROUND_MIN_SIZE);
|
||||
|
||||
connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [ = ] {
|
||||
update();
|
||||
});
|
||||
}
|
||||
|
||||
QSize OnboardItem::sizeHint() const
|
||||
@ -53,11 +57,6 @@ void OnboardItem::paintEvent(QPaintEvent *e)
|
||||
QPixmap pixmap;
|
||||
QString iconName = "deepin-virtualkeyboard";
|
||||
int iconSize = PLUGIN_ICON_MAX_SIZE;
|
||||
const Dock::DisplayMode displayMode = qApp->property(PROP_DISPLAY_MODE).value<Dock::DisplayMode>();
|
||||
|
||||
if (displayMode == Dock::Efficient) {
|
||||
iconName = iconName + "-symbolic";
|
||||
}
|
||||
|
||||
QPainter painter(this);
|
||||
if (std::min(width(), height()) > PLUGIN_BACKGROUND_MIN_SIZE) {
|
||||
@ -100,7 +99,7 @@ void OnboardItem::paintEvent(QPaintEvent *e)
|
||||
|
||||
path.addRoundedRect(rc, radius, radius);
|
||||
painter.fillPath(path, color);
|
||||
} else {
|
||||
} else if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType) {
|
||||
iconName.append(PLUGIN_MIN_ICON_NAME);
|
||||
}
|
||||
|
||||
|
@ -39,6 +39,10 @@ PluginWidget::PluginWidget(QWidget *parent)
|
||||
{
|
||||
setMouseTracking(true);
|
||||
setMinimumSize(PLUGIN_BACKGROUND_MIN_SIZE, PLUGIN_BACKGROUND_MIN_SIZE);
|
||||
|
||||
connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [ = ] {
|
||||
update();
|
||||
});
|
||||
}
|
||||
|
||||
QSize PluginWidget::sizeHint() const
|
||||
@ -96,7 +100,7 @@ void PluginWidget::paintEvent(QPaintEvent *e)
|
||||
|
||||
path.addRoundedRect(rc, radius, radius);
|
||||
painter.fillPath(path, color);
|
||||
} else {
|
||||
} else if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType) {
|
||||
// 最小尺寸时,不画背景,采用深色图标
|
||||
iconName.append(PLUGIN_MIN_ICON_NAME);
|
||||
}
|
||||
|
@ -29,12 +29,14 @@
|
||||
#include <DApplication>
|
||||
#include <DDBusSender>
|
||||
#include "../widgets/tipswidget.h"
|
||||
#include <DGuiApplicationHelper>
|
||||
|
||||
// menu actions
|
||||
#define MUTE "mute"
|
||||
#define SETTINGS "settings"
|
||||
|
||||
DWIDGET_USE_NAMESPACE
|
||||
DGUI_USE_NAMESPACE
|
||||
|
||||
SoundItem::SoundItem(QWidget *parent)
|
||||
: QWidget(parent),
|
||||
@ -50,6 +52,10 @@ SoundItem::SoundItem(QWidget *parent)
|
||||
|
||||
connect(m_applet, static_cast<void (SoundApplet::*)(DBusSink*) const>(&SoundApplet::defaultSinkChanged), this, &SoundItem::sinkChanged);
|
||||
connect(m_applet, &SoundApplet::volumeChanged, this, &SoundItem::refreshTips, Qt::QueuedConnection);
|
||||
|
||||
connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [ = ] {
|
||||
refreshIcon();
|
||||
});
|
||||
}
|
||||
|
||||
QWidget *SoundItem::tipsWidget()
|
||||
@ -180,7 +186,7 @@ void SoundItem::refreshIcon()
|
||||
|
||||
const auto ratio = devicePixelRatioF();
|
||||
int iconSize = PLUGIN_ICON_MAX_SIZE;
|
||||
if (height() <= PLUGIN_BACKGROUND_MIN_SIZE)
|
||||
if (height() <= PLUGIN_BACKGROUND_MIN_SIZE && DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType)
|
||||
iconString.append(PLUGIN_MIN_ICON_NAME);
|
||||
|
||||
const QIcon icon = QIcon::fromTheme(iconString);
|
||||
|
@ -48,6 +48,10 @@ FashionTrayControlWidget::FashionTrayControlWidget(Dock::Position position, QWid
|
||||
|
||||
setMinimumSize(PLUGIN_BACKGROUND_MIN_SIZE, PLUGIN_BACKGROUND_MIN_SIZE);
|
||||
setMaximumSize(PLUGIN_BACKGROUND_MAX_SIZE, PLUGIN_BACKGROUND_MAX_SIZE);
|
||||
|
||||
connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [ = ] {
|
||||
update();
|
||||
});
|
||||
}
|
||||
|
||||
void FashionTrayControlWidget::setDockPostion(Dock::Position pos)
|
||||
@ -211,11 +215,11 @@ void FashionTrayControlWidget::refreshArrowPixmap()
|
||||
break;
|
||||
}
|
||||
|
||||
if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::DarkType) {
|
||||
if (height() <= PLUGIN_BACKGROUND_MIN_SIZE && DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType) {
|
||||
iconPath.append("-dark");
|
||||
}
|
||||
|
||||
const auto ratio = devicePixelRatioF();
|
||||
m_arrowPix = QIcon::fromTheme(iconPath,QIcon(QString(":/icons/resources/%1").arg(iconPath))).pixmap(QSize(PLUGIN_ICON_MAX_SIZE, PLUGIN_ICON_MAX_SIZE) * ratio);
|
||||
m_arrowPix = QIcon::fromTheme(iconPath, QIcon(QString(":/icons/resources/%1").arg(iconPath))).pixmap(QSize(PLUGIN_ICON_MAX_SIZE, PLUGIN_ICON_MAX_SIZE) * ratio);
|
||||
m_arrowPix.setDevicePixelRatio(ratio);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user