66 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			QML
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			QML
		
	
	
	
	
	
| import QtQuick 2.0
 | |
| import QtQuick.Layouts 1.3
 | |
| import org.kde.plasma.plasmoid 2.0
 | |
| import org.kde.plasma.core 2.0 as PlasmaCore
 | |
| 
 | |
| Item {
 | |
|   id: main
 | |
| 
 | |
|   property int batteryPercent: -2
 | |
| 
 | |
|   PlasmaCore.DataSource {
 | |
|     id: hsSource
 | |
|     engine: "executable"
 | |
|     connectedSources: ["headsetcontrol -bc"]
 | |
|     interval: 2000
 | |
|     onNewData: {
 | |
|       if(data['exit_code'] > 0)
 | |
|         return console.log('error lol');
 | |
|       batteryPercent = data['stdout'];
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   Plasmoid.preferredRepresentation: Plasmoid.compactRepresentation
 | |
| 
 | |
|   Plasmoid.compactRepresentation: Item {
 | |
|     Layout.minimumWidth: units.iconSizes.medium
 | |
| 
 | |
|     Image {
 | |
|       anchors.fill: parent
 | |
|       smooth: true
 | |
|       fillMode: Image.PreserveAspectFit
 | |
|       source: batteryIcon()
 | |
|       Plasmoid.toolTipMainText: "battery status:"
 | |
|       Plasmoid.toolTipSubText: batteryStatus()
 | |
|     }
 | |
| 
 | |
|     function batteryIcon() {
 | |
|       let iconName = "battery_100"
 | |
|       if(batteryPercent == -1) // charing
 | |
|         iconName = "battery_charging"
 | |
|       else if(batteryPercent == -2) // not connected
 | |
|         iconName = "battery_nc";
 | |
|       else if(batteryPercent > 80)
 | |
|         iconName = "battery_100";
 | |
|       else if(batteryPercent > 60)
 | |
|         iconName = "battery_80";
 | |
|       else if(batteryPercent > 40)
 | |
|         iconName = "battery_60";
 | |
|       else if(batteryPercent > 20)
 | |
|         iconName = "battery_40";
 | |
|       else
 | |
|         iconName = "battery_20";
 | |
|       return "../icons/" + iconName + ".png";
 | |
|     }
 | |
| 
 | |
|     function batteryStatus() {
 | |
|       if(batteryPercent == -1)
 | |
|         return "charging";
 | |
|       else if(batteryPercent == -2)
 | |
|         return "not connected";
 | |
|       else
 | |
|         return batteryPercent + " %";
 | |
|     }
 | |
|   }
 | |
| }
 |