~pkunal-parmar/ubuntu-calendar-app/ICalImport

« back to all changes in this revision

Viewing changes to NewEvent.qml

  • Committer: Kunal Parmar
  • Date: 2014-10-20 15:24:00 UTC
  • mto: This revision was merged to the branch mainline in revision 510.
  • Revision ID: pkunal.parmar@gmail.com-20141020152400-qmnaosfevqpior9h
removed commented out code

Show diffs side-by-side

added added

removed removed

Lines of Context:
42
42
    property alias scrollY: flickable.contentY
43
43
    property bool isEdit: false
44
44
 
45
 
    signal eventAdded(var event);
46
 
 
47
45
    onStartDateChanged: {
48
 
        startDateTimeInput.dateTime = startDate;
 
46
        startDateInput.text = startDate.toLocaleDateString();
 
47
        startTimeInput.text = Qt.formatTime(startDate);
49
48
        adjustEndDateToStartDate()
50
49
    }
51
50
 
52
51
    onEndDateChanged: {
53
 
        endDateTimeInput.dateTime = endDate;
 
52
        endDateInput.text = endDate.toLocaleDateString();
 
53
        endTimeInput.text = Qt.formatTime(endDate);
54
54
    }
55
55
 
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'){
67
67
            date = new Date();
68
 
        }
69
 
 
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());
73
70
        }
104
101
            }
105
102
        }
106
103
        calendarsOption.selectedIndex = index
107
 
        internal.collectionId = collectionId;
108
104
    }
109
105
 
110
106
    //Data for Add events
167
163
        if ( startDate >= endDate && !allDayEventCheckbox.checked) {
168
164
            PopupUtils.open(errorDlgComponent,root,{"text":i18n.tr("End time can't be before start time")});
169
165
        } else {
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");
178
 
            }
179
 
 
180
166
            event.startDateTime = startDate;
181
167
            event.endDateTime = endDate;
182
168
            event.displayLabel = titleEdit.text;
194
180
                }
195
181
                event.attendees = contacts;
196
182
            }
197
 
 
198
183
            //Set the Rule object to an event
199
 
            if(rule !== null && rule !== undefined) {
200
 
                event.recurrence.recurrenceRules = [rule]
201
 
            }
202
 
 
 
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) {
217
200
            event.collectionId = calendarsOption.model[calendarsOption.selectedIndex].collectionId;
218
201
            model.saveItem(event);
219
202
            pageStack.pop();
220
 
            root.eventAdded(event);
221
203
        }
222
204
    }
223
205
 
247
229
        return daysOfWeek;
248
230
    }
249
231
 
 
232
    function openDatePicker (element, caller, callerProperty, mode) {
 
233
        element.highlighted = true;
 
234
        var picker = PickerPanel.openDatePicker(caller, callerProperty, mode);
 
235
        if (!picker) return;
 
236
        picker.closed.connect(function () {
 
237
            element.highlighted = false;
 
238
        });
 
239
    }
 
240
 
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)
346
336
 
347
337
            width: parent.width
348
338
 
349
 
            NewEventTimePicker{
350
 
                id: startDateTimeInput
351
 
                header: i18n.tr("From")
352
 
                showTimePicker: !allDayEventCheckbox.checked
353
 
                anchors {
354
 
                    left: parent.left
355
 
                    right: parent.right
356
 
                }
357
 
                onDateTimeChanged: {
358
 
                    startDate = dateTime;
359
 
                }
360
 
            }
361
 
 
362
 
            NewEventTimePicker{
363
 
                id: endDateTimeInput
364
 
                header: i18n.tr("To")
365
 
                showTimePicker: !allDayEventCheckbox.checked
366
 
                anchors {
367
 
                    left: parent.left
368
 
                    right: parent.right
369
 
                }
370
 
                onDateTimeChanged: {
371
 
                    endDate = dateTime;
 
339
            ListItem.Header {
 
340
                text: i18n.tr("From")
 
341
            }
 
342
 
 
343
            Item {
 
344
                anchors {
 
345
                    left: parent.left
 
346
                    right: parent.right
 
347
                    margins: units.gu(2)
 
348
                }
 
349
 
 
350
                height: startDateInput.height
 
351
 
 
352
                NewEventEntryField{
 
353
                    id: startDateInput
 
354
                    objectName: "startDateInput"
 
355
 
 
356
                    text: ""
 
357
                    anchors.left: parent.left
 
358
                    width: allDayEventCheckbox.checked ? parent.width : 4 * parent.width / 5
 
359
 
 
360
                    MouseArea{
 
361
                        anchors.fill: parent
 
362
                        onClicked: openDatePicker(startDateInput, root, "startDate", "Years|Months|Days")
 
363
                    }
 
364
                }
 
365
 
 
366
                NewEventEntryField{
 
367
                    id: startTimeInput
 
368
                    objectName: "startTimeInput"
 
369
 
 
370
                    text: ""
 
371
                    anchors.right: parent.right
 
372
                    width: parent.width / 5
 
373
                    visible: !allDayEventCheckbox.checked
 
374
                    horizontalAlignment: Text.AlignRight
 
375
 
 
376
                    MouseArea{
 
377
                        anchors.fill: parent
 
378
                        onClicked: openDatePicker(startTimeInput, root, "startDate", "Hours|Minutes")
 
379
                    }
 
380
                }
 
381
            }
 
382
 
 
383
            ListItem.Header {
 
384
                text: i18n.tr("To")
 
385
            }
 
386
 
 
387
            Item {
 
388
                anchors {
 
389
                    left: parent.left
 
390
                    right: parent.right
 
391
                    margins: units.gu(2)
 
392
                }
 
393
 
 
394
                height: endDateInput.height
 
395
 
 
396
                NewEventEntryField{
 
397
                    id: endDateInput
 
398
                    objectName: "endDateInput"
 
399
 
 
400
                    text: ""
 
401
                    anchors.left: parent.left
 
402
                    width: allDayEventCheckbox.checked ? parent.width : 4 * parent.width / 5
 
403
 
 
404
                    MouseArea{
 
405
                        anchors.fill: parent
 
406
                        onClicked: openDatePicker(endDateInput, root, "endDate", "Years|Months|Days")
 
407
                    }
 
408
                }
 
409
 
 
410
                NewEventEntryField{
 
411
                    id: endTimeInput
 
412
                    objectName: "endTimeInput"
 
413
                    text: ""
 
414
                    width: parent.width / 5
 
415
                    visible: !allDayEventCheckbox.checked
 
416
                    anchors.right: parent.right
 
417
                    horizontalAlignment: Text.AlignRight
 
418
 
 
419
                    MouseArea{
 
420
                        anchors.fill: parent
 
421
                        onClicked: openDatePicker(endTimeInput, root, "endDate", "Hours|Minutes")
 
422
                    }
372
423
                }
373
424
            }
374
425
 
376
427
                anchors {
377
428
                    left: parent.left
378
429
                    right: parent.right
 
430
                    leftMargin: units.gu(-1)
379
431
                }
380
432
 
381
433
                text: i18n.tr("All day event")
382
434
                showDivider: false
383
435
                control: CheckBox {
384
 
                    objectName: "allDayEventCheckbox"
385
436
                    id: allDayEventCheckbox
386
437
                    checked: false
387
438
                }
556
607
 
557
608
                anchors {
558
609
                    left: parent.left
 
610
                    leftMargin: units.gu(-1)
559
611
                }
560
612
 
561
613
                showDivider: false
576
628
 
577
629
                anchors{
578
630
                    left:parent.left
 
631
                    leftMargin: units.gu(-1)
579
632
                }
580
633
                showDivider: false
581
634
                progression: true
619
672
 
620
673
    QtObject {
621
674
        id: internal
622
 
        property var collectionId;
623
 
 
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
631
684
        }
632
685