Skip to content

Commit b541937

Browse files
Tanghongyaodeepin-bot[bot]
authored andcommitted
fix: 增加UPower服务的刷新接口,解决电池状态显示延迟
增加UPower服务的刷新接口,解决电池状态显示延迟 Log: 增加UPower服务的刷新接口,解决电池状态显示延迟 Bug: https://pms.uniontech.com/bug-view-254185.html
1 parent 568fa63 commit b541937

2 files changed

Lines changed: 33 additions & 0 deletions

File tree

deepin-devicemanager/src/Page/MainWindow.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,9 @@ MainWindow::~MainWindow()
162162

163163
void MainWindow::refresh()
164164
{
165+
//电池状态刷新
166+
refreshBatteryStatus();
167+
165168
// 正在刷新,避免重复操作
166169
if (m_refreshing || startScanningFlag || mp_DriverManager->isScanning() || mp_WorkingThread->isRunning())
167170
return;
@@ -182,6 +185,28 @@ void MainWindow::refresh()
182185
refreshDataBase();
183186
}
184187

188+
void MainWindow::refreshBatteryStatus()
189+
{
190+
QDBusConnection bus = QDBusConnection::systemBus();
191+
192+
//创建Dbus接口
193+
QDBusInterface interfaceService("org.freedesktop.UPower", "/org/freedesktop/UPower", "org.freedesktop.UPower", bus);
194+
if(interfaceService.isValid()) {
195+
QDBusReply<QString> interfacePath = interfaceService.call("EnumerateDevices");
196+
if(interfacePath.value().contains("/org/freedesktop/UPower/devices/battery_BAT1")) {
197+
QDBusInterface interfaceBattery("org.freedesktop.UPower", "/org/freedesktop/UPower/devices/battery_BAT1", "org.freedesktop.UPower.Device", bus);
198+
if(interfaceBattery.isValid()) {
199+
QDBusMessage reply = interfaceBattery.call("Refresh");
200+
201+
if(reply.type() != QDBusMessage::ReplyMessage)
202+
qWarning() << "call Refresh failure:" << reply.errorMessage();
203+
}
204+
}
205+
} else {
206+
qDebug() << "interface UPower invalid";
207+
}
208+
}
209+
185210
bool MainWindow::exportTo()
186211
{
187212
QString selectFilter;

deepin-devicemanager/src/Page/MainWindow.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
#include <DMainWindow>
1313
#include <DStackedWidget>
1414
#include <DButtonBox>
15+
#include <qdbusconnection.h>
16+
#include <QDBusInterface>
17+
#include <QDBusReply>
1518

1619
#include <QObject>
1720

@@ -40,6 +43,11 @@ class MainWindow : public DMainWindow
4043
*/
4144
void refresh();
4245

46+
/**
47+
* @brief refreshBatteryStatus:刷新电池状态
48+
*/
49+
void refreshBatteryStatus();
50+
4351
/**
4452
* @brief exportTo:导出设备信息
4553
* @return true:导出成功,false:导出失败

0 commit comments

Comments
 (0)