mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-25 12:38:48 +03:00
7b07548b77
Fix various downscaled icons by removing undeeded multiplications by devicePixelRatio in sourceSize. Fix downscaled PL indicator in the timeline by using the actual size as sourceSize. Fix various blurry icons by specifying sourceSize.
91 lines
2.9 KiB
QML
91 lines
2.9 KiB
QML
// 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
|
|
|
|
property int iconSize: Math.floor(fontMetrics.ascent * scaling)
|
|
required property double scaling
|
|
|
|
required property string eventId
|
|
required property int status
|
|
required property int trustlevel
|
|
required property bool isEdited
|
|
required property bool isEncrypted
|
|
required property string threadId
|
|
required property date timestamp
|
|
required property Room room
|
|
|
|
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
|
|
sourceSize.width: parent.iconSize
|
|
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
|
|
sourceSize.width: parent.iconSize
|
|
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
|
|
|
|
}
|
|
}
|
|
}
|