For instance, the NetworkManager Plasmoid uses these margins for its ListView. It looks probably better than without margins (after removing paddings with scroll page).
127 lines
5.4 KiB
QML
127 lines
5.4 KiB
QML
import QtQuick 2.3
|
|
import QtQuick.Layouts 1.1
|
|
import QtQml.Models 2.2
|
|
import org.kde.plasma.components 2.0 as PlasmaComponents // for Menu and MenuItem
|
|
import org.kde.plasma.components 3.0 as PlasmaComponents3
|
|
import org.kde.plasma.core 2.0 as PlasmaCore
|
|
|
|
Item {
|
|
property alias view: recentChangesView
|
|
objectName: "RecentChangesPage"
|
|
|
|
PlasmaComponents3.ScrollView {
|
|
anchors.fill: parent
|
|
|
|
// HACK: workaround for https://bugreports.qt.io/browse/QTBUG-83890
|
|
PlasmaComponents3.ScrollBar.horizontal.policy: PlasmaComponents3.ScrollBar.AlwaysOff
|
|
|
|
contentItem: TopLevelView {
|
|
id: recentChangesView
|
|
model: plasmoid.nativeInterface.recentChangesModel
|
|
delegate: TopLevelItem {
|
|
width: recentChangesView.effectiveWidth()
|
|
ColumnLayout {
|
|
width: parent.width
|
|
spacing: 0
|
|
RowLayout {
|
|
Layout.fillWidth: true
|
|
PlasmaCore.IconItem {
|
|
Layout.preferredWidth: units.iconSizes.small
|
|
Layout.preferredHeight: units.iconSizes.small
|
|
Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
|
|
source: actionIcon
|
|
}
|
|
PlasmaComponents3.Label {
|
|
Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
|
|
Layout.fillWidth: true
|
|
elide: Text.ElideRight
|
|
text: extendedAction
|
|
}
|
|
Item {
|
|
width: units.smallSpacing
|
|
}
|
|
Image {
|
|
Layout.preferredWidth: units.iconSizes.small
|
|
Layout.preferredHeight: units.iconSizes.small
|
|
Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
|
|
height: parent.height
|
|
fillMode: Image.PreserveAspectFit
|
|
source: plasmoid.nativeInterface.faUrl + "calendar"
|
|
}
|
|
PlasmaComponents3.Label {
|
|
Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
|
|
elide: Text.ElideRight
|
|
text: eventTime
|
|
}
|
|
Item {
|
|
width: units.smallSpacing
|
|
}
|
|
Image {
|
|
Layout.preferredWidth: units.iconSizes.small
|
|
Layout.preferredHeight: units.iconSizes.small
|
|
Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
|
|
height: parent.height
|
|
fillMode: Image.PreserveAspectFit
|
|
source: plasmoid.nativeInterface.faUrl + "qrcode"
|
|
}
|
|
PlasmaComponents3.Label {
|
|
Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
|
|
elide: Text.ElideRight
|
|
text: modifiedBy
|
|
}
|
|
}
|
|
RowLayout {
|
|
Layout.fillWidth: true
|
|
Image {
|
|
Layout.preferredWidth: units.iconSizes.small
|
|
Layout.preferredHeight: units.iconSizes.small
|
|
Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
|
|
height: parent.height
|
|
fillMode: Image.PreserveAspectFit
|
|
source: plasmoid.nativeInterface.faUrl + (itemType === "file" ? "file-o" : "folder-o")
|
|
}
|
|
PlasmaComponents3.Label {
|
|
text: directoryId + ": "
|
|
font.weight: Font.DemiBold
|
|
}
|
|
PlasmaComponents3.Label {
|
|
Layout.fillWidth: true
|
|
text: path
|
|
elide: Text.ElideRight
|
|
}
|
|
}
|
|
}
|
|
|
|
function copyPath() {
|
|
plasmoid.nativeInterface.copyToClipboard(path)
|
|
}
|
|
function copyDeviceId() {
|
|
plasmoid.nativeInterface.copyToClipboard(modifiedBy)
|
|
}
|
|
function copyFolderId() {
|
|
plasmoid.nativeInterface.copyToClipboard(folderId)
|
|
}
|
|
}
|
|
|
|
PlasmaComponents.Menu {
|
|
id: contextMenu
|
|
PlasmaComponents.MenuItem {
|
|
text: qsTr("Copy path")
|
|
icon: "edit-copy"
|
|
onClicked: recentChangesView.currentItem.copyPath()
|
|
}
|
|
PlasmaComponents.MenuItem {
|
|
text: qsTr("Copy device ID")
|
|
icon: "network-server-symbolic"
|
|
onClicked: recentChangesView.currentItem.copyDeviceId()
|
|
}
|
|
PlasmaComponents.MenuItem {
|
|
text: qsTr("Copy directory ID")
|
|
icon: "folder"
|
|
onClicked: recentChangesView.currentItem.copyFolderId()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|