2014-02-05 20:37:55 +00:00
|
|
|
/**
|
2020-08-17 10:48:10 +01:00
|
|
|
* SPDX-FileCopyrightText: 2014 Samoilenko Yuri <kinnalru@gmail.com>
|
2024-06-30 23:03:57 +01:00
|
|
|
* SPDX-FileCopyrightText: 2024 ivan tkachenko <me@ratijas.tk>
|
2014-02-05 20:37:55 +00:00
|
|
|
*
|
2020-08-17 10:48:10 +01:00
|
|
|
* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
2014-02-05 20:37:55 +00:00
|
|
|
*/
|
|
|
|
|
2024-06-30 23:03:57 +01:00
|
|
|
pragma ComponentBehavior: Bound
|
|
|
|
|
2023-11-30 23:41:36 +00:00
|
|
|
import QtQuick
|
2014-02-05 20:37:55 +00:00
|
|
|
|
2024-06-30 23:03:57 +01:00
|
|
|
import org.kde.kdeconnect as KDEConnect
|
2020-08-22 21:37:18 +01:00
|
|
|
|
2024-06-30 23:03:57 +01:00
|
|
|
QtObject {
|
2014-02-05 20:37:55 +00:00
|
|
|
id: root
|
2020-08-22 21:37:18 +01:00
|
|
|
|
2024-06-30 23:03:57 +01:00
|
|
|
required property KDEConnect.DeviceDbusInterface device
|
|
|
|
|
2016-04-06 01:55:50 +01:00
|
|
|
readonly property alias available: checker.available
|
|
|
|
|
2024-06-30 23:03:57 +01:00
|
|
|
readonly property KDEConnect.PluginChecker pluginChecker: KDEConnect.PluginChecker {
|
2016-04-06 01:55:50 +01:00
|
|
|
id: checker
|
|
|
|
pluginName: "battery"
|
2024-06-30 23:03:57 +01:00
|
|
|
device: root.device
|
2016-04-06 01:55:50 +01:00
|
|
|
}
|
2014-02-19 15:28:17 +00:00
|
|
|
|
2024-06-30 23:03:57 +01:00
|
|
|
readonly property bool charging: battery?.isCharging ?? false
|
|
|
|
readonly property int charge: battery?.charge ?? -1
|
|
|
|
|
|
|
|
readonly property string displayString: {
|
|
|
|
if (available && charge > -1) {
|
|
|
|
if (charging) {
|
|
|
|
return i18n("%1% charging", charge);
|
|
|
|
} else {
|
|
|
|
return i18n("%1%", charge);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
return i18n("No info");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
property KDEConnect.BatteryDbusInterface battery
|
2014-02-05 20:37:55 +00:00
|
|
|
|
2021-07-14 04:30:25 +01:00
|
|
|
/**
|
|
|
|
* Suggests an icon name to use for the current battery level
|
|
|
|
*/
|
|
|
|
readonly property string iconName: {
|
2024-06-30 23:03:57 +01:00
|
|
|
if (charge < 0) {
|
|
|
|
return "battery-missing-symbolic";
|
|
|
|
} else if (charge < 10) {
|
|
|
|
return charging
|
|
|
|
? "battery-empty-charging-symbolic"
|
|
|
|
: "battery-empty-symbolic";
|
|
|
|
} else if (charge < 25) {
|
|
|
|
return charging
|
|
|
|
? "battery-caution-charging-symbolic"
|
|
|
|
: "battery-caution-symbolic";
|
|
|
|
} else if (charge < 50) {
|
|
|
|
return charging
|
|
|
|
? "battery-low-charging-symbolic"
|
|
|
|
: "battery-low-symbolic";
|
|
|
|
} else if (charge < 75) {
|
|
|
|
return charging
|
|
|
|
? "battery-good-charging-symbolic"
|
|
|
|
: "battery-good-symbolic";
|
|
|
|
} else {
|
|
|
|
return charging
|
|
|
|
? "battery-full-charging-symbolic"
|
|
|
|
: "battery-full-symbolic";
|
|
|
|
}
|
2021-07-14 04:30:25 +01:00
|
|
|
}
|
|
|
|
|
2014-02-05 20:37:55 +00:00
|
|
|
onAvailableChanged: {
|
|
|
|
if (available) {
|
2024-06-30 23:03:57 +01:00
|
|
|
battery = KDEConnect.DeviceBatteryDbusInterfaceFactory.create(device.id());
|
2014-06-07 17:27:08 +01:00
|
|
|
} else {
|
2024-06-30 23:03:57 +01:00
|
|
|
battery = null;
|
2014-02-05 20:37:55 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|