42
42
property alias scrollY: flickable.contentY
43
43
property bool isEdit: false
45
signal eventAdded(var event);
47
45
onStartDateChanged: {
48
startDateTimeInput.dateTime = startDate;
46
startDateInput.text = startDate.toLocaleDateString();
47
startTimeInput.text = Qt.formatTime(startDate);
49
48
adjustEndDateToStartDate()
52
51
onEndDateChanged: {
53
endDateTimeInput.dateTime = endDate;
52
endDateInput.text = endDate.toLocaleDateString();
53
endTimeInput.text = Qt.formatTime(endDate);
56
56
head.actions: Action {
65
65
//If current date is setted by an argument we don't have to change it.
66
66
if(typeof(date) === 'undefined'){
70
if( typeof(date) == 'undefined' || (date.getHours() == 0 && date.getMinutes() == 0) ) {
71
68
var newDate = new Date();
72
69
date.setHours(newDate.getHours(), newDate.getMinutes());
167
163
if ( startDate >= endDate && !allDayEventCheckbox.checked) {
168
164
PopupUtils.open(errorDlgComponent,root,{"text":i18n.tr("End time can't be before start time")});
170
var newCollection = calendarsOption.model[calendarsOption.selectedIndex].collectionId;
171
if( internal.collectionId !== newCollection ){
172
//collection change to event is not suported
173
//to change collection we create new event with same data with different collection
174
//and remove old event
175
var eventId = event.itemId;
176
model.removeItem(event.itemId)
177
event = Qt.createQmlObject("import QtOrganizer 5.0; Event {}", Qt.application,"NewEvent.qml");
180
166
event.startDateTime = startDate;
181
167
event.endDateTime = endDate;
182
168
event.displayLabel = titleEdit.text;
195
181
event.attendees = contacts;
198
183
//Set the Rule object to an event
199
if(rule !== null && rule !== undefined) {
200
event.recurrence.recurrenceRules = [rule]
184
if(rule !== null && rule !== undefined)
185
event.recurrence.recurrenceRules= [rule]
203
186
//remove old reminder value
204
187
var oldVisualReminder = event.detail(Detail.VisualReminder);
205
188
if(oldVisualReminder) {
247
229
return daysOfWeek;
232
function openDatePicker (element, caller, callerProperty, mode) {
233
element.highlighted = true;
234
var picker = PickerPanel.openDatePicker(caller, callerProperty, mode);
236
picker.closed.connect(function () {
237
element.highlighted = false;
250
241
// Calucate default hour and minute for start and end time on event
251
242
function roundDate(date) {
252
243
var tempDate = new Date(date)
253
tempDate.setHours(date.getHours(), date.getMinutes(), 0, 0);
254
244
if(tempDate.getMinutes() < 30)
255
245
return tempDate.setMinutes(30)
256
246
tempDate.setMinutes(0)
347
337
width: parent.width
350
id: startDateTimeInput
351
header: i18n.tr("From")
352
showTimePicker: !allDayEventCheckbox.checked
358
startDate = dateTime;
364
header: i18n.tr("To")
365
showTimePicker: !allDayEventCheckbox.checked
340
text: i18n.tr("From")
350
height: startDateInput.height
354
objectName: "startDateInput"
357
anchors.left: parent.left
358
width: allDayEventCheckbox.checked ? parent.width : 4 * parent.width / 5
362
onClicked: openDatePicker(startDateInput, root, "startDate", "Years|Months|Days")
368
objectName: "startTimeInput"
371
anchors.right: parent.right
372
width: parent.width / 5
373
visible: !allDayEventCheckbox.checked
374
horizontalAlignment: Text.AlignRight
378
onClicked: openDatePicker(startTimeInput, root, "startDate", "Hours|Minutes")
394
height: endDateInput.height
398
objectName: "endDateInput"
401
anchors.left: parent.left
402
width: allDayEventCheckbox.checked ? parent.width : 4 * parent.width / 5
406
onClicked: openDatePicker(endDateInput, root, "endDate", "Years|Months|Days")
412
objectName: "endTimeInput"
414
width: parent.width / 5
415
visible: !allDayEventCheckbox.checked
416
anchors.right: parent.right
417
horizontalAlignment: Text.AlignRight
421
onClicked: openDatePicker(endTimeInput, root, "endDate", "Hours|Minutes")
622
property var collectionId;
624
675
function clearFocus() {
625
676
Qt.inputMethod.hide()
626
677
titleEdit.focus = false
627
678
locationEdit.focus = false
628
startDateTimeInput.clearFocus();
629
endDateTimeInput.clearFocus();
679
startDateInput.focus = false
680
startTimeInput.focus = false
681
endDateInput.focus = false
682
endTimeInput.focus = false
630
683
messageEdit.focus = false