// SPDX-FileCopyrightText: Nheko Contributors // // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick import QtQuick.Controls import QtQuick.Layouts import QtQuick.Window import im.nheko RowLayout { id: metadata required property string eventId property int iconSize: Math.floor(fontMetrics.ascent * scaling) required property bool isEdited required property bool isEncrypted required property Room room required property double scaling required property int status required property string threadId required property date timestamp required property int trustlevel spacing: 2 StatusIndicator { Layout.alignment: Qt.AlignRight | Qt.AlignVCenter Layout.preferredHeight: parent.iconSize Layout.preferredWidth: parent.iconSize eventId: metadata.eventId status: metadata.status } Image { Layout.alignment: Qt.AlignRight | Qt.AlignVCenter Layout.preferredHeight: parent.iconSize Layout.preferredWidth: parent.iconSize ToolTip.delay: Nheko.tooltipDelay ToolTip.text: qsTr("Edited") ToolTip.visible: editHovered.hovered source: "image://colorimage/:/icons/icons/ui/edit.svg?" + ((metadata.eventId == metadata.room.edit) ? palette.highlight : palette.buttonText) sourceSize.height: parent.iconSize * Screen.devicePixelRatio sourceSize.width: parent.iconSize * Screen.devicePixelRatio visible: metadata.isEdited || metadata.eventId == metadata.room.edit HoverHandler { id: editHovered } } ImageButton { Layout.alignment: Qt.AlignRight | Qt.AlignVCenter Layout.preferredHeight: parent.iconSize Layout.preferredWidth: parent.iconSize ToolTip.delay: Nheko.tooltipDelay ToolTip.text: qsTr("Part of a thread") ToolTip.visible: hovered buttonTextColor: TimelineManager.userColor(metadata.threadId, palette.base) image: ":/icons/icons/ui/thread.svg" visible: metadata.threadId onClicked: metadata.room.thread = threadId } EncryptionIndicator { Layout.alignment: Qt.AlignRight | Qt.AlignVCenter Layout.preferredHeight: parent.iconSize Layout.preferredWidth: parent.iconSize encrypted: metadata.isEncrypted sourceSize.height: parent.iconSize * Screen.devicePixelRatio sourceSize.width: parent.iconSize * Screen.devicePixelRatio trust: metadata.trustlevel visible: metadata.room.isEncrypted } Label { id: ts Layout.alignment: Qt.AlignRight | Qt.AlignTop Layout.preferredWidth: implicitWidth ToolTip.delay: Nheko.tooltipDelay ToolTip.text: Qt.formatDateTime(metadata.timestamp, Qt.DefaultLocaleLongDate) ToolTip.visible: ma.hovered color: palette.inactive.text font.pointSize: fontMetrics.font.pointSize * parent.scaling text: metadata.timestamp.toLocaleTimeString(Locale.ShortFormat) HoverHandler { id: ma } } }