Skip to content
Snippets Groups Projects
MatrixText.qml 1.08 KiB
Newer Older
  • Learn to ignore specific revisions
  • Nicolas Werner's avatar
    Nicolas Werner committed
    import QtQuick 2.5
    import QtQuick.Controls 2.3
    
    
    Nicolas Werner's avatar
    Nicolas Werner committed
    	textFormat: TextEdit.RichText
    	readOnly: true
    	wrapMode: Text.Wrap
    
    	selectByMouse: ma.containsMouse // try to make scrollable by finger but selectable by mouse
    
    	color: colors.text
    
    Nicolas Werner's avatar
    Nicolas Werner committed
    
    	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)) {
    
    Nicolas Werner's avatar
    Nicolas Werner committed
    			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
    	{
    
    Nicolas Werner's avatar
    Nicolas Werner committed
    		anchors.fill: parent
    
    		hoverEnabled: true
    
    Nicolas Werner's avatar
    Nicolas Werner committed
    		cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
    	}
    
    
    	ToolTip.visible: hoveredLink
    	ToolTip.text: hoveredLink
    
    Nicolas Werner's avatar
    Nicolas Werner committed
    }