Warning, /office/klevernotes/src/contents/ui/todoEditor/TodoDelegate.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-License-Identifier: GPL-2.0-or-later 0002 // SPDX-FileCopyrightText: 2023 Louis Schul <schul9louis@gmail.com> 0003 0004 import QtQuick 2.15 0005 import QtQuick.Layouts 1.15 0006 import QtQuick.Controls 2.15 as Controls 0007 0008 import org.kde.kirigami 2.20 as Kirigami 0009 import org.kde.kirigamiaddons.formcard 1.0 as FormCard 0010 0011 Kirigami.AbstractCard { 0012 id: card 0013 0014 padding: 0 0015 implicitWidth: cardsView.width 0016 0017 contentItem: RowLayout { 0018 spacing: 0 0019 // Tried to used a FormCheckDelegate with a custom trailing, doesn't work :/ 0020 FormCard.AbstractFormDelegate { 0021 id: check 0022 0023 Layout.fillHeight: true 0024 Layout.fillWidth: true 0025 Layout.preferredWidth: parent.width - editButton.width 0026 Layout.alignment: Qt.AlignTop 0027 Layout.margins: 0 0028 0029 contentItem: RowLayout { 0030 Controls.CheckBox { 0031 id: checkbox 0032 0033 checked: todoChecked 0034 Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter 0035 0036 onCheckedChanged: { 0037 todoModel.setProperty(index, "todoChecked", checked) 0038 root.saveTodos() 0039 } 0040 } 0041 0042 ColumnLayout { 0043 Layout.fillWidth: true 0044 Kirigami.Heading { 0045 id: displayTitle 0046 0047 text: todoTitle 0048 level: 1 0049 elide: Text.ElideRight 0050 0051 Layout.fillWidth: true 0052 } 0053 0054 Kirigami.Separator { 0055 id: centralSeperator 0056 0057 Layout.fillWidth: true 0058 } 0059 0060 Controls.Label { 0061 id: descriptionLabel 0062 0063 text: todoDesc 0064 elide: Text.ElideRight 0065 wrapMode: Text.WrapAnywhere 0066 maximumLineCount: 1 0067 0068 // Both are required the center part of the whole delegate goes crazy without this 0069 Layout.fillWidth: true 0070 0071 Behavior on maximumLineCount { 0072 NumberAnimation { duration: Kirigami.Units.shortDuration } 0073 } 0074 } 0075 } 0076 } 0077 0078 onClicked: { 0079 checkbox.checked = !checkbox.checked 0080 } 0081 } 0082 0083 FormCard.AbstractFormDelegate { 0084 id: editButton 0085 0086 Layout.fillHeight: true 0087 Layout.preferredWidth: Kirigami.Units.iconSizes.large 0088 0089 // Can't put the icon directly, won't let me change the size 0090 contentItem: Item { 0091 anchors.fill: parent 0092 Kirigami.Icon { 0093 x: width / 2 0094 y: Math.round((parent.height - width) / 2) 0095 width: Math.round(parent.width / 2) 0096 height: Math.round(parent.width / 2) 0097 0098 source: "edit-entry" 0099 } 0100 } 0101 0102 onClicked: { 0103 todoDialog.callerModelIndex = index 0104 todoDialog.name = displayTitle.text 0105 todoDialog.description = descriptionLabel.text 0106 todoDialog.open() 0107 } 0108 } 0109 } 0110 0111 footer: FormCard.AbstractFormDelegate { 0112 focusPolicy: Qt.StrongFocus 0113 visible: descriptionLabel.truncated || descriptionLabel.maximumLineCount > 1 0114 0115 contentItem: RowLayout { 0116 spacing: 0 0117 0118 FormCard.FormArrow { 0119 direction: descriptionLabel.truncated ? Qt.DownArrow : Qt.UpArrow 0120 Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter 0121 } 0122 } 0123 0124 Accessible.onPressAction: action ? action.trigger() : root.clicked() 0125 0126 onClicked: { 0127 descriptionLabel.maximumLineCount = descriptionLabel.truncated 0128 ? 12 0129 : 1 0130 } 0131 } 0132 }