3
0
mirror of https://github.com/Qortal/Brooklyn.git synced 2025-02-15 19:55:53 +00:00

83 lines
2.5 KiB
QML
Raw Normal View History

2022-03-05 22:41:29 +05:00
/*
SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
import QtQuick 2.15
import QtQml 2.15
import org.kde.plasma.extras 2.0 as PlasmaExtras
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 2.0 as PlasmaComponents // For Highlight
import org.kde.plasma.components 3.0 as PlasmaComponents3
import org.kde.kirigami 2.12 as Kirigami
PlasmaComponents3.ScrollView {
id: menu
property alias view: menuListView
property alias model: menuListView.model
property bool supportsBarcodes
background: null
signal itemSelected(string uuid)
signal remove(string uuid)
signal edit(string uuid)
signal barcode(string text)
signal action(string uuid)
// HACK: workaround for https://bugreports.qt.io/browse/QTBUG-83890
PlasmaComponents3.ScrollBar.horizontal.policy: PlasmaComponents3.ScrollBar.AlwaysOff
contentWidth: availableWidth - contentItem.leftMargin - contentItem.rightMargin
contentItem: ListView {
id: menuListView
focus: true
highlight: PlasmaComponents.Highlight { }
highlightMoveDuration: 0
highlightResizeDuration: 0
currentIndex: -1
topMargin: PlasmaCore.Units.smallSpacing * 2
bottomMargin: PlasmaCore.Units.smallSpacing * 2
leftMargin: PlasmaCore.Units.smallSpacing * 2
rightMargin: PlasmaCore.Units.smallSpacing * 2
spacing: PlasmaCore.Units.smallSpacing
reuseItems: true
delegate: ClipboardItemDelegate {
// FIXME: removing this causes a binding loop
width: menuListView.width - menuListView.leftMargin - menuListView.rightMargin
supportsBarcodes: menu.supportsBarcodes
onItemSelected: menu.itemSelected(uuid)
onRemove: menu.remove(uuid)
onEdit: menu.edit(uuid)
onBarcode: menu.barcode(text)
onAction: menu.action(uuid)
Binding {
target: menuListView; when: containsMouse
property: "currentIndex"; value: index
restoreMode: Binding.RestoreBinding
}
}
PlasmaExtras.PlaceholderMessage {
id: emptyHint
anchors.centerIn: parent
width: parent.width - (PlasmaCore.Units.largeSpacing * 4)
visible: menuListView.count === 0
text: model.filterRegExp.length > 0 ? i18n("No matches") : i18n("Clipboard is empty")
}
}
}