Page MenuHomePhorge

Bubble.qml
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

Bubble.qml

/*
* This file is part of kazv.
* SPDX-FileCopyrightText: 2020-2023 tusooa <tusooa@kazv.moe>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import QtQuick 2.15
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15
import org.kde.kirigami 2.13 as Kirigami
import '.' as Kazv
Kirigami.AbstractCard {
id: upper
default property var children
property var currentEvent: event
property var menuContent: []
readonly property var bubbleSpacing: leftPadding + rightPadding
Layout.fillWidth: false
TapHandler {
acceptedButtons: Qt.LeftButton | Qt.RightButton
property var menu: Menu {
objectName: 'bubbleContextMenu'
property var deleteAction: Kirigami.Action {
text: l10n.get('event-delete')
onTriggered: eventView.redactSelf()
}
property var viewSourceAction: Kirigami.Action {
text: l10n.get('event-view-source')
onTriggered: eventSourcePopup.open()
}
property var separator: MenuSeparator {}
property var menuItems: groups(
(event && !event.redacted) ? [deleteAction, viewSourceAction] : [viewSourceAction],
upper.menuContent
)
contentData: menuItems
function groups(a, b) {
if (a.length && b.length) {
return [...a, separator, ...b];
} else {
return [...a, ...b];
}
}
}
onLongPressed: maybePopup()
onTapped: {
if (eventPoint.event.button === Qt.RightButton) {
maybePopup()
}
}
function shouldPopup() {
return menu.menuItems.length
}
function maybePopup() {
if (shouldPopup()) {
menu.popup(parent)
}
}
}
property var eventSourcePopup: Kirigami.OverlaySheet {
title: l10n.get('event-source-popup-title')
Kazv.EventSourceView {
event: upper.currentEvent
}
}
contentItem: RowLayout {
anchors.left: parent.left
anchors.right: parent.right
property var encryptedIcon: Kirigami.Icon {
source: 'emblem-encrypted-locked'
Layout.preferredHeight: inlineBadgeSize
Layout.preferredWidth: inlineBadgeSize
}
data: [
...(event && event.encrypted ? [encryptedIcon] : []),
...(Array.isArray(upper.children) ? upper.children :
upper.children ? [upper.children] : [])
]
}
}

File Metadata

Mime Type
text/plain
Expires
Tue, Jun 24, 10:49 AM (1 d, 13 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
89704
Default Alt Text
Bubble.qml (2 KB)

Event Timeline