mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
feat: 电池插件适配任务栏最新接口
增加icon接口,外部收到该接口后会进行展示 Log: Influence: 任务栏-快捷设置区域电池插件图标 Task: https://pms.uniontech.com/task-view-110309.html Change-Id: Ibf6f482a54266aaf48c70c0849133da7af49945c
This commit is contained in:
parent
43efa10cd9
commit
751fef14be
@ -17,7 +17,7 @@ pkg_check_modules(QGSettings REQUIRED gsettings-qt)
|
||||
|
||||
add_definitions("${QT_DEFINITIONS} -DQT_PLUGIN")
|
||||
add_library(${PLUGIN_NAME} SHARED ${SRCS} power.qrc)
|
||||
set_target_properties(${PLUGIN_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ../system-trays)
|
||||
set_target_properties(${PLUGIN_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ../quick-trays)
|
||||
target_include_directories(${PLUGIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS}
|
||||
${Qt5DBus_INCLUDE_DIRS}
|
||||
${DFrameworkDBus_INCLUDE_DIRS}
|
||||
|
@ -185,6 +185,15 @@ void PowerPlugin::pluginSettingsChanged()
|
||||
refreshPluginItemsVisible();
|
||||
}
|
||||
|
||||
const QIcon *PowerPlugin::icon()
|
||||
{
|
||||
static QIcon batteryIcon;
|
||||
const QPixmap pixmap = m_powerStatusWidget->getBatteryIcon();
|
||||
batteryIcon.detach();
|
||||
batteryIcon.addPixmap(pixmap);
|
||||
return &batteryIcon;
|
||||
}
|
||||
|
||||
void PowerPlugin::updateBatteryVisible()
|
||||
{
|
||||
const bool exist = !m_powerInter->batteryPercentage().isEmpty();
|
||||
@ -205,6 +214,11 @@ void PowerPlugin::loadPlugin()
|
||||
m_pluginLoaded = true;
|
||||
|
||||
m_powerStatusWidget.reset(new PowerStatusWidget);
|
||||
|
||||
connect(m_powerStatusWidget.get(), &PowerStatusWidget::iconChanged, this, [ this ] {
|
||||
m_proxyInter->itemUpdate(this, POWER_KEY);
|
||||
});
|
||||
|
||||
m_powerInter = new DBusPower(this);
|
||||
|
||||
m_systemPowerInter = new SystemPowerInter("com.deepin.system.Power", "/com/deepin/system/Power", QDBusConnection::systemBus(), this);
|
||||
|
@ -58,6 +58,7 @@ public:
|
||||
int itemSortKey(const QString &itemKey) override;
|
||||
void setSortKey(const QString &itemKey, const int order) override;
|
||||
void pluginSettingsChanged() override;
|
||||
const QIcon *icon() override;
|
||||
|
||||
private:
|
||||
void updateBatteryVisible();
|
||||
|
@ -38,17 +38,16 @@ PowerStatusWidget::PowerStatusWidget(QWidget *parent)
|
||||
{
|
||||
// QIcon::setThemeName("deepin");
|
||||
|
||||
connect(m_powerInter, &DBusPower::BatteryPercentageChanged, this, static_cast<void (PowerStatusWidget::*)()>(&PowerStatusWidget::update));
|
||||
connect(m_powerInter, &DBusPower::BatteryStateChanged, this, static_cast<void (PowerStatusWidget::*)()>(&PowerStatusWidget::update));
|
||||
connect(m_powerInter, &DBusPower::OnBatteryChanged, this, static_cast<void (PowerStatusWidget::*)()>(&PowerStatusWidget::update));
|
||||
connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [ = ] {
|
||||
refreshIcon();
|
||||
});
|
||||
connect(m_powerInter, &DBusPower::BatteryPercentageChanged, this, &PowerStatusWidget::refreshIcon);
|
||||
connect(m_powerInter, &DBusPower::BatteryStateChanged, this, &PowerStatusWidget::refreshIcon);
|
||||
connect(m_powerInter, &DBusPower::OnBatteryChanged, this, &PowerStatusWidget::refreshIcon);
|
||||
connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, &PowerStatusWidget::refreshIcon);
|
||||
}
|
||||
|
||||
void PowerStatusWidget::refreshIcon()
|
||||
{
|
||||
update();
|
||||
Q_EMIT iconChanged();
|
||||
}
|
||||
|
||||
void PowerStatusWidget::paintEvent(QPaintEvent *e)
|
||||
|
@ -43,18 +43,19 @@ class PowerStatusWidget : public QWidget
|
||||
|
||||
public:
|
||||
explicit PowerStatusWidget(QWidget *parent = 0);
|
||||
QPixmap getBatteryIcon();
|
||||
|
||||
public Q_SLOTS:
|
||||
void refreshIcon();
|
||||
|
||||
signals:
|
||||
void requestContextMenu(const QString &itemKey) const;
|
||||
void iconChanged();
|
||||
|
||||
protected:
|
||||
void resizeEvent(QResizeEvent *event);
|
||||
void paintEvent(QPaintEvent *e);
|
||||
|
||||
private:
|
||||
QPixmap getBatteryIcon();
|
||||
|
||||
private:
|
||||
DBusPower *m_powerInter;
|
||||
|
Loading…
x
Reference in New Issue
Block a user