/** * Copyright 2013 Albert Vaca * * 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 . */ import QtQuick 1.1 import org.kde.plasma.core 0.1 as PlasmaCore import org.kde.plasma.components 0.1 as PlasmaComponents import org.kde.kdeconnect 1.0 PlasmaComponents.ListItem { id: root property string deviceId: model.deviceId property variant sftp: SftpDbusInterfaceFactory.create(deviceId) Component.onCompleted: { var response = DBusResponseFactory.create() response.success.connect( function(result) { if (result) { state = "MOUNTED" } else { state = "UNMOUNTED" } }) response.error.connect( function(message) { console.error("Error:" + message) state = "UNMOUNTED" }) response.pendingCall = sftp.isMounted() } Column { width: parent.width Row { PlasmaComponents.Label { width: parent.width - browse.width horizontalAlignment: Text.AlignHCenter text: display } PlasmaComponents.Button { id: browse text: "Browse" state: "UNMOUNTED" onClicked: { if (state == "UNMOUNTED") { state = "MOUNTING" var response = DBusResponseFactory.create() response.success.connect( function(result){ if (result) { state = "MOUNTED" } else { state = "UNMOUNTED" } }) response.error.connect( function(message) { console.error("Error:" + message) state = "UNMOUNTED" }) response.pendingCall = sftp.startBrowsing() } else { sftp.umount() state = "UNMOUNTED" } } states: [ State { name: "UNMOUNTED" PropertyChanges { target: browse; text: "Browse"} }, State { name: "MOUNTING" PropertyChanges { target: browse; text: "Mounting..."} }, State { name: "MOUNTED" PropertyChanges { target: browse; text: "Unmount"} } ] } height: browse.height width: parent.width } //Battery PlasmaComponents.ListItem { BatteryInterface { id: batteryInterface device: root.deviceId } sectionDelegate: true visible: batteryInterface.available PlasmaComponents.Label { //font.bold: true text: i18n("Battery") } PlasmaComponents.Label { text: batteryInterface.displayString anchors.right: parent.right } } //Notifications PlasmaComponents.ListItem { visible: notificationsModel.count>0 enabled: true sectionDelegate: true PlasmaComponents.Label { //font.bold: true text: i18n("Notifications") } PlasmaComponents.ToolButton { enabled: true visible: notificationsModel.isAnyDimissable; anchors.right: parent.right iconSource: "window-close" onClicked: notificationsModel.dismissAll(); } } Repeater { id: notificationsView model: NotificationsModel { id: notificationsModel deviceId: root.deviceId } delegate: PlasmaComponents.ListItem { PlasmaComponents.Label { text: appName + ": " + display anchors.right: dismissButton.left anchors.left: parent.left elide: Text.ElideRight maximumLineCount: 2 wrapMode: Text.WordWrap } PlasmaComponents.ToolButton { id: dismissButton visible: notificationsModel.isAnyDimissable; enabled: dismissable anchors.right: parent.right iconSource: "window-close" onClicked: dbusInterface.dismiss(); } } //FIXME //Repeater.onItemAdded: plasmoid.status = "NeedsAttentionStatus"; } //TODO: Other information could be displayed here } }