Warning, /maui/mauikit-calendar/src/controls.5/EventPage.qml is written in an unsupported language. File is not indexed.

0001 import QtQuick 2.15
0002 import QtQml 2.15
0003 import QtQuick.Controls 2.15
0004 import QtQuick.Layouts 1.12
0005 import org.mauikit.controls 1.3 as Maui
0006 import org.mauikit.calendar 1.0 as Cal
0007 
0008 Pane
0009 {
0010 id: control
0011 
0012 implicitHeight: _layout.implicitHeight + topPadding + bottomPadding
0013 
0014 padding: 0
0015 background: null
0016 
0017 property alias incidence : incidenceWrapper
0018 
0019 Cal.IncidenceWrapper
0020 {
0021     id: incidenceWrapper
0022     
0023     onIncidenceStartChanged:
0024     {
0025         incidenceStartDateCombo.selectedDate = control.incidence.incidenceStart;
0026         incidenceStartTimeCombo.selectedTime = incidenceWrapper.incidenceStart;
0027         incidenceStartDateCombo.displayText = incidenceWrapper.incidenceStartDateDisplay;
0028         incidenceStartTimeCombo.displayText = incidenceWrapper.incidenceStartTimeDisplay;
0029     }
0030     
0031     onIncidenceEndChanged:
0032     {
0033         incidenceEndDateCombo.selectedDate = control.incidence.incidenceEnd;
0034         incidenceEndTimeCombo.selectedTime = incidenceWrapper.incidenceEnd;
0035         incidenceEndDateCombo.displayText = incidenceWrapper.incidenceEndDateDisplay;
0036         incidenceEndTimeCombo.displayText = incidenceWrapper.incidenceEndTimeDisplay;
0037     }
0038 }
0039 
0040 
0041 contentItem: ColumnLayout
0042 {
0043     id: _layout
0044  spacing: Maui.Style.space.huge
0045  
0046 Maui.SectionGroup
0047 {
0048     title: i18n("Info")
0049 
0050     Maui.SectionItem
0051     {
0052         label1.text: i18n("Description")
0053 
0054         TextField
0055         {
0056             width: parent.parent.width
0057             height: 80
0058             text: incidenceWrapper.summary
0059                     placeholderText: i18n(`Add a title for your ${incidenceWrapper.incidenceTypeStr.toLowerCase()}`)
0060                     onTextChanged: incidenceWrapper.summary = text
0061                     
0062                     onAccepted : incidenceWrapper.summary = text
0063         }
0064     }
0065 
0066     Maui.SectionItem
0067     {
0068         label1.text: i18n("Calendar")
0069         
0070         ComboBox 
0071         {
0072             id: calendarCombo
0073             width: parent.parent.width
0074             textRole: "display"
0075             valueRole: "collectionColor"
0076             
0077             model: Cal.CollectionComboBoxModel 
0078             {
0079                 id: collectionComboBoxModel
0080                 onCurrentIndexChanged: calendarCombo.currentIndex = currentIndex
0081                 defaultCollectionId: incidenceWrapper.collectionId;
0082                 
0083                 
0084                 mimeTypeFilter: if (incidenceWrapper.incidenceType === Cal.IncidenceWrapper.TypeEvent) 
0085                 {
0086                     return [Cal.MimeTypes.calendar]
0087                 } else if (incidenceWrapper.incidenceType === Cal.IncidenceWrapper.TypeTodo) {
0088                     return [Cal.MimeTypes.todo]
0089                 }
0090                 accessRightsFilter: Cal.Collection.CanCreateItem    
0091             }
0092             
0093             currentIndex: 0
0094             onCurrentIndexChanged: if (currentIndex !== -1) {
0095                 const collection = model.data(model.index(currentIndex, 0), Cal.Collection.CollectionRole);
0096                 if (collection) {
0097                     incidenceWrapper.setCollection(collection)
0098                 }
0099             }
0100           
0101         }
0102     }
0103 }
0104 
0105 
0106 Maui.SectionGroup
0107 {
0108     title: i18n("Time")
0109 
0110     Maui.SectionItem
0111     {
0112         label1.text: i18n("All day")
0113         enabled: !isNaN(incidenceWrapper.incidenceStart.getTime()) || !isNaN(incidenceWrapper.incidenceEnd.getTime())
0114         Switch
0115         {
0116             id: allDayCheckBox
0117             checked: incidenceWrapper.allDay
0118             onToggled: 
0119             {
0120                 if (!checked)
0121                 {
0122                     incidenceWrapper.setIncidenceTimeToNearestQuarterHour();
0123                 }
0124                 incidenceWrapper.allDay = checked;
0125             }
0126         }
0127     }
0128 
0129     Maui.SectionItem
0130     {
0131         label1.text: i18n("Start")
0132 
0133        Column
0134        {
0135            spacing: Maui.Style.space.medium
0136            width: parent.parent.width
0137 
0138            Cal.DateComboBox
0139            {
0140                id: incidenceStartDateCombo  
0141 width: parent.width
0142 displayText: incidenceWrapper.incidenceStartDateDisplay
0143 selectedDate: incidenceWrapper.incidenceStart
0144 onDatePicked: 
0145 {
0146     console.log("DATE PCIKED", date.getDate(), date.getMonth(), date.getYear())
0147     incidenceWrapper.setIncidenceStartDate(date.getDate(), date.getMonth(), date.getYear())
0148 }
0149 
0150            }
0151 
0152            Cal.TimeComboBox
0153            {
0154                id: incidenceStartTimeCombo
0155 width: parent.width
0156 visible: !allDayCheckBox.checked
0157 
0158 timeZoneOffset: incidenceWrapper.startTimeZoneUTCOffsetMins
0159 displayText: incidenceWrapper.incidenceEndTimeDisplay
0160 selectedTime: incidenceWrapper.incidenceStart
0161 onTimePicked:
0162 {
0163     console.log("TIME PICKER", time.getHours(), time.getMinutes())
0164      incidenceWrapper.setIncidenceStartTime(time.getHours(), time.getMinutes())
0165 }
0166            }
0167 
0168        }
0169     }
0170 
0171     Maui.SectionItem
0172     {
0173         label1.text: i18n("End")
0174 
0175         Column
0176         {
0177             spacing: Maui.Style.space.medium
0178             width: parent.parent.width
0179             
0180             Cal.DateComboBox
0181             {
0182                 id: incidenceEndDateCombo  
0183                 width: parent.width
0184                 displayText: incidenceWrapper.incidenceStartDateDisplay
0185                 selectedDate: incidenceWrapper.incidenceStart
0186                 onDatePicked: 
0187                 {
0188                     incidenceWrapper.setIncidenceEndDate(date.getDate(), date.getMonth(), date.getYear())
0189                 }
0190                 
0191             }
0192             
0193             Cal.TimeComboBox
0194             {
0195                 id: incidenceEndTimeCombo
0196                 width: parent.width
0197                 visible: !allDayCheckBox.checked
0198                 timeZoneOffset: incidenceWrapper.endTimeZoneUTCOffsetMins
0199                 displayText: incidenceWrapper.incidenceEndTimeDisplay
0200                 selectedTime: incidenceWrapper.incidenceEnd
0201                 onTimePicked: 
0202                 {
0203                     incidenceWrapper.setIncidenceEndTime(hours, minutes)
0204                 }
0205             }
0206             
0207         }
0208     }
0209 
0210     Maui.SectionItem
0211     {
0212         label1.text: i18n("TimeZone")
0213 
0214         ComboBox
0215         {
0216             width: parent.parent.width
0217             model: Cal.TimeZoneListModel
0218             {
0219                         id: timeZonesModel
0220             }
0221             
0222               textRole: "display"
0223                     valueRole: "id"
0224                     currentIndex: model ? timeZonesModel.getTimeZoneRow(incidenceWrapper.timeZone) : -1
0225                     
0226                             onActivated: incidenceWrapper.timeZone =  currentValue
0227         }
0228     }
0229 }
0230 }
0231 
0232 }