Skip to content
Snippets Groups Projects
MatrixText.qml 1.21 KiB
Newer Older
Nicolas Werner's avatar
Nicolas Werner committed
import QtQuick 2.5
import QtQuick.Controls 2.3
Nicolas Werner's avatar
Nicolas Werner committed
import im.nheko 1.0

    textFormat: TextEdit.RichText
    readOnly: true
    wrapMode: Text.Wrap
    selectByMouse: true
    activeFocusOnPress: false
    color: colors.text
    onLinkActivated: {
        if (/^https:\/\/matrix.to\/#\/(@.*)$/.test(link)) {
            chat.model.openUserProfile(/^https:\/\/matrix.to\/#\/(@.*)$/.exec(link)[1]);
        } else if (/^https:\/\/matrix.to\/#\/(![^\/]*)$/.test(link)) {
            TimelineManager.setHistoryView(/^https:\/\/matrix.to\/#\/(!.*)$/.exec(link)[1]);
        } else if (/^https:\/\/matrix.to\/#\/(![^\/]*)\/(\$.*)$/.test(link)) {
            var match = /^https:\/\/matrix.to\/#\/(![^\/]*)\/(\$.*)$/.exec(link);
            TimelineManager.setHistoryView(match[1]);
            chat.positionViewAtIndex(chat.model.idToIndex(match[2]), ListView.Contain);
        } else {
            TimelineManager.openLink(link);
        }
    }
    ToolTip.visible: hoveredLink
    ToolTip.text: hoveredLink

    MouseArea {
        id: ma
        anchors.fill: parent
        propagateComposedEvents: true
        acceptedButtons: Qt.NoButton
        cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
    }