Warning, /office/klevernotes/src/contents/ui/textEditor/EditorView.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-License-Identifier: GPL-2.0-or-later 0002 // SPDX-FileCopyrightText: 2022 Louis Schul <schul9louis@gmail.com> 0003 0004 import QtQuick 2.15 0005 import QtQuick.Layouts 1.15 0006 0007 import org.kde.kirigami 2.19 as Kirigami 0008 0009 import org.kde.Klever 1.0 0010 0011 import "qrc:/contents/ui/dialogs" 0012 0013 GridLayout { 0014 id: root 0015 0016 required property string path 0017 readonly property TextEditor editor: editor 0018 readonly property TextDisplay display: display 0019 readonly property QtObject imagePickerDialog: toolbar.imagePickerDialog 0020 readonly property QtObject cheatSheet: cheatSheet 0021 0022 property list<Kirigami.Action> actions: [ 0023 Kirigami.Action { 0024 id: linkedNotesAction 0025 0026 enabled: Config.noteMapEnabled 0027 visible: enabled 0028 shortcut: "Ctrl+M" 0029 tooltip: i18nc("@tooltip, will be followed by the shortcut", "Linked notes") + " (" + shortcut + ")" 0030 icon.name: "gnumeric-link-internal" 0031 0032 onTriggered: { 0033 noteMapLoader.item.open() 0034 } 0035 }, 0036 Kirigami.Action { 0037 id: pdfPrinter 0038 0039 shortcut: "Ctrl+P" 0040 tooltip: i18nc("@tooltip, Print action, will be followed by the shortcut", "Print") + " (" + shortcut + ")" 0041 icon.name: "viewpdf" 0042 0043 onTriggered: { 0044 applicationWindow().switchToPage('Printing') 0045 } 0046 }, 0047 Kirigami.Action { 0048 id: editorToggler 0049 0050 shortcut: "Ctrl+Shift+8" 0051 tooltip: i18nc("@tooltip, will be followed by the shortcut", "View/Hide editor") + " (" + shortcut + ")" 0052 checked: true 0053 checkable: true 0054 icon.name: editorToggler.checked ? "text-flow-into-frame" : "text-unflow" 0055 0056 onTriggered: if (!editorToggler.checked && !viewToggler.checked) { 0057 editorToggler.checked = true 0058 } 0059 }, 0060 Kirigami.Action { 0061 id: viewToggler 0062 0063 shortcut: "Ctrl+Shift+9" 0064 tooltip: i18nc("@tooltip, display as in 'the note preview', will be followed by the shortcut", "View/Hide preview") + " (" + shortcut + ")" 0065 checked: applicationWindow().wideScreen 0066 checkable: true 0067 icon.name: viewToggler.checked ? "quickview" : "view-hidden" 0068 0069 onTriggered: if (!viewToggler.checked && !editorToggler.checked) { 0070 viewToggler.checked = true 0071 } 0072 } 0073 ] 0074 0075 rows: 4 0076 columns: 2 0077 0078 FileSaverDialog { 0079 id: pdfSaver 0080 0081 caller: pdfPrinter 0082 noteName: root.noteName ? root.noteName : "" 0083 } 0084 0085 TextToolBar { 0086 id: toolbar 0087 0088 notePath: root.path 0089 editorTextArea: root.editor.textArea 0090 0091 Layout.row: 0 0092 } 0093 0094 // This item can be seen as useless but it prevent a weird bug with the height not being adjusted 0095 Item { 0096 Layout.row: 1 0097 Layout.fillHeight: true 0098 Layout.fillWidth: true 0099 0100 GridLayout { 0101 rows: columns > 1 ? 1 : 2 0102 columns: parent.width > Kirigami.Units.gridUnit * 30 ? 2 : 1 0103 anchors.fill:parent 0104 0105 TextEditor{ 0106 id: editor 0107 0108 visible: editorToggler.checked 0109 path: root.path 0110 0111 Layout.fillWidth:true 0112 Layout.fillHeight:true 0113 Layout.preferredHeight: parent.columns === 2 ? parent.height : parent.height/2 0114 Layout.preferredWidth: parent.columns === 2 ? parent.width/2 : parent.width 0115 0116 onTextChanged: { 0117 display.text = text //Workaround 0118 } 0119 } 0120 0121 TextDisplay{ 0122 id: display 0123 0124 visible: viewToggler.checked 0125 0126 text: editor.text //Doesn't update ?! 0127 path: root.path.replace("note.md", "") 0128 0129 Layout.fillWidth:true 0130 Layout.fillHeight:true 0131 Layout.preferredHeight: parent.columns === 2 ? parent.height : parent.height/2 0132 Layout.preferredWidth: parent.columns === 2 ? parent.width/2 : parent.width 0133 } 0134 } 0135 } 0136 0137 CheatSheet { 0138 id: cheatSheet 0139 } 0140 0141 Loader { 0142 id: noteMapLoader 0143 0144 sourceComponent: NotesMap { 0145 id: linkedNotesMap 0146 0147 parser: display.parser 0148 } 0149 active: Config.noteMapEnabled 0150 } 0151 }