diff --git a/package/contents/config/config.qml b/package/contents/config/config.qml index 726d03c..c012402 100644 --- a/package/contents/config/config.qml +++ b/package/contents/config/config.qml @@ -1,5 +1,5 @@ -import QtQuick 2.0 -import org.kde.plasma.configuration 2.0 +import QtQuick +import org.kde.plasma.configuration ConfigModel { ConfigCategory { @@ -7,9 +7,4 @@ ConfigModel { icon: "configure" source: "config/general.qml" } - ConfigCategory { - name: i18n("Debug") - icon: "cab_view" - source: "config/debug.qml" - } } diff --git a/package/contents/config/main.xml b/package/contents/config/main.xml index 453d1de..66e88f5 100644 --- a/package/contents/config/main.xml +++ b/package/contents/config/main.xml @@ -29,7 +29,7 @@ true - + false diff --git a/package/contents/ui/CompactRepresentation.qml b/package/contents/ui/CompactRepresentation.qml index 97958dd..d73f8bc 100644 --- a/package/contents/ui/CompactRepresentation.qml +++ b/package/contents/ui/CompactRepresentation.qml @@ -1,8 +1,8 @@ -import QtQuick 2.15 -import QtQuick.Layouts 1.3 -import org.kde.plasma.plasmoid 2.0 -import org.kde.plasma.core 2.0 as PlasmaCore -import org.kde.kirigami 2.14 as Kirigami +import QtQuick +import QtQuick.Layouts +import org.kde.plasma.plasmoid +import org.kde.plasma.core as PlasmaCore +import org.kde.kirigami as Kirigami import "./lib/helper.js" as Helper @@ -16,8 +16,6 @@ Item { color: "transparent" border.color: PlasmaCore.Theme.textColor radius: 4 - Plasmoid.toolTipMainText: "battery level: " + Helper.batteryLevel(batteryPercent) - Plasmoid.toolTipSubText: "polling rate: " + pollingrate + " seconds" Item { anchors.fill: parent diff --git a/package/contents/ui/FullRepresentation.qml b/package/contents/ui/FullRepresentation.qml index eff2ae3..c9f1ce8 100644 --- a/package/contents/ui/FullRepresentation.qml +++ b/package/contents/ui/FullRepresentation.qml @@ -1,8 +1,8 @@ -import QtQuick 2.15 -import QtQuick.Layouts 1.3 -import org.kde.plasma.plasmoid 2.0 -import org.kde.plasma.core 2.0 as PlasmaCore -import org.kde.kirigami 2.14 as Kirigami +import QtQuick +import QtQuick.Layouts +import org.kde.plasma.plasmoid +import org.kde.plasma.core as PlasmaCore +import org.kde.kirigami as Kirigami import "./lib/helper.js" as Helper diff --git a/package/contents/ui/config/blah.qml b/package/contents/ui/config/blah.qml new file mode 100644 index 0000000..5cf202e --- /dev/null +++ b/package/contents/ui/config/blah.qml @@ -0,0 +1,212 @@ +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import org.kde.plasma.core as PlasmaCore +import org.kde.plasma.components as PlasmaComponents +import org.kde.kirigami as Kirigami +import org.kde.kquickcontrols as KQControls +import org.kde.kcmutils as KCM + +import "../lib/helper.js" as Helper + +KCM.SimpleKCM { + id: root + + /*property alias cfg_pollingrate: pollingrate.value + property alias cfg_batteryheight: batteryheight.value + property alias cfg_colorEmpty: colorEmpty.color + property alias cfg_colorHalf: colorHalf.color + property alias cfg_colorFull: colorFull.color + + property alias cfg_notifications: notifications.checked + property alias cfg_batteryThreshold: batteryThreshold.value*/ + + Kirigami.FormLayout { + Slider { + from: 2 + to: 60 + stepSize: 2 + KCM.SettingStateBinding { + configObject: KCM.plasmaSettings + settingName: "pollingrate" + } + } + } + + /*Kirigami.FormLayout { + anchors.fill: parent + wideMode: false + + GridLayout { + columns: 3 + rows: 2 + rowSpacing: 10 + + // first row + Text { + text: "polling rate:" + color: PlasmaCore.Theme.textColor + } + Slider { + id: pollingrate + value: 10 + from: 2 + to: 60 + stepSize: 2 + } + Text { + text: cfg_pollingrate + " seconds" + color: PlasmaCore.Theme.textColor + } + + // second row + Text { + text: "battery height:" + color: PlasmaCore.Theme.textColor + } + Slider { + id: batteryheight + value: 8.0 + from: 1 + to: 10 + stepSize: 1 + } + Text { + text: cfg_batteryheight + color: PlasmaCore.Theme.textColor + } + } + + // color config + GridLayout { + columns: 3 + rows: 3 + rowSpacing: 1 + + // first row + Text { + text: "empty:" + color: PlasmaCore.Theme.textColor + } + KQControls.ColorButton { + id: colorEmpty + color: cfg_colorEmpty + } + Text { + text: cfg_colorEmpty + color: PlasmaCore.Theme.textColor + } + + // secod row + Text { + text: "half:" + color: PlasmaCore.Theme.textColor + } + KQControls.ColorButton { + id: colorHalf + color: cfg_colorHalf + } + Text { + text: cfg_colorHalf + color: PlasmaCore.Theme.textColor + } + + // third row + Text { + text: "full:" + color: PlasmaCore.Theme.textColor + } + KQControls.ColorButton { + id: colorFull + color: cfg_colorFull + } + Text { + text: cfg_colorFull + color: PlasmaCore.Theme.textColor + } + } + + // color gradient example + GridLayout { + columns: 10 + rows: 1 + rowSpacing: 0 + + Text { + text: "█" + color: Helper.interpolateColor(.1, [ cfg_colorEmpty.toString(), cfg_colorHalf.toString(), cfg_colorFull.toString() ]) + } + Text { + text: "█" + color: Helper.interpolateColor(.2, [ cfg_colorEmpty.toString(), cfg_colorHalf.toString(), cfg_colorFull.toString() ]) + } + Text { + text: "█" + color: Helper.interpolateColor(.3, [ cfg_colorEmpty.toString(), cfg_colorHalf.toString(), cfg_colorFull.toString() ]) + } + Text { + text: "█" + color: Helper.interpolateColor(.4, [ cfg_colorEmpty.toString(), cfg_colorHalf.toString(), cfg_colorFull.toString() ]) + } + Text { + text: "█" + color: Helper.interpolateColor(.5, [ cfg_colorEmpty.toString(), cfg_colorHalf.toString(), cfg_colorFull.toString() ]) + } + Text { + text: "█" + color: Helper.interpolateColor(.6, [ cfg_colorEmpty.toString(), cfg_colorHalf.toString(), cfg_colorFull.toString() ]) + } + Text { + text: "█" + color: Helper.interpolateColor(.7, [ cfg_colorEmpty.toString(), cfg_colorHalf.toString(), cfg_colorFull.toString() ]) + } + Text { + text: "█" + color: Helper.interpolateColor(.8, [ cfg_colorEmpty.toString(), cfg_colorHalf.toString(), cfg_colorFull.toString() ]) + } + Text { + text: "█" + color: Helper.interpolateColor(.9, [ cfg_colorEmpty.toString(), cfg_colorHalf.toString(), cfg_colorFull.toString() ]) + } + Text { + text: "█" + color: Helper.interpolateColor( 1, [ cfg_colorEmpty.toString(), cfg_colorHalf.toString(), cfg_colorFull.toString() ]) + } + } + + GridLayout { + columns: 3 + rows: 2 + rowSpacing: 10 + + // first row + Text { + text: "notifications:" + color: PlasmaCore.Theme.textColor + } + PlasmaComponents.CheckBox { + id: notifications + } + Text { + text: "" + } + + // second row + Text { + text: "battery threshold:" + color: PlasmaCore.Theme.textColor + } + Slider { + id: batteryThreshold + value: 10 + from: 1 + to: 50 + stepSize: 1 + } + Text { + text: cfg_batteryThreshold + color: PlasmaCore.Theme.textColor + } + } + }*/ +} diff --git a/package/contents/ui/config/debug.qml b/package/contents/ui/config/debug.qml index 0ac6430..aa9fcfd 100644 --- a/package/contents/ui/config/debug.qml +++ b/package/contents/ui/config/debug.qml @@ -1,14 +1,15 @@ import QtQuick 2.0 -import QtQuick.Layouts 1.3 -import org.kde.plasma.core 2.0 as PlasmaCore -import org.kde.plasma.components 2.0 as PlasmaComponents -import QtQuick.Controls 2.5 as QQC2 -import org.kde.kirigami 2.4 as Kirigami -import org.kde.kquickcontrols 2.0 as KQControls +import QtQuick.Controls 2.5 +import QtQuick.Layouts 1.15 +import org.kde.plasma.core as PlasmaCore +import org.kde.plasma.components as PlasmaComponents +import org.kde.kirigami as Kirigami +import org.kde.kquickcontrols as KQControls +import org.kde.kcmutils as KCM import "../lib/helper.js" as Helper -QQC2.Pane { +KCM.SimpleKCM { id: root property alias cfg_debug_active: debug_active.checked @@ -40,11 +41,11 @@ QQC2.Pane { text: "battery charge:" color: PlasmaCore.Theme.textColor } - PlasmaComponents.Slider { + Slider { id: debug_charge value: 0 - minimumValue: -2 - maximumValue: 100 + from: -2 + to: 100 stepSize: 1 } Text { diff --git a/package/contents/ui/config/general.qml b/package/contents/ui/config/general.qml index 29e7718..21d9dc9 100644 --- a/package/contents/ui/config/general.qml +++ b/package/contents/ui/config/general.qml @@ -1,199 +1,27 @@ -import QtQuick 2.0 -import QtQuick.Layouts 1.3 -import org.kde.plasma.core 2.0 as PlasmaCore -import org.kde.plasma.components 2.0 as PlasmaComponents -import QtQuick.Controls 2.5 as QQC2 -import org.kde.kirigami 2.4 as Kirigami -import org.kde.kquickcontrols 2.0 as KQControls +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import org.kde.plasma.core as PlasmaCore +import org.kde.kirigami as Kirigami +import org.kde.kquickcontrols as KQControls +import org.kde.kcmutils as KCM +import org.kde.plasma.components as PlasmaComponents3 import "../lib/helper.js" as Helper -QQC2.Pane { +KCM.SimpleKCM { id: root property alias cfg_pollingrate: pollingrate.value - property alias cfg_batteryheight: batteryheight.value - property alias cfg_colorEmpty: colorEmpty.color - property alias cfg_colorHalf: colorHalf.color - property alias cfg_colorFull: colorFull.color - - property alias cfg_notifications: notifications.checked - property alias cfg_batteryThreshold: batteryThreshold.value + property alias cfg_pollingrateDefault: pollingrate.value Kirigami.FormLayout { - anchors.fill: parent - wideMode: false - - GridLayout { - columns: 3 - rows: 2 - rowSpacing: 10 - - // first row - Text { - text: "polling rate:" - color: PlasmaCore.Theme.textColor - } - PlasmaComponents.Slider { - id: pollingrate - value: 10 - minimumValue: 2 - maximumValue: 60 - stepSize: 2 - } - Text { - text: cfg_pollingrate + " seconds" - color: PlasmaCore.Theme.textColor - } - - // second row - Text { - text: "battery height:" - color: PlasmaCore.Theme.textColor - } - PlasmaComponents.Slider { - id: batteryheight - value: 8.0 - minimumValue: 1 - maximumValue: 10 - stepSize: 1 - } - Text { - text: cfg_batteryheight - color: PlasmaCore.Theme.textColor - } - } - - // color config - GridLayout { - columns: 3 - rows: 3 - rowSpacing: 1 - - // first row - Text { - text: "empty:" - color: PlasmaCore.Theme.textColor - } - KQControls.ColorButton { - id: colorEmpty - color: cfg_colorEmpty - } - Text { - text: cfg_colorEmpty - color: PlasmaCore.Theme.textColor - } - - // secod row - Text { - text: "half:" - color: PlasmaCore.Theme.textColor - } - KQControls.ColorButton { - id: colorHalf - color: cfg_colorHalf - } - Text { - text: cfg_colorHalf - color: PlasmaCore.Theme.textColor - } - - // third row - Text { - text: "full:" - color: PlasmaCore.Theme.textColor - } - KQControls.ColorButton { - id: colorFull - color: cfg_colorFull - } - Text { - text: cfg_colorFull - color: PlasmaCore.Theme.textColor - } - } - - // color gradient example - GridLayout { - columns: 10 - rows: 1 - rowSpacing: 0 - - Text { - text: "█" - color: Helper.interpolateColor(.1, [ cfg_colorEmpty.toString(), cfg_colorHalf.toString(), cfg_colorFull.toString() ]) - } - Text { - text: "█" - color: Helper.interpolateColor(.2, [ cfg_colorEmpty.toString(), cfg_colorHalf.toString(), cfg_colorFull.toString() ]) - } - Text { - text: "█" - color: Helper.interpolateColor(.3, [ cfg_colorEmpty.toString(), cfg_colorHalf.toString(), cfg_colorFull.toString() ]) - } - Text { - text: "█" - color: Helper.interpolateColor(.4, [ cfg_colorEmpty.toString(), cfg_colorHalf.toString(), cfg_colorFull.toString() ]) - } - Text { - text: "█" - color: Helper.interpolateColor(.5, [ cfg_colorEmpty.toString(), cfg_colorHalf.toString(), cfg_colorFull.toString() ]) - } - Text { - text: "█" - color: Helper.interpolateColor(.6, [ cfg_colorEmpty.toString(), cfg_colorHalf.toString(), cfg_colorFull.toString() ]) - } - Text { - text: "█" - color: Helper.interpolateColor(.7, [ cfg_colorEmpty.toString(), cfg_colorHalf.toString(), cfg_colorFull.toString() ]) - } - Text { - text: "█" - color: Helper.interpolateColor(.8, [ cfg_colorEmpty.toString(), cfg_colorHalf.toString(), cfg_colorFull.toString() ]) - } - Text { - text: "█" - color: Helper.interpolateColor(.9, [ cfg_colorEmpty.toString(), cfg_colorHalf.toString(), cfg_colorFull.toString() ]) - } - Text { - text: "█" - color: Helper.interpolateColor( 1, [ cfg_colorEmpty.toString(), cfg_colorHalf.toString(), cfg_colorFull.toString() ]) - } - } - - GridLayout { - columns: 3 - rows: 2 - rowSpacing: 10 - - // first row - Text { - text: "notifications:" - color: PlasmaCore.Theme.textColor - } - PlasmaComponents.CheckBox { - id: notifications - } - Text { - text: "" - } - - // second row - Text { - text: "battery threshold:" - color: PlasmaCore.Theme.textColor - } - PlasmaComponents.Slider { - id: batteryThreshold - value: 10 - minimumValue: 1 - maximumValue: 50 - stepSize: 1 - } - Text { - text: cfg_batteryThreshold - color: PlasmaCore.Theme.textColor - } + Slider { + id: pollingrate + Layout.fillWidth: true + from: 2 + to: 60 + stepSize: 2 } } } diff --git a/package/contents/ui/main.qml b/package/contents/ui/main.qml index 6f726d7..94433a3 100644 --- a/package/contents/ui/main.qml +++ b/package/contents/ui/main.qml @@ -1,14 +1,14 @@ -import QtQuick 2.15 -import QtQuick.Layouts 1.3 -import org.kde.plasma.plasmoid 2.0 -import org.kde.plasma.core 2.0 as PlasmaCore -import org.kde.kirigami 2.14 as Kirigami +import QtQuick +import QtQuick.Layouts +import org.kde.plasma.plasmoid +import org.kde.kirigami as Kirigami +import org.kde.plasma.plasma5support as Plasma5Support -import org.kde.notification 1.0 +import org.kde.notification import "./lib/helper.js" as Helper -Item { +PlasmoidItem { id: main property int pollingrate: Plasmoid.configuration.pollingrate @@ -26,7 +26,7 @@ Item { property int batteryPercent: -2 property bool notification_sent: false; - PlasmaCore.DataSource { + Plasma5Support.DataSource { id: hsSource engine: "executable" connectedSources: ["headsetcontrol -bc"] @@ -56,9 +56,12 @@ Item { } } - Plasmoid.preferredRepresentation: Plasmoid.compactRepresentation - Plasmoid.fullRepresentation: FullRepresentation{} - Plasmoid.compactRepresentation: CompactRepresentation{} + toolTipMainText: "battery level: " + Helper.batteryLevel(batteryPercent) + toolTipSubText: "polling rate: " + pollingrate + " seconds" + + preferredRepresentation: compactRepresentation + fullRepresentation: FullRepresentation{} + compactRepresentation: CompactRepresentation{} Notification { id: notification diff --git a/package/metadata.json b/package/metadata.json index 2ddf4ba..347152b 100644 --- a/package/metadata.json +++ b/package/metadata.json @@ -1,24 +1,25 @@ { + "KPackageStructure": "Plasma/Applet", "KPlugin": { + "Name": "Headset Battery Widget", + "Description": "Headset Battery Widget", + "Icon": "battery", + "Category": "System Information", "Authors": [{ "Email": "flummi@srv.fail", "Name": "Flummi" }], - "Category": "System Information", - "Dependencies": [ - ], - "EnabledByDefault": true, - "Icon": "battery", "Id": "org.kde.plasma.headsetcontrol-battery-widget", - "Name": "Headset Battery Widget", + "License": "", + "Version": "1.6", + "EnabledByDefault": true, + "Website": "https://git.lat/Flummi/headsetcontrol-battery-widget", + "BugReportUrl": "https://git.lat/Flummi/headsetcontrol-battery-widget/issues", "ServiceTypes": [ "Plasma/Applet" - ], - "Version": "1.5", - "Website": "https://git.lat/Flummi/headsetcontrol-battery-widget" + ] }, "X-Plasma-NotificationArea": true, "X-Plasma-NotificationAreaCategory": "Hardware", - "X-Plasma-API": "declarativeappletscript", - "X-Plasma-MainScript": "ui/main.qml" + "X-Plasma-API-Minimum-Version": "6.0" }