Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
MatrixText.qml 1.21 KiB
import QtQuick 2.5
import QtQuick.Controls 2.3
import im.nheko 1.0

TextEdit {
    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
    }

}