Warning, /pim/kube/framework/qml/mailpartview/ICalPart.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 Copyright (C) 2019 Christian Mollekopf, <mollekopf@kolabsys.com> 0003 0004 This program is free software; you can redistribute it and/or modify 0005 it under the terms of the GNU General Public License as published by 0006 the Free Software Foundation; either version 2 of the License, or 0007 (at your option) any later version. 0008 0009 This program is distributed in the hope that it will be useful, 0010 but WITHOUT ANY WARRANTY; without even the implied warranty of 0011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0012 GNU General Public License for more details. 0013 0014 You should have received a copy of the GNU General Public License along 0015 with this program; if not, write to the Free Software Foundation, Inc., 0016 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 0017 */ 0018 0019 import QtQuick 2.7 0020 import QtQuick.Controls 2 0021 import QtQuick.Layouts 1 0022 0023 import org.kube.framework 1.0 as Kube 0024 0025 Item { 0026 id: root 0027 0028 property string content 0029 property bool autoLoadImages: false 0030 0031 property string searchString 0032 property int contentHeight: childrenRect.height 0033 0034 Kube.InvitationController { 0035 id: controller 0036 Component.onCompleted: loadICal(content) 0037 } 0038 0039 states: [ 0040 State { 0041 name: "exceptioncancelled" 0042 extend: "cancelled" 0043 when: controller.method == Kube.InvitationController.Cancel && !isNaN(controller.recurrenceId) 0044 PropertyChanges {target: label; visible: true; text: qsTr("This is an exception for the event originally occurring at: \"%1\"").arg(controller.recurrenceId.toLocaleString(Qt.locale(), "dd. MMMM hh:mm"))} 0045 }, 0046 State { 0047 name: "cancelledaccepted" 0048 extend: "cancelled" 0049 when: controller.method == Kube.InvitationController.Cancel && controller.state == Kube.InvitationController.Accepted 0050 PropertyChanges {target: buttons; visible: false} 0051 }, 0052 State { 0053 name: "cancelled" 0054 when: controller.method == Kube.InvitationController.Cancel 0055 PropertyChanges {target: heading; text: qsTr("\"%1\" has been cancelled.").arg(controller.summary)} 0056 }, 0057 State { 0058 name: "replyAccepted" 0059 when: controller.method == Kube.InvitationController.Reply && controller.state == Kube.InvitationController.Accepted 0060 PropertyChanges {target: heading; text: qsTr("%1 has accepted: \"%2\"").arg(controller.name).arg(controller.summary)} 0061 PropertyChanges {target: buttons; visible: false} 0062 }, 0063 State { 0064 name: "replyDeclined" 0065 when: controller.method == Kube.InvitationController.Reply && controller.state == Kube.InvitationController.Declined 0066 PropertyChanges {target: heading; text: qsTr("%1 has declined: \"%2\"").arg(controller.name).arg(controller.summary)} 0067 PropertyChanges {target: buttons; visible: false} 0068 }, 0069 State { 0070 name: "replyUnknown" 0071 when: controller.method == Kube.InvitationController.Reply && controller.state == Kube.InvitationController.Unknown 0072 PropertyChanges {target: heading; text: qsTr("%1 doesn't yet know about: \"%2\"").arg(controller.name).arg(controller.summary)} 0073 PropertyChanges {target: buttons; visible: false} 0074 }, 0075 State { 0076 name: "updatedexception" 0077 extend: "updated" 0078 when: controller.method == Kube.InvitationController.Request && controller.eventState == Kube.InvitationController.Update && !isNaN(controller.recurrenceId) 0079 PropertyChanges {target: label; visible: true; text: qsTr("This is an exception for the event originally occurring at: \"%1\"").arg(controller.recurrenceId.toLocaleString(Qt.locale(), "dd. MMMM hh:mm"))} 0080 }, 0081 State { 0082 name: "updated" 0083 when: controller.method == Kube.InvitationController.Request && controller.eventState == Kube.InvitationController.Update 0084 PropertyChanges {target: heading; text: qsTr("The invitation has been updated: \"%1\"").arg(controller.summary)} 0085 }, 0086 State { 0087 name: "accepted" 0088 when: controller.method == Kube.InvitationController.Request && controller.state == Kube.InvitationController.Accepted 0089 PropertyChanges {target: heading; text: qsTr("You have accepted: \"%1\"").arg(controller.summary)} 0090 PropertyChanges {target: buttons; visible: false} 0091 }, 0092 State { 0093 name: "declined" 0094 when: controller.method == Kube.InvitationController.Request && controller.state == Kube.InvitationController.Declined 0095 PropertyChanges {target: heading; text: qsTr("You have declined: \"%1\"").arg(controller.summary)} 0096 PropertyChanges {target: buttons; visible: false} 0097 }, 0098 State { 0099 name: "invited" 0100 when: controller.method == Kube.InvitationController.Request && controller.state == Kube.InvitationController.Unknown 0101 PropertyChanges {target: heading; text: qsTr("You've been invited to: \"%1\"").arg(controller.summary)} 0102 }, 0103 State { 0104 name: "notinvited" 0105 when: controller.method == Kube.InvitationController.Request && controller.state == Kube.InvitationController.NoMatch 0106 PropertyChanges {target: heading; text: qsTr("You are not listed as attendee to: \"%1\"").arg(controller.summary)} 0107 PropertyChanges {target: buttons; visible: false} 0108 } 0109 ] 0110 0111 ColumnLayout { 0112 anchors { 0113 left: parent.left 0114 right: parent.right 0115 } 0116 spacing: Kube.Units.smallSpacing 0117 0118 Kube.Heading { 0119 id: heading 0120 elide: Text.ElideRight 0121 Layout.fillWidth: true 0122 } 0123 0124 Kube.Label { 0125 id: label 0126 visible: false 0127 elide: Text.ElideRight 0128 Layout.fillWidth: true 0129 } 0130 0131 Kube.SelectableLabel { 0132 Layout.fillWidth: true 0133 visible: controller.allDay 0134 text: controller.start.toLocaleString(Qt.locale(), "dd. MMMM") + (/*DateUtils.sameDay(controller.start, controller.end)*/ true ? "" : " - " + controller.end.toLocaleString(Qt.locale(), "dd. MMMM")) 0135 elide: Text.ElideRight 0136 } 0137 0138 Kube.SelectableLabel { 0139 Layout.fillWidth: true 0140 visible: !controller.allDay 0141 text: controller.start.toLocaleString(Qt.locale(), "dd. MMMM hh:mm") + " - " + (/*DateUtils.sameDay(controller.start, controller.end)*/ true ? controller.end.toLocaleString(Qt.locale(), "hh:mm") : controller.end.toLocaleString(Qt.locale(), "dd. MMMM hh:mm")) 0142 elide: Text.ElideRight 0143 } 0144 0145 RowLayout { 0146 id: buttons 0147 spacing: Kube.Units.smallSpacing 0148 Layout.fillWidth: true 0149 0150 Kube.Button { 0151 text: qsTr("Decline") 0152 onClicked: { 0153 controller.declineAction.execute() 0154 } 0155 } 0156 0157 Kube.PositiveButton { 0158 text: qsTr("Accept") 0159 onClicked: { 0160 controller.acceptAction.execute() 0161 } 0162 } 0163 0164 Kube.Label { 0165 text: qsTr("in") 0166 } 0167 0168 Kube.EntityComboBox { 0169 id: calendarSelector 0170 Layout.fillWidth: true 0171 accountId: Kube.Context.currentAccountId 0172 type: "calendar" 0173 filter: {"contentTypes": "event", "enabled": true} 0174 onSelected: { 0175 if (entity) { 0176 controller.calendar = entity 0177 } 0178 } 0179 } 0180 0181 } 0182 0183 } 0184 0185 }