Warning, /utilities/kongress/src/contents/ui/EventInfo.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 QtQuick.Controls 2.4 as Controls2
0009 import QtQuick.Layouts 1.11
0010 import org.kde.kirigami 2.4 as Kirigami
0011 import org.kde.kongress 0.1 as Kongress
0012 
0013 Kirigami.ScrollablePage {
0014     id: root
0015 
0016     property var event
0017     property string viewMode
0018     property var rwCalendar
0019 
0020     title: root.event ? event.summary : ""
0021 
0022     actions: [
0023         Kirigami.Action {
0024             text: i18n("Web Page")
0025             icon.name: "internet-services"
0026             enabled: root.event.url !== ""
0027 
0028             onTriggered: {
0029                 if(root.event && (root.event.url)) {
0030                     Qt.openUrlExternally(event.url);
0031                 }
0032             }
0033         },
0034         Kirigami.Action {
0035             text: viewMode === "favorites" ? i18n("Delete") : i18n("Favorite")
0036             icon.name: viewMode === "favorites" ? "delete" : "favorite"
0037 
0038             onTriggered: {
0039                 if(root.event && root.viewMode === "favorites") {
0040                     var vevent = { uid: root.event.uid } ;
0041                     Kongress.EventController.remove(root.rwCalendar, vevent);
0042                     pageStack.pop();
0043                 }
0044                 else if(root.event) {
0045                     var vevent = { "uid" : event.uid, "startDate": event.scheduleStartDt, "summary": event.summary, "description": event.description, "allDay": event.allDay, "location": event.location, "endDate": event.scheduleEndDt, "categories": event.eventCategories, "url": event.url /*"alarms": incidenceAlarmsModel.alarms()*/};
0046 
0047                     var addEditResult = Kongress.EventController.addEdit(root.rwCalendar, vevent);
0048                     showPassiveNotification(addEditResult["message"]);
0049 
0050                 }
0051             }
0052         }
0053     ]
0054 
0055     Kirigami.AbstractCard {
0056         id: cardDelegate
0057 
0058         visible: root.event
0059         header: Kirigami.Heading {
0060             text: root.event ? event.summary : ""
0061             wrapMode: Text.WordWrap
0062         }
0063 
0064         contentItem: Column {
0065             spacing: Kirigami.Units.largeSpacing
0066             topPadding: 0
0067             bottomPadding: 0
0068             visible: root.event
0069 
0070             RowLayout {
0071                 width: cardDelegate.availableWidth
0072                 spacing: Kirigami.Units.smallSpacing
0073 
0074                 Kirigami.Icon {
0075                     source: "view-calendar-day"
0076                     width: Kirigami.Units.iconSizes.small
0077                     height: width
0078                 }
0079 
0080                 Controls2.Label {
0081 
0082                     wrapMode: Text.WordWrap
0083                     text: {
0084                         if (viewMode === "favorites") {
0085                             if (Kongress.SettingsController.displayInLocalTimezone) {
0086                                 return event.startEndDtLocal;
0087                             }
0088                             else {
0089                                 return event.startEndDt;
0090                             }
0091                         }
0092                         else {
0093                             if (Kongress.SettingsController.displayInLocalTimezone) {
0094                                 return event.shiftedStartEndDtLocal;
0095                             }
0096                             else {
0097                                 return event.shiftedStartEndDt;
0098                             }
0099                         }
0100                     }
0101                     Layout.fillWidth: true
0102                 }
0103             }
0104 
0105             RowLayout {
0106                 visible: root.event && (event.location !== "")
0107                 width: cardDelegate.availableWidth
0108                 spacing: Kirigami.Units.smallSpacing
0109 
0110                 Kirigami.Icon {
0111                     source: "find-location"
0112                     width: Kirigami.Units.iconSizes.small
0113                     height: width
0114                 }
0115 
0116                 Controls2.Label {
0117                     wrapMode: Text.WordWrap
0118                     text:  root.event ? event.location : ""
0119                     Layout.fillWidth: true
0120                 }
0121             }
0122 
0123             RowLayout {
0124                 visible: root.event && (event.eventCategories !== "")
0125                 width: cardDelegate.availableWidth
0126                 spacing: Kirigami.Units.smallSpacing
0127 
0128                 Kirigami.Icon {
0129                     source: "category"
0130                     width: Kirigami.Units.iconSizes.small
0131                     height: width
0132                 }
0133 
0134                 Controls2.Label {
0135                     wrapMode: Text.WordWrap
0136                     text: root.event ? event.eventCategories : ""
0137                     Layout.fillWidth: true
0138                 }
0139             }
0140 
0141             Controls2.Label {
0142                 visible: root.event && event.description !== ""
0143                 width: cardDelegate.availableWidth
0144                 wrapMode: Text.WordWrap
0145                 text: root.event ? event.description : ""
0146             }
0147         }
0148     }
0149 }