Warning, /frameworks/kirigami/examples/multiplatformnotesapp/NotesGeneral.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 * SPDX-FileCopyrightText: 2016 Marco Martin <mart@kde.org>
0003 *
0004 * SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006
0007 pragma ComponentBehavior: Bound
0008
0009 import QtQuick
0010 import QtQuick.Layouts
0011 import QtQuick.Controls as QQC2
0012 import org.kde.kirigami as Kirigami
0013 import org.kde.kirigami.delegates as KD
0014
0015 Kirigami.ApplicationWindow {
0016 id: root
0017
0018 property string currentFile
0019
0020 pageStack.initialPage: iconView
0021
0022 Kirigami.ScrollablePage {
0023 id: iconView
0024 title: "Notes"
0025 actions: Kirigami.Action {
0026 id: sortAction
0027 icon.name: "view-sort-ascending-symbolic"
0028 tooltip: "Sort Ascending"
0029 }
0030
0031 background: Rectangle {
0032 color: Kirigami.Theme.backgroundColor
0033 }
0034
0035 GridView {
0036 id: view
0037 model: 100
0038 cellWidth: Kirigami.Units.gridUnit * 9
0039 cellHeight: cellWidth
0040 currentIndex: -1
0041 highlightMoveDuration: 0
0042 highlight: Rectangle {
0043 color: Kirigami.Theme.highlightColor
0044 }
0045 delegate: MouseArea {
0046 id: delegate
0047
0048 required property int index
0049 required property int modelData
0050
0051 width: view.cellWidth
0052 height: view.cellHeight
0053 Kirigami.Icon {
0054 source: "text-plain"
0055 anchors {
0056 fill: parent
0057 margins: Kirigami.Units.gridUnit
0058 }
0059 QQC2.Label {
0060 anchors {
0061 top: parent.bottom
0062 horizontalCenter: parent.horizontalCenter
0063 }
0064 text: "File " + delegate.modelData
0065 }
0066 }
0067 onClicked: {
0068 view.currentIndex = index;
0069 root.currentFile = "File " + delegate.modelData;
0070 if (root.pageStack.depth < 2) {
0071 root.pageStack.push(editorComponent);
0072 }
0073 root.pageStack.currentIndex = 1
0074 }
0075 }
0076 }
0077 }
0078
0079 Component {
0080 id: editorComponent
0081 Kirigami.ScrollablePage {
0082 id: editor
0083 title: root.currentFile
0084 actions: [
0085 Kirigami.Action {
0086 id: shareAction
0087 icon.name: "document-share"
0088 text: "Share…"
0089 tooltip: "Share this document with your device"
0090 checked: sheet.visible
0091 checkable: true
0092 onCheckedChanged: checked => {
0093 sheet.visible = checked;
0094 }
0095 },
0096 Kirigami.Action {
0097 icon.name: "format-text-bold-symbolic"
0098 tooltip: "Bold"
0099 },
0100 Kirigami.Action {
0101 icon.name: "format-text-underline-symbolic"
0102 tooltip: "Underline"
0103 },
0104 Kirigami.Action {
0105 icon.name: "format-text-italic-symbolic"
0106 tooltip: "Italic"
0107 }
0108 ]
0109 background: Rectangle {
0110 color: Kirigami.ColorUtils.brightnessForColor(Kirigami.Theme.backgroundColor) === Kirigami.ColorUtils.Light
0111 ? "#F8EBC3" : "#1F2226"
0112 }
0113
0114 Kirigami.OverlaySheet {
0115 id: sheet
0116
0117 parent: root.QQC2.Overlay.overlay
0118
0119 onOpened: forceActiveFocus(Qt.PopupFocusReason)
0120
0121 ListView {
0122 implicitWidth: Kirigami.Units.gridUnit * 30
0123 reuseItems: true
0124 model: ListModel {
0125 ListElement {
0126 title: "Share with phone \"Nokia 3310\""
0127 description: "You selected this phone 12 times before. It's currently connected via bluetooth"
0128 buttonText: "Push Sync"
0129 }
0130 ListElement {
0131 title: "Share with phone \"My other Nexus5\""
0132 description: "You selected this phone 0 times before. It's currently connected to your laptop via Wifi"
0133 buttonText: "Push Sync"
0134 }
0135 ListElement {
0136 title: "Share with NextCloud"
0137 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"
0138 buttonText: "Setup…"
0139 }
0140 ListElement {
0141 title: "Send document via email"
0142 description: "This will send the document as an attached file to your own email for later sync"
0143 buttonText: "Send As Email"
0144 }
0145 }
0146 header: KD.SubtitleDelegate {
0147 hoverEnabled: false
0148 down: false
0149
0150 width: ListView.view?.width
0151
0152 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"
0153
0154 icon.name: "documentinfo"
0155 icon.width: Kirigami.Units.iconSizes.large
0156 icon.height: Kirigami.Units.iconSizes.large
0157 }
0158 delegate: QQC2.ItemDelegate {
0159 id: delegate
0160
0161 required property string title
0162 required property string description
0163 required property string buttonText
0164
0165 hoverEnabled: false
0166 highlighted: false
0167 down: false
0168
0169 width: ListView.view?.width
0170
0171 contentItem: RowLayout {
0172 spacing: Kirigami.Units.smallSpacing
0173 KD.TitleSubtitle {
0174 Layout.fillWidth: true
0175 title: delegate.title
0176 subtitle: delegate.description
0177 }
0178 QQC2.Button {
0179 text: delegate.buttonText
0180 onClicked: sheet.close()
0181 }
0182 }
0183 }
0184 }
0185 }
0186
0187 QQC2.TextArea {
0188 background: null
0189 wrapMode: TextEdit.Wrap
0190 selectByMouse: true
0191 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.
0192
0193 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.
0194
0195 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.
0196
0197 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.
0198
0199 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.`
0200 }
0201 }
0202 }
0203 }