syncthingtray/plasmoid/package/contents/ui/DownloadsPage.qml
Martchus 3aa09abd9e plasmoid: Prevent warnings
TODO: Further investigate this unexpected condition
2017-09-26 15:45:03 +02:00

131 lines
5.4 KiB
QML

import QtQuick 2.3
import QtQuick.Layouts 1.1
import QtQml.Models 2.2
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.components 2.0 as PlasmaComponents
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.extras 2.0 as PlasmaExtras
Item {
property alias view: downloadView
anchors.fill: parent
objectName: "DownloadsPage"
PlasmaExtras.ScrollArea {
anchors.fill: parent
TopLevelView {
id: downloadView
model: plasmoid.nativeInterface.downloadModel
delegate: TopLevelItem {
id: item
ColumnLayout {
width: parent.width
spacing: 0
RowLayout {
id: itemSummary
RowLayout {
spacing: units.smallSpacing
PlasmaComponents.Label {
anchors.verticalCenter: parent.verticalCenter
elide: Text.ElideRight
text: name ? name : "?"
}
}
PlasmaComponents.ProgressBar {
Layout.fillWidth: true
Layout.fillHeight: true
minimumValue: 0
maximumValue: 100
value: percentage ? percentage : 0
}
RowLayout {
id: toolButtonsLayout
spacing: 0
PlasmaComponents.Label {
height: implicitHeight
text: progressLabel ? progressLabel : ""
anchors.verticalCenter: parent.verticalCenter
}
Item {
width: 3
}
TinyButton {
iconSource: "folder"
tooltip: qsTr("Open in file browser")
enabled: path !== undefined
onClicked: {
Qt.openUrlExternally(path)
plasmoid.expanded = false
}
}
}
}
DetailView {
id: detailsView
width: parent.width
visible: item.expanded
model: DelegateModel {
model: plasmoid.nativeInterface.downloadModel
rootIndex: detailsView.model.modelIndex(index)
delegate: RowLayout {
width: parent.width
PlasmaCore.IconItem {
Layout.preferredWidth: units.iconSizes.medium
Layout.preferredHeight: units.iconSizes.medium
anchors.verticalCenter: parent.verticalCenter
source: fileIcon
}
ColumnLayout {
spacing: 0
Layout.fillWidth: true
RowLayout {
spacing: units.smallSpacing
Layout.fillWidth: true
PlasmaComponents.Label {
Layout.fillWidth: true
text: name
font.pointSize: theme.defaultFont.pointSize * 0.8
elide: Text.ElideRight
}
PlasmaComponents.Label {
text: progressLabel
font.pointSize: theme.defaultFont.pointSize * 0.8
elide: Text.ElideRight
}
}
PlasmaComponents.ProgressBar {
Layout.fillWidth: true
Layout.preferredHeight: 8
Layout.topMargin: 0
minimumValue: 0
maximumValue: 100
value: percentage
}
}
TinyButton {
iconSource: "folder"
tooltip: qsTr("Open in file browser")
onClicked: {
Qt.openUrlExternally(path)
plasmoid.expanded = false
}
}
}
}
}
}
}
}
}
}