57 lines
1.6 KiB
Diff
57 lines
1.6 KiB
Diff
|
|
From 25384cbcc740634b4c3ee80026728a11603111cf Mon Sep 17 00:00:00 2001
|
|||
|
|
From: meizhigang <meizhigang@kylinsec.com.cn>
|
|||
|
|
Date: Mon, 8 Apr 2024 16:13:17 +0800
|
|||
|
|
Subject: [PATCH 3/3] fix(power):Fix has really battery while it is present
|
|||
|
|
MIME-Version: 1.0
|
|||
|
|
Content-Type: text/plain; charset=UTF-8
|
|||
|
|
Content-Transfer-Encoding: 8bit
|
|||
|
|
|
|||
|
|
- 适配真实电池存在场景
|
|||
|
|
|
|||
|
|
Related #31917
|
|||
|
|
---
|
|||
|
|
plugins/power/upower-interface.cpp | 11 ++++++++---
|
|||
|
|
1 file changed, 8 insertions(+), 3 deletions(-)
|
|||
|
|
|
|||
|
|
diff --git a/plugins/power/upower-interface.cpp b/plugins/power/upower-interface.cpp
|
|||
|
|
index 4c964a6..4c04130 100644
|
|||
|
|
--- a/plugins/power/upower-interface.cpp
|
|||
|
|
+++ b/plugins/power/upower-interface.cpp
|
|||
|
|
@@ -14,8 +14,8 @@
|
|||
|
|
|
|||
|
|
#include "upower-interface.h"
|
|||
|
|
#include <upower.h>
|
|||
|
|
-#include <cstdio>
|
|||
|
|
#include <QtGlobal>
|
|||
|
|
+#include <cstdio>
|
|||
|
|
|
|||
|
|
// 由于Glib定义与Qt内部相关定义冲突,将该函数单独封装起来
|
|||
|
|
bool UPowerInterface::haveBattery()
|
|||
|
|
@@ -43,16 +43,21 @@ bool UPowerInterface::haveBattery()
|
|||
|
|
#endif
|
|||
|
|
void *device = nullptr;
|
|||
|
|
UpDeviceKind kind;
|
|||
|
|
+ gboolean is_present = FALSE;
|
|||
|
|
for (unsigned int i = 0; i < devices->len; i++)
|
|||
|
|
{
|
|||
|
|
device = g_ptr_array_index(devices, i);
|
|||
|
|
g_object_get(device,
|
|||
|
|
"kind", &kind,
|
|||
|
|
NULL);
|
|||
|
|
- if (kind == UP_DEVICE_KIND_BATTERY)
|
|||
|
|
+
|
|||
|
|
+ g_object_get(device,
|
|||
|
|
+ "is-present", &is_present,
|
|||
|
|
+ NULL);
|
|||
|
|
+ if (kind == UP_DEVICE_KIND_BATTERY && is_present)
|
|||
|
|
hasBattery = true;
|
|||
|
|
}
|
|||
|
|
- g_ptr_array_unref (devices);
|
|||
|
|
+ g_ptr_array_unref(devices);
|
|||
|
|
g_object_unref(upClient);
|
|||
|
|
return hasBattery;
|
|||
|
|
}
|
|||
|
|
--
|
|||
|
|
2.27.0
|
|||
|
|
|