Warning, /system/kup/plasmoid/contents/ui/main.qml is written in an unsupported language. File is not indexed.

0001 // SPDX-FileCopyrightText: 2020 Simon Persson <simon.persson@mykolab.com>
0002 //
0003 // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0004 
0005 import QtQuick 2.0
0006 import org.kde.plasma.plasmoid 2.0
0007 import org.kde.plasma.core 2.0 as PlasmaCore
0008 import org.kde.plasma.plasma5support as Plasma5Support
0009 import org.kde.kquickcontrolsaddons 2.0 as KQCAddons
0010 import org.kde.kirigami 2.15 as Kirigami
0011 
0012 PlasmoidItem {
0013         readonly property bool inPanel: (Plasmoid.location === PlasmaCore.Types.TopEdge
0014                 || Plasmoid.location === PlasmaCore.Types.RightEdge
0015                 || Plasmoid.location === PlasmaCore.Types.BottomEdge
0016                 || Plasmoid.location === PlasmaCore.Types.LeftEdge)
0017 
0018         function symbolicizeIconName(iconName) {
0019                 const symbolicSuffix = "-symbolic";
0020                 if (iconName.endsWith(symbolicSuffix)) {
0021                         return iconName;
0022                 }
0023                 return iconName + symbolicSuffix;
0024         }
0025 
0026         switchWidth: Kirigami.Units.gridUnit * 10
0027         switchHeight: Kirigami.Units.gridUnit * 10
0028         toolTipMainText: getCommonStatus("tooltip title", "Error")
0029         toolTipSubText: getCommonStatus("tooltip subtitle", "No connection")
0030 
0031         Plasmoid.icon: inPanel
0032                 ? symbolicizeIconName( getCommonStatus("tooltip icon name", "kup"))
0033                 : getCommonStatus("tooltip icon name", "kup")
0034 
0035         Plasmoid.status: getCommonStatus("tray icon active", false)
0036                                                   ? PlasmaCore.Types.ActiveStatus
0037                                                   : PlasmaCore.Types.PassiveStatus
0038 
0039         Plasma5Support.DataSource {
0040                 id: backupPlans
0041                 engine: "backups"
0042                 connectedSources: sources
0043 
0044                 onSourceAdded: {
0045                         disconnectSource(source);
0046                         connectSource(source);
0047                 }
0048                 onSourceRemoved: {
0049                         disconnectSource(source);
0050                 }
0051         }
0052 
0053 
0054         function getCommonStatus(key, def){
0055                 var result = backupPlans.data["common"][key];
0056                 if(result === undefined) {
0057                         result = def;
0058                 }
0059                 return result;
0060         }
0061 
0062         function action_configure() {
0063                 KQCAddons.KCMShell.openSystemSettings("kcm_kup");
0064         }
0065 
0066         function action_reloadKup() {
0067                 var service = backupPlans.serviceForSource("daemon");
0068                 var operation = service.operationDescription("reload");
0069                 service.startOperationCall(operation);
0070         }
0071 
0072         property int planCount: backupPlans.data["common"]["plan count"]
0073 
0074         fullRepresentation: FullRepresentation {}
0075 
0076         Component.onCompleted: {
0077                 plasmoid.removeAction("configure");
0078                 plasmoid.setAction("configure", i18nd("kup", "&Configure Kup..."), "configure");
0079 
0080                 plasmoid.setAction("reloadKup", i18nd("kup", "&Reload backup plans"), "view-refresh");
0081         }
0082 }