File: StatisticsPage.qml

package info (click to toggle)
syncthingtray 2.0.9-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 13,124 kB
  • sloc: cpp: 34,081; xml: 1,705; java: 1,258; sh: 97; javascript: 54; makefile: 25
file content (58 lines) | stat: -rw-r--r-- 2,482 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import QtQuick
import QtQuick.Controls.Material

import Main

ObjectConfigPage {
    id: page
    title: qsTr("Statistics")
    isLoading: true
    Component.onCompleted: page.loadStatistics()
    actions: [
        Action {
            text: qsTr("Refresh")
            icon.source: App.faUrlBase + "refresh"
            onTriggered: page.loadStatistics()
        }
    ]
    readOnly: true
    specialEntries: [
        {key: "platform", label: qsTr("Platform")},
        {key: "longVersion", label: qsTr("Syncthing version")},
        {key: "uptime", label: qsTr("Uptime")},
        {key: "memoryUsage", label: qsTr("Memory usage (only Go runtime)")},
        {key: "processRSS", label: qsTr("Resident set size (only Go runtime)")},
        {key: "natType", label: qsTr("NAT type")},
        {key: "stConfigDir", label: qsTr("Syncthing config directory")},
        {key: "stDataDir", label: qsTr("Syncthing data directory")},
        {key: "stLevelDbSize", label: qsTr("Syncthing database size (LevelDB)"), optional: true},
        {key: "stLevelDbMigratedSize", label: qsTr("Syncthing database size (LevelDB, migrated)"), optional: true},
        {key: "stSQLiteDbSize", label: qsTr("Syncthing database size (SQLite)"), optional: true},
        {key: "extFilesDir", label: qsTr("External files directory"), optional: true},
        {key: "extStoragePaths", label: qsTr("External storage paths"), optional: true},
        {key: "numCPU", label: qsTr("CPU threads of system")},
        {key: "memorySize", label: qsTr("Memory size of system")},
        {key: "numDevices", label: qsTr("Number of Syncthing devices")},
        {key: "numFolders", label: qsTr("Number of Syncthing folders")},
        {key: "totFiles", label: qsTr("Number of files managed by Syncthing")},
        {key: "totSize", label: qsTr("Size of files managed by Syncthing")},
    ]
    function loadStatistics() {
        page.isLoading = true;
        App.loadStatistics((res, error) => {
            // delete unwanted or empty statistics
            delete res.version;
            Object.entries(res).forEach((entry) => {
                const value = entry[1];
                const type = typeof value;
                if (type === "array" || (type !== "object" && value?.toString() === "")) {
                    delete res[entry[0]];
                }
            });

            page.isLoading = false;
            page.configObject = res;
            page.model.loadEntries();
        });
    }
}