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 }