Warning, /maui/strike/src/views/editor/Editor.qml is written in an unsupported language. File is not indexed.
0001 import QtQuick 2.14
0002 import QtQuick.Controls 2.14
0003 import QtQuick.Layouts 1.3
0004
0005 import org.mauikit.controls 1.3 as Maui
0006 import org.mauikit.texteditor 1.0 as TE
0007
0008 import org.slike.strike 1.0 as Strike
0009
0010 Maui.SplitViewItem
0011 {
0012 id: control
0013
0014 property alias editor : _editor
0015 property alias fileUrl : _editor.fileUrl
0016 property alias title : _editor.title
0017
0018 TE.TextEditor
0019 {
0020 id: _editor
0021 anchors.fill: parent
0022
0023 showLineNumbers: settings.showLineNumbers
0024 body.color: settings.textColor
0025 body.font.family: settings.font.family
0026 body.font.pointSize: settings.font.pointSize
0027 document.backgroundColor: settings.backgroundColor
0028 Maui.Theme.backgroundColor: settings.backgroundColor
0029 document.theme: settings.theme
0030 document.autoSave: settings.autoSave
0031 document.tabSpace: ((settings.tabSpace+1) * body.font.pointSize) / 2
0032 document.enableSyntaxHighlighting: true
0033 onFileUrlChanged: editorView.outputPanel.syncTerminal(_editor.fileUrl)
0034
0035 Keys.enabled: true
0036 Keys.onPressed:
0037 {
0038 if((event.key === Qt.Key_S) && (event.modifiers & Qt.ControlModifier))
0039 {
0040 saveFile(document.fileUrl, _editor)
0041 }
0042
0043 if((event.key === Qt.Key_T) && (event.modifiers & Qt.ControlModifier))
0044 {
0045 syncTerminal(_editor.fileUrl)
0046 _editor.terminal.forceActiveFocus()
0047 }
0048
0049 if((event.key === Qt.Key_O) && (event.modifiers & Qt.ControlModifier))
0050 {
0051 openFile()
0052 }
0053
0054 if((event.key === Qt.Key_N) && (event.modifiers & Qt.ControlModifier))
0055 {
0056 openTab("")
0057 }
0058
0059 if((event.key === Qt.Key_L) && (event.modifiers & Qt.ControlModifier))
0060 {
0061 settings.showLineNumbers = !settings.showLineNumbers
0062 }
0063 }
0064
0065 DropArea
0066 {
0067 id: _dropArea
0068 property var urls : []
0069 anchors.fill: parent
0070 onDropped:
0071 {
0072 if(drop.urls)
0073 {
0074 var m_urls = drop.urls.join(",")
0075 _dropArea.urls = m_urls.split(",")
0076 _dropAreaMenu.show()
0077
0078 // Nota.Nota.requestFiles( _dropArea.urls )
0079 }
0080 }
0081
0082 Maui.ContextualMenu
0083 {
0084 id: _dropAreaMenu
0085
0086 MenuItem
0087 {
0088 text: i18n("Open here")
0089 icon.name : "open-for-editing"
0090 onTriggered:
0091 {
0092 _editor.fileUrl = _dropArea.urls[0]
0093 }
0094 }
0095
0096 MenuItem
0097 {
0098 text: i18n("Open in new tab")
0099 icon.name: "tab-new"
0100 onTriggered:
0101 {
0102 Strike.Strike.requestFiles( _dropArea.urls )
0103 }
0104 }
0105
0106 MenuItem
0107 {
0108 enabled: _dropArea.urls.length === 1 && currentTab.count <= 1 && settings.supportSplit
0109 text: i18n("Open in new split")
0110 icon.name: "view-split-left-right"
0111 onTriggered:
0112 {
0113 currentTab.split(_dropArea.urls[0])
0114 }
0115 }
0116
0117 MenuSeparator{}
0118
0119 MenuItem
0120 {
0121 text: i18n("Cancel")
0122 icon.name: "dialog-cancel"
0123 onTriggered:
0124 {
0125 _dropAreaMenu.close()
0126 }
0127 }
0128
0129 onClosed: _editor.forceActiveFocus()
0130 }
0131 }
0132
0133 }
0134 }