Warning, /plasma/kdeplasma-addons/applets/diskquota/package/contents/ui/main.qml is written in an unsupported language. File is not indexed.

0001 /*
0002  * SPDX-FileCopyrightText: 2015 Dominik Haumann <dhaumann@kde.org>
0003  *
0004  * SPDX-License-Identifier: LGPL-2.1-or-later
0005  */
0006 import QtQuick 2.1
0007 import QtQuick.Layouts 1.1
0008 
0009 import org.kde.plasma.core as PlasmaCore
0010 import org.kde.kirigami 2.20 as Kirigami
0011 import org.kde.plasma.plasmoid 2.0
0012 import org.kde.plasma.components 3.0 as PlasmaComponents3
0013 import org.kde.plasma.extras 2.0 as PlasmaExtras
0014 
0015 import org.kde.plasma.private.diskquota 1.0
0016 
0017 PlasmoidItem {
0018     id: quotaApplet
0019 
0020     Layout.minimumWidth: Kirigami.Units.gridUnit * 10
0021     Layout.minimumHeight: Kirigami.Units.gridUnit * 2
0022 
0023     Plasmoid.status: {
0024         switch (diskQuota.status) {
0025             case DiskQuota.NeedsAttentionStatus:
0026                 return PlasmaCore.Types.NeedsAttentionStatus
0027             case DiskQuota.ActiveStatus:
0028                 return PlasmaCore.Types.ActiveStatus
0029         }
0030         // default case: DiskQuota.PassiveStatus
0031         return PlasmaCore.Types.PassiveStatus
0032     }
0033 
0034     switchWidth: Kirigami.Units.gridUnit * 10
0035     switchHeight: Kirigami.Units.gridUnit * 10
0036 
0037     Plasmoid.icon: diskQuota.iconName
0038     toolTipMainText: diskQuota.toolTip
0039     toolTipSubText: diskQuota.subToolTip
0040 
0041     Component.onCompleted: plasmoid.removeAction("configure")
0042 
0043     DiskQuota {
0044         id: diskQuota
0045     }
0046 
0047     fullRepresentation: Item {
0048         id: root
0049 
0050         width: Kirigami.Units.gridUnit * 20
0051         height: Kirigami.Units.gridUnit * 14
0052 
0053         // HACK: connection to reset currentIndex to -1. Without this, when
0054         // uninstalling filelight, the selection highlight remains fixed (which is wrong)
0055         Connections {
0056             target: diskQuota
0057             function onCleanUpToolInstalledChanged() {
0058                 if (!diskQuota.cleanUpToolInstalled) {
0059                     listView.currentIndex = -1
0060                 }
0061             }
0062         }
0063 
0064         Loader {
0065             id: emptyHint
0066 
0067             anchors.centerIn: parent
0068             width: parent.width - Kirigami.Units.gridUnit * 4
0069 
0070             active: !diskQuota.quotaInstalled || listView.count == 0
0071             visible: active
0072             asynchronous: true
0073 
0074             sourceComponent: PlasmaExtras.PlaceholderMessage {
0075                 width: parent.width
0076                 readonly property bool hasText: model.filterRegularExpression.length > 0
0077                 iconName: diskQuota.quotaInstalled ? "edit-none" : "disk-quota"
0078                 text: diskQuota.quotaInstalled ? i18nc("@info:status", "No quota restrictions found") : i18nc("@info:status", "Quota tool not found")
0079                 explanation: diskQuota.quotaInstalled ? "" : i18nc("@info:usagetip", "Please install 'quota'")
0080             }
0081         }
0082 
0083         PlasmaComponents3.ScrollView {
0084             anchors.fill: parent
0085             ListView {
0086                 id: listView
0087                 model: diskQuota.model
0088                 boundsBehavior: Flickable.StopAtBounds
0089                 highlight: PlasmaExtras.Highlight { }
0090                 highlightMoveDuration: 0
0091                 highlightResizeDuration: 0
0092                 currentIndex: -1
0093                 delegate: ListDelegateItem {
0094                     enabled: diskQuota.cleanUpToolInstalled
0095                     width: listView.width
0096                     mountPoint: model.mountPoint
0097                     details: model.details
0098                     iconName: model.icon
0099                     usedString: model.used
0100                     freeString: model.free
0101                     usage: model.usage
0102                 }
0103             }
0104         }
0105     }
0106 }