Add a plugin for reporting system statistics
AbandonedPublic

Authored by blaws on Nov 24 2018, 8:15 PM.

Details

Reviewers
None
Group Reviewers
KDE Connect
Summary

This commit adds a plugin that currently reports cpu usage but it can be extended to
report more information in the future, it also added the needed code for it to be accessed
from QML.

Diff Detail

Repository
R224 KDE Connect
Branch
applauncher (branched from master)
Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 5332
Build 5350: arc lint + arc unit
blaws created this revision.Nov 24 2018, 8:15 PM
Restricted Application added a project: KDE Connect. · View Herald TranscriptNov 24 2018, 8:15 PM
Restricted Application added a subscriber: kdeconnect. · View Herald Transcript
blaws requested review of this revision.Nov 24 2018, 8:15 PM
blaws added a comment.Nov 24 2018, 8:18 PM

To test you can apply

diff --git a/plasmoid/package/contents/ui/DeviceDelegate.qml b/plasmoid/package/contents/ui/DeviceDelegate.qml
index 8640f651..9170aa1c 100644
--- a/plasmoid/package/contents/ui/DeviceDelegate.qml
+++ b/plasmoid/package/contents/ui/DeviceDelegate.qml
@@ -48,9 +48,9 @@ PlasmaComponents.ListItem
             }
 
             PlasmaComponents.Label {
+        id: batts
                 horizontalAlignment: Text.AlignHCenter
                 elide: Text.ElideRight
-                text: (battery.available && battery.charge > -1) ? i18n("%1 (%2)", deviceName, battery.displayString) : deviceName
                 Layout.fillWidth: true
                 textFormat: Text.PlainText
             }
@@ -77,21 +77,21 @@ PlasmaComponents.ListItem
             //Find my phone
             PlasmaComponents.Button
             {
-                FindMyPhone {
-                    id: findmyphone
+                SystemStats {
+                    id: systemstats
                     device: root.device
                 }
 
                 id: ring
                 iconSource: "irc-voice"
-                visible: findmyphone.available
+                visible: systemstats.available
                 tooltip: i18n("Ring my phone")
 
-                onClicked: {
-                    findmyphone.ring()
-                }
             }
-
+              Timer {
+                 interval: 500; running: true; repeat: true
+                onTriggered: {systemstats.requestStatsUpdate(); batts.text = systemstats.systemStats.CPUUsage}
+            }
             //SFTP
             PlasmaComponents.Button
             {
@@ -245,7 +245,9 @@ PlasmaComponents.ListItem
             id: share
             device: root.device
         }
-
+           PlasmaComponents.Label {
+    id: cpuu
+        }
         PlasmaComponents.Label {
             text: i18n("Share text")
         }
diff --git a/plasmoid/package/contents/ui/FindMyPhone.qml b/plasmoid/package/contents/ui/FindMyPhone.qml
deleted file mode 100644
index 846c1530..00000000
--- a/plasmoid/package/contents/ui/FindMyPhone.qml
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * Copyright 2014 Samoilenko Yuri <kinnalru@gmail.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License or (at your option) version 3 or any later version
- * accepted by the membership of KDE e.V. (or its successor approved
- * by the membership of KDE e.V.), which shall act as a proxy
- * defined in Section 14 of version 3 of the license.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-import QtQuick 2.1
-import org.kde.plasma.core 2.0 as PlasmaCore
-import org.kde.plasma.components 2.0 as PlasmaComponents
-import org.kde.kdeconnect 1.0
-
-QtObject {
-
-    id: root
-
-    property alias device: checker.device
-    readonly property alias available: checker.available
-
-    readonly property PluginChecker pluginChecker: PluginChecker {
-        id: checker
-        pluginName: "findmyphone"
-    }
-
-    property variant findMyPhone: null
-
-    function ring() {
-        if (findMyPhone) {
-            findMyPhone.ring();
-        }
-    }
-
-    onAvailableChanged: {
-        if (available) {
-            findMyPhone = FindMyPhoneDbusInterfaceFactory.create(device.id())
-        } else {
-            findMyPhone = null
-        }
-    }
-}

and create a file called SystemStats.qml in the ui directory of plasmoid containing

/**
 * Copyright 2014 Samoilenko Yuri <kinnalru@gmail.com>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License or (at your option) version 3 or any later version
 * accepted by the membership of KDE e.V. (or its successor approved
 * by the membership of KDE e.V.), which shall act as a proxy
 * defined in Section 14 of version 3 of the license.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

import QtQuick 2.1
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 2.0 as PlasmaComponents
import org.kde.kdeconnect 1.0

QtObject {

    id: root

    property alias device: checker.device
    readonly property alias available: checker.available

    readonly property PluginChecker pluginChecker: PluginChecker {
        id: checker
        pluginName: "systemstats"
    }

    property variant systemStats: null
    property int cpuusage: systemStats.CPUUsage

    function requestStatsUpdate() {
        if (systemStats) {
            systemStats.requestStatsUpdate();
        }
    }

    onAvailableChanged: {
        if (available) {
            systemStats = SystemStatsDbusInterfaceFactory.create(device.id())
        } else {
            systemStats = null
        }
    }
}

the usage will show in the headerbar

blaws abandoned this revision.Dec 4 2018, 4:54 PM