Warning, /network/neochat/src/qml/TextDelegate.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2021 Tobias Fella <tobias.fella@kde.org>
0002 // SPDX-License-Identifier: GPL-3.0-only
0003
0004 import QtQuick
0005 import QtQuick.Layouts
0006
0007 import Qt.labs.qmlmodels
0008
0009 import org.kde.neochat
0010 import org.kde.neochat.config
0011
0012 /**
0013 * @brief A timeline delegate for a text message.
0014 *
0015 * @inherit MessageDelegate
0016 */
0017 MessageDelegate {
0018 id: root
0019
0020 /**
0021 * @brief The link preview properties.
0022 *
0023 * This is a list or object containing the following:
0024 * - url - The URL being previewed.
0025 * - loaded - Whether the URL preview has been loaded.
0026 * - title - the title of the URL preview.
0027 * - description - the description of the URL preview.
0028 * - imageSource - a source URL for the preview image.
0029 *
0030 * @note An empty link previewer should be passed if there are no links to
0031 * preview.
0032 */
0033 required property var linkPreview
0034
0035 /**
0036 * @brief Whether there are any links to preview.
0037 */
0038 required property bool showLinkPreview
0039
0040 onOpenContextMenu: RoomManager.viewEventMenu(eventId, author, delegateType, plainText, display, label.selectedText)
0041
0042 bubbleContent: ColumnLayout {
0043 RichLabel {
0044 id: label
0045 Layout.fillWidth: true
0046 visible: root.room.editCache.editId !== root.eventId
0047
0048 isReply: root.isReply
0049
0050 textMessage: root.display
0051
0052 TapHandler {
0053 enabled: !label.hoveredLink
0054 acceptedButtons: Qt.LeftButton
0055 onLongPressed: root.openContextMenu()
0056 }
0057 }
0058 Loader {
0059 Layout.fillWidth: true
0060 Layout.minimumHeight: item ? item.minimumHeight : -1
0061 Layout.preferredWidth: item ? item.preferredWidth : -1
0062 visible: root.room.editCache.editId === root.eventId
0063 active: visible
0064 sourceComponent: MessageEditComponent {
0065 room: root.room
0066 actionsHandler: root.ListView.view.actionsHandler
0067 messageId: root.eventId
0068 }
0069 }
0070 LinkPreviewDelegate {
0071 Layout.fillWidth: true
0072 active: !root.room.usesEncryption && root.room.urlPreviewEnabled && Config.showLinkPreview && root.showLinkPreview && !root.linkPreview.empty
0073 linkPreviewer: root.linkPreview
0074 indicatorEnabled: root.isVisibleInTimeline()
0075 }
0076 }
0077 }