diff options
Diffstat (limited to 'resources/qml')
-rw-r--r-- | resources/qml/MatrixText.qml | 33 | ||||
-rw-r--r-- | resources/qml/delegates/NoticeMessage.qml | 8 | ||||
-rw-r--r-- | resources/qml/delegates/Placeholder.qml | 7 | ||||
-rw-r--r-- | resources/qml/delegates/TextMessage.qml | 9 |
4 files changed, 39 insertions, 18 deletions
diff --git a/resources/qml/MatrixText.qml b/resources/qml/MatrixText.qml new file mode 100644 index 00000000..5d20095c --- /dev/null +++ b/resources/qml/MatrixText.qml @@ -0,0 +1,33 @@ +import QtQuick 2.5 +import QtQuick.Controls 2.3 + +TextEdit { + textFormat: TextEdit.RichText + readOnly: true + wrapMode: Text.Wrap + selectByMouse: true + color: colors.text + + onLinkActivated: { + if (/^https:\/\/matrix.to\/#\/(@.*)$/.test(link)) chat.model.openUserProfile(/^https:\/\/matrix.to\/#\/(@.*)$/.exec(link)[1]) + if (/^https:\/\/matrix.to\/#\/(![^\/]*)$/.test(link)) timelineManager.setHistoryView(/^https:\/\/matrix.to\/#\/(!.*)$/.exec(link)[1]) + 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 Qt.openUrlExternally(link) + } + MouseArea + { + anchors.fill: parent + onPressed: mouse.accepted = false + cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor + } + + ToolTip { + visible: parent.hoveredLink + text: parent.hoveredLink + palette: colors + } +} diff --git a/resources/qml/delegates/NoticeMessage.qml b/resources/qml/delegates/NoticeMessage.qml index 59e051be..a392eb5b 100644 --- a/resources/qml/delegates/NoticeMessage.qml +++ b/resources/qml/delegates/NoticeMessage.qml @@ -1,12 +1,8 @@ -import QtQuick 2.5 +import ".." -TextEdit { +MatrixText { text: model.formattedBody - textFormat: TextEdit.RichText - readOnly: true - wrapMode: Text.Wrap width: parent ? parent.width : undefined - selectByMouse: true font.italic: true color: inactiveColors.text } diff --git a/resources/qml/delegates/Placeholder.qml b/resources/qml/delegates/Placeholder.qml index 171bf18d..4c0e68c3 100644 --- a/resources/qml/delegates/Placeholder.qml +++ b/resources/qml/delegates/Placeholder.qml @@ -1,10 +1,7 @@ -import QtQuick 2.5 -import QtQuick.Controls 2.1 +import ".." -Label { +MatrixText { text: qsTr("unimplemented event: ") + model.type - textFormat: Text.PlainText - wrapMode: Text.Wrap width: parent ? parent.width : undefined color: inactiveColors.text } diff --git a/resources/qml/delegates/TextMessage.qml b/resources/qml/delegates/TextMessage.qml index 713be868..990a3f5b 100644 --- a/resources/qml/delegates/TextMessage.qml +++ b/resources/qml/delegates/TextMessage.qml @@ -1,11 +1,6 @@ -import QtQuick 2.5 +import ".." -TextEdit { +MatrixText { text: model.formattedBody - textFormat: TextEdit.RichText - readOnly: true - wrapMode: Text.Wrap width: parent ? parent.width : undefined - selectByMouse: true - color: colors.text } |