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 }