Warning, /plasma-mobile/calindori/src/contents/ui/IncidencePage.qml is written in an unsupported language. File is not indexed.

0001 /*
0002  * SPDX-FileCopyrightText: 2020 Dimitris Kardarakos <dimkard@posteo.net>
0003  *
0004  * SPDX-License-Identifier: GPL-3.0-or-later
0005  */
0006 
0007 import QtQuick 2.7
0008 import org.kde.kirigami 2.6 as Kirigami
0009 import org.kde.calindori 0.1 as Calindori
0010 
0011 Kirigami.Page {
0012     id: root
0013 
0014     property var incidence
0015     property var calendar
0016     property bool isIncidencePage: true
0017 
0018     title: incidence && incidence.summary
0019     visible: Kirigami.Settings.isMobile || (!Kirigami.Settings.isMobile && !pageStack.lastVisibleItem.hasOwnProperty("isEditorPage"))
0020 
0021     Loader {
0022         anchors.fill: parent
0023         sourceComponent: (incidence && incidence.type === 0) ? eventCard : todoCard
0024     }
0025 
0026     Component {
0027         id: eventCard
0028 
0029         EventCard {
0030             dataModel: root.incidence
0031         }
0032     }
0033 
0034     Component {
0035         id: todoCard
0036 
0037         TodoCard {
0038             dataModel: root.incidence
0039         }
0040     }
0041 
0042     actions.left: Kirigami.Action {
0043         text: i18n("Delete")
0044         enabled: root.state !== "deleting"
0045         icon.name: "delete"
0046 
0047         onTriggered: root.state = "deleting"
0048     }
0049 
0050     actions.right: Kirigami.Action {
0051         text: i18n("Edit")
0052         enabled: root.state !== "deleting"
0053         icon.name: "document-edit"
0054 
0055         onTriggered: pageStack.push(incidence.type === 0 ? eventEditor : todoEditor, { startDt: incidence.dtstart, uid: incidence.uid, incidenceData: incidence })
0056     }
0057 
0058     footer: Kirigami.InlineMessage {
0059         id: deleteMsg
0060 
0061         text: i18n("%1 will be deleted", incidence && incidence.summary)
0062 
0063         actions: [
0064             Kirigami.Action {
0065                 text: i18n("Delete")
0066 
0067                 onTriggered: {
0068                     var incidenceData = {uid: incidence.uid, summary: incidence.summary, type: incidence.type};
0069 
0070                     if(incidenceData.type === 0) {
0071                         Calindori.CalendarController.removeEvent(Calindori.CalendarController.activeCalendar, incidenceData);
0072                     }
0073                     else {
0074                         Calindori.CalendarController.removeTodo(Calindori.CalendarController.activeCalendar, incidenceData);
0075                     }
0076                     root.state = ""
0077                     pageStack.pop(incidencePage);
0078                 }
0079             },
0080 
0081             Kirigami.Action {
0082                 text: i18n("Cancel")
0083 
0084                 onTriggered: root.state = ""
0085             }
0086         ]
0087     }
0088 
0089     states: [
0090         State {
0091             name: ""
0092             PropertyChanges { target: deleteMsg; visible: false }
0093         },
0094         State {
0095             name: "deleting"
0096             PropertyChanges { target: deleteMsg; visible: true }
0097         }
0098     ]
0099 }