File: NotesGeneral.qml

package info (click to toggle)
kirigami2 5.116.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,700 kB
  • sloc: cpp: 12,385; xml: 132; sh: 53; makefile: 7
file content (198 lines) | stat: -rw-r--r-- 9,869 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
/*
 *  SPDX-FileCopyrightText: 2016 Marco Martin <mart@kde.org>
 *
 *  SPDX-License-Identifier: LGPL-2.0-or-later
 */

import QtQuick 2.15
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15 as QQC2
import org.kde.kirigami 2.20 as Kirigami

Kirigami.ApplicationWindow {
    id: root

    property string currentFile

    pageStack.initialPage: iconView

    Kirigami.ScrollablePage {
        id: iconView
        title: "Notes"
        actions.contextualActions: [
            Kirigami.Action {
                id: sortAction
                icon.name: "view-sort-ascending-symbolic"
                tooltip: "Sort Ascending"
            }
        ]
        background: Rectangle {
            color: Kirigami.Theme.backgroundColor
        }

        GridView {
            id: view
            model: 100
            cellWidth: Kirigami.Units.gridUnit * 9
            cellHeight: cellWidth
            currentIndex: -1
            highlightMoveDuration: 0
            highlight: Rectangle {
                color: Kirigami.Theme.highlightColor
            }
            delegate: MouseArea {
                width: view.cellWidth
                height: view.cellHeight
                Kirigami.Icon {
                    source: "text-plain"
                    anchors {
                        fill: parent
                        margins: Kirigami.Units.gridUnit
                    }
                    QQC2.Label {
                        anchors {
                            top: parent.bottom
                            horizontalCenter: parent.horizontalCenter
                        }
                        text: "File " + modelData
                    }
                }
                onClicked: {
                    view.currentIndex = index;
                    root.currentFile = "File " + modelData;
                    if (root.pageStack.depth < 2) {
                        root.pageStack.push(editorComponent);
                    }
                    root.pageStack.currentIndex = 1
                }
            }
        }
    }

    Component {
        id: editorComponent
        Kirigami.ScrollablePage {
            id: editor
            title: root.currentFile
            actions {
                main: Kirigami.Action {
                    id: shareAction
                    icon.name: "document-share"
                    text: "Share..."
                    tooltip: "Share this document with your device"
                    checkable: true
                    onCheckedChanged: sheet.sheetOpen = checked;
                }
                contextualActions: [
                    Kirigami.Action {
                        icon.name: "format-text-bold-symbolic"
                        tooltip: "Bold"
                    },
                    Kirigami.Action {
                        icon.name: "format-text-underline-symbolic"
                        tooltip: "Underline"
                    },
                    Kirigami.Action {
                        icon.name: "format-text-italic-symbolic"
                        tooltip: "Italic"
                    }
                ]
            }
            background: Rectangle {
                color: Kirigami.Theme.backgroundColor
                Rectangle {
                    anchors.fill: parent
                    color: "yellow"
                    opacity: 0.2
                }
            }

            Kirigami.OverlaySheet {
                id: sheet
                onSheetOpenChanged: shareAction.checked = sheetOpen
                ListView {
                    implicitWidth: Kirigami.Units.gridUnit * 30
                    model: ListModel {
                        ListElement {
                            title: "Share with phone \"Nokia 3310\""
                            description: "You selected this phone 12 times before. It's currently connected via bluetooth"
                            buttonText: "Push Sync"
                        }
                        ListElement {
                            title: "Share with phone \"My other Nexus5\""
                            description: "You selected this phone 0 times before. It's currently connected to your laptop via Wifi"
                            buttonText: "Push Sync"
                        }
                        ListElement {
                            title: "Share with NextCloud"
                            description: "You currently do not have a server set up for sharing and storing notes from Katie. If you want to set one up click here"
                            buttonText: "Setup…"
                        }
                        ListElement {
                            title: "Send document via email"
                            description: "This will send the document as an attached file to your own email for later sync"
                            buttonText: "Send As Email"
                        }
                    }
                    header: Kirigami.AbstractListItem {
                        height: Kirigami.Units.gridUnit * 6
                        hoverEnabled: false
                        RowLayout {
                            Kirigami.Icon {
                                source: "documentinfo"
                                width: Kirigami.Units.iconSizes.large
                                height: width
                            }
                            QQC2.Label {
                                Layout.fillWidth: true
                                Layout.minimumWidth: 0
                                wrapMode: Text.WordWrap
                                text: "This document has already automatically synced with your phone \"Dancepartymeister 12\". If you want to sync with another device or do further actions you can do that here"
                            }
                        }
                    }
                    delegate: Kirigami.AbstractListItem {
                        height: Kirigami.Units.gridUnit * 6
                        hoverEnabled: false
                        //TODO: bug in overlaysheet
                        rightPadding: Kirigami.Units.gridUnit * 1.5
                        RowLayout {
                            ColumnLayout {
                                Layout.fillWidth: true
                                Layout.minimumWidth: 0
                                QQC2.Label {
                                    wrapMode: Text.WordWrap
                                    text: model.title
                                }
                                QQC2.Label {
                                    Layout.fillWidth: true
                                    Layout.minimumWidth: 0
                                    wrapMode: Text.WordWrap
                                    text: model.description
                                }
                            }
                            QQC2.Button {
                                text: model.buttonText
                                onClicked: sheet.close()
                            }
                        }
                    }
                }
            }
            QQC2.TextArea {
                background: Item {}
                wrapMode: TextEdit.WordWrap
                selectByMouse: true
                text: `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sollicitudin, lorem at semper pretium, tortor nisl pellentesque risus, eget eleifend odio ipsum ac mi. Donec justo ex, elementum vitae gravida vel, pretium ac lacus. Duis non metus ac enim viverra auctor in non nunc. Sed sit amet luctus nisi. Proin justo nulla, vehicula eget porta sit amet, aliquet vitae dolor. Mauris sed odio auctor, tempus ipsum ac, placerat enim. Ut in dolor vel ante dictum auctor.

    Praesent blandit rhoncus augue. Phasellus consequat luctus pulvinar. Pellentesque rutrum laoreet dolor, sit amet pellentesque tellus mattis sed. Sed accumsan cursus tortor. Morbi et risus dolor. Nullam facilisis ipsum justo, nec sollicitudin mi pulvinar ac. Nulla facilisi. Donec maximus turpis eget mollis laoreet. Phasellus vel mauris et est mattis auctor eget sit amet turpis. Aliquam dignissim euismod purus, eu efficitur neque fermentum eu. Suspendisse potenti. Praesent mattis ex vitae neque rutrum tincidunt. Etiam placerat leo viverra pulvinar tincidunt.

    Proin vel rutrum massa. Proin volutpat aliquet dapibus. Maecenas aliquet elit eu venenatis venenatis. Ut elementum, lacus vel auctor auctor, velit massa elementum ligula, quis elementum ex nisi aliquam mauris. Nulla facilisi. Pellentesque aliquet egestas venenatis. Donec iaculis ultrices laoreet. Vestibulum cursus rhoncus sollicitudin.

    Proin quam libero, bibendum eget sodales id, gravida quis enim. Duis fermentum libero vitae sapien hendrerit, in tincidunt tortor semper. Nullam quam nisi, feugiat sed rutrum vitae, dignissim quis risus. Ut ultricies pellentesque est, ut gravida massa convallis sed. Ut placerat dui non felis interdum, id malesuada nulla ornare. Phasellus volutpat purus placerat velit porta tristique. Donec molestie leo in turpis bibendum pharetra. Fusce fermentum diam vitae neque laoreet, sed aliquam leo sollicitudin.

    Ut facilisis massa arcu, eu suscipit ante varius sed. Morbi augue leo, mattis eu tempor vitae, condimentum sed urna. Curabitur ac blandit orci. Vestibulum quis consequat nunc. Proin imperdiet commodo imperdiet. Aenean mattis augue et imperdiet ultricies. Ut id feugiat nulla, et sollicitudin dui. Etiam scelerisque ligula ac euismod hendrerit. Integer in quam nibh. Pellentesque risus massa, porttitor quis fermentum eu, dictum varius magna. Morbi euismod bibendum lacus efficitur pretium. Phasellus elementum porttitor enim nec dictum. Morbi et augue laoreet, convallis quam quis, egestas quam.`
            }
        }
    }
}