Warning, /office/klevernotes/src/contents/ui/pages/MainPage.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 import QtQuick.Controls 2.15 as QQC2
0007
0008 import org.kde.kirigami 2.19 as Kirigami
0009
0010 import "qrc:/contents/ui/textEditor"
0011 import "qrc:/contents/ui/todoEditor"
0012
0013 import org.kde.Klever 1.0
0014
0015 Kirigami.Page {
0016 id: root
0017
0018 readonly property bool hasNote: currentlySelected && currentlySelected.useCase === "Note"
0019
0020 property QtObject currentlySelected
0021 property QtObject editorView: editorLoader.item
0022 property QtObject todoView: todoLoader.item
0023
0024 title: hasNote ? currentlySelected.text : i18nc("@title:page", "Welcome")
0025
0026 actions: {
0027 if (hasNote) {
0028 // At first both Loaders item are "null"
0029 if (editorLoader.item && editorLoader.item.visible) {
0030 return editorLoader.item.actions
0031 }
0032 return todoLoader.item ? todoLoader.item.actions : []
0033 }
0034 return []
0035 }
0036
0037 onCurrentlySelectedChanged: if (root.hasNote) {
0038 const editor = editorView.editor
0039 const oldPath = editorView.path
0040 const text = editor.text
0041 editor.saveNote(text, oldPath)
0042 }
0043
0044 Loader {
0045 id: editorLoader
0046
0047 sourceComponent: EditorView {
0048 path: currentlySelected.path + "/note.md"
0049 visible: bottomToolBar.showNoteEditor
0050 }
0051 active: root.hasNote
0052 anchors.fill: parent
0053 }
0054
0055 Loader {
0056 id: todoLoader
0057
0058 sourceComponent: ToDoView {
0059 path: currentlySelected.path + "/todo.json"
0060 visible: !bottomToolBar.showNoteEditor
0061 }
0062 active: root.hasNote
0063 anchors.fill: parent
0064 }
0065
0066
0067 Kirigami.Card {
0068 id: placeHolder
0069
0070 anchors.fill: parent
0071
0072 visible: !root.hasNote
0073
0074 ColumnLayout {
0075 anchors.fill: parent
0076
0077 Kirigami.Theme.colorSet: Kirigami.Theme.View
0078 Kirigami.Theme.inherit: false
0079
0080 QQC2.Label {
0081 text: i18n("Welcome to KleverNotes!")
0082 wrapMode: Text.WordWrap
0083 horizontalAlignment: Text.AlignHCenter
0084 font.pointSize: 24
0085
0086 Layout.margins: Kirigami.Units.largeSpacing * 2
0087 Layout.fillWidth: true
0088 }
0089
0090 QQC2.Label {
0091 text: i18n("Create or select a note to start working !")
0092 wrapMode: Text.WordWrap
0093 horizontalAlignment: Text.AlignHCenter
0094 font.pointSize: 12
0095
0096 Layout.margins: Kirigami.Units.largeSpacing * 2
0097 Layout.fillWidth: true
0098 }
0099 }
0100 }
0101
0102 footer: BottomToolBar{
0103 id: bottomToolBar
0104
0105 visible: root.hasNote
0106 }
0107 }