Page MenuHomePhorge

Simple.qml
No OneTemporary

Size
3 KB
Referenced Files
None
Subscribers
None

Simple.qml

/*
* This file is part of kazv.
* SPDX-FileCopyrightText: 2020-2021 Tusooa Zhu <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
ColumnLayout {
property var event
property var sender
default property var children
property var localEchoIndicator: Kirigami.Icon {
objectName: 'localEchoIndicator'
source: event.isSending ? 'state-sync' : 'state-warning'
Layout.preferredHeight: Kirigami.Units.iconSizes.medium
Layout.preferredWidth: Kirigami.Units.iconSizes.medium
Accessible.role: event.isSending ? Accessible.StaticText : Accessible.Button
Accessible.name: event.isSending ? l10n.get('event-sending') : l10n.get('event-resend')
ToolTip.text: event.isSending ? l10n.get('event-sending') : l10n.get('event-send-failed')
ToolTip.delay: 1000
ToolTip.timeout: 5000
ToolTip.visible: hoverHandler.hovered
HoverHandler { id: hoverHandler }
TapHandler {
objectName: 'resendEventButton'
onTapped: {
room.resendMessage(event.txnId);
}
enabled: event.isFailed
}
}
property var contentMaxWidth: {
(parent.width
// avatar size and margins
- iconSize
- 2 * Kirigami.Units.largeSpacing
- 2 * Kirigami.Units.largeSpacing
// local echo indicator
- (event.isLocalEcho ? Kirigami.Units.iconSizes.medium + Kirigami.Units.largeSpacing : 0)
)
}
id: layout
RowLayout {
width: parent.width
Layout.leftMargin: Kirigami.Units.largeSpacing
Layout.rightMargin: Kirigami.Units.largeSpacing
Layout.topMargin: Kirigami.Units.largeSpacing
Kirigami.Avatar {
id: avatar
Layout.alignment: Qt.AlignTop
sourceSize.width: iconSize
sourceSize.height: iconSize
source: sender.avatarMxcUri ? matrixSdk.mxcUriToHttp(sender.avatarMxcUri) : ''
name: sender.name || sender.userId
visible: !compactMode
TapHandler {
onTapped: {
console.log('avatar tapped');
pageStack.push(Qt.resolvedUrl("qrc:///UserPage.qml"), {
userId: sender.userId,
user: sender,
})
}
}
}
ColumnLayout {
Layout.fillWidth: true
Layout.leftMargin: Kirigami.Units.largeSpacing
RowLayout {
Kirigami.Avatar {
id: avatarCompact
Layout.preferredWidth: Kirigami.Units.iconSizes.sizeForLabels
Layout.preferredHeight: Kirigami.Units.iconSizes.sizeForLabels
sourceSize.width: Kirigami.Units.iconSizes.sizeForLabels
sourceSize.height: Kirigami.Units.iconSizes.sizeForLabels
source: sender.avatarMxcUri ? matrixSdk.mxcUriToHttp(sender.avatarMxcUri) : ''
name: sender.name || sender.userId
visible: compactMode
}
Label {
text: sender.name || sender.userId
Layout.fillWidth: true
}
}
RowLayout {
id: container
Layout.fillWidth: true
data: (event.isLocalEcho ? [layout.localEchoIndicator] : []).concat(layout.children)
}
}
}
}

File Metadata

Mime Type
text/plain
Expires
Thu, Oct 2, 2:28 AM (1 d, 5 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
480332
Default Alt Text
Simple.qml (3 KB)

Event Timeline