~majster-pl/ubuntu-calendar-app/new-event-page

« back to all changes in this revision

Viewing changes to EventRepetition.qml

  • Committer: Szymon Waliczek
  • Date: 2016-03-15 21:24:41 UTC
  • Revision ID: majsterrr@gmail.com-20160315212441-fr9s45dntm0gvvot

Added Flickable to EventRepetition.qml and fixed anchoring to header.
Removed unnecessary empty lanes and code clean up.

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
    property var isEdit
34
34
 
35
35
    visible: false
36
 
    // TRANSLATORS: this refers to how often a recurrent event repeats
37
 
    // and it is shown as the header of the page to choose repetition
38
 
    // and as the header of the list item that shows the repetition
39
 
    // summary in the page that displays the event details
40
 
//    title:
41
 
 
42
36
    header: PageHeader {
 
37
        // TRANSLATORS: this refers to how often a recurrent event repeats
 
38
        // and it is shown as the header of the page to choose repetition
 
39
        // and as the header of the list item that shows the repetition
 
40
        // summary in the page that displays the event details
43
41
        title: i18n.tr("Repeat")
 
42
        flickable: null
44
43
 
45
44
        leadingActionBar.actions: [
46
45
            Action {
154
153
        pop()
155
154
    }
156
155
 
157
 
 
158
 
    Column{
159
 
        id:repeatColumn
160
 
 
161
 
        anchors {
162
 
            top: root.header.bottom
163
 
            bottom: root.bottom
164
 
            left: root.left
165
 
            right: root.right
166
 
        }
167
 
 
168
 
        spacing: units.gu(1)
169
 
 
170
 
        ListItem {
171
 
            height: repeatListItem.height
172
 
            divider.visible: false
173
 
 
174
 
            ListItemLayout {
175
 
                id: repeatListItem
176
 
                title.text: i18n.tr("Repeat")
177
 
                title.color: Theme.palette.selected.overlayText
178
 
            }
179
 
        }
180
 
 
181
 
        OptionSelector{
182
 
            id: recurrenceOption
183
 
            visible: true
184
 
 
185
 
            anchors {
186
 
                left: parent.left
187
 
                right: parent.right
188
 
                margins: units.gu(2)
189
 
            }
190
 
 
191
 
            model: Defines.recurrenceLabel
192
 
            containerHeight: itemHeight * 4
193
 
            onExpandedChanged: Qt.inputMethod.hide();
194
 
        }
195
 
 
196
 
        ListItem {
197
 
            visible: recurrenceOption.selectedIndex == 5
198
 
            height: repeatsOnListItem.height
199
 
            divider.visible: false
200
 
 
201
 
            ListItemLayout {
202
 
                id: repeatsOnListItem
203
 
                title.text: i18n.tr("Repeats On:")
204
 
                title.color: Theme.palette.selected.overlayText
205
 
            }
206
 
        }
207
 
 
208
 
        Row {
209
 
            id: weeksRow
210
 
 
211
 
            anchors {
212
 
                left: parent.left
213
 
                right: parent.right
214
 
                margins: units.gu(2)
215
 
            }
216
 
 
 
156
    Flickable {
 
157
        anchors { fill: parent; topMargin: parent.header.height }
 
158
        contentHeight: repeatColumn.height + units.gu(2)
 
159
        interactive: repeatColumn.height > height ? true : false
 
160
        Column{
 
161
            id:repeatColumn
 
162
 
 
163
            width: parent.width
217
164
            spacing: units.gu(1)
218
 
            visible: recurrenceOption.selectedIndex == 5
219
 
 
220
 
            Repeater {
221
 
                model: Defines.weekLabel
222
 
                Column {
223
 
                    id: weeksRowColumn
224
 
                    spacing: units.gu(1)
225
 
                    Label {
226
 
                        id:lbl
227
 
                        text:modelData
228
 
                        anchors.horizontalCenter: parent.horizontalCenter
229
 
                    }
230
 
                    CheckBox {
231
 
                        id: weekCheck
232
 
                        onCheckedChanged: {
233
 
                            //EDS consider 7 as Sunday index so if the index is 0 then we have to explicitly push Sunday.
234
 
                            if(index === 0)
235
 
                                (checked) ? weekDays.push(Qt.Sunday) : weekDays.splice(weekDays.indexOf(Qt.Sunday),1);
236
 
                            else
237
 
                                (checked) ? weekDays.push(index) : weekDays.splice(weekDays.indexOf(index),1);
238
 
                        }
239
 
                        checked:{
240
 
                            (weekDays.length === 0 && eventRoot.date && (index === eventRoot.date.getDay()) && !isEdit) ? true : false;
241
 
                        }
242
 
 
243
 
                    }
244
 
                }
245
 
            }
246
 
        }
247
 
 
248
 
        ListItem {
249
 
            visible: recurrenceOption.selectedIndex != 0
250
 
            divider.visible: false
251
 
            height: recurringEventListItem.height
252
 
 
253
 
            ListItemLayout {
254
 
                id: recurringEventListItem
255
 
                title.text: i18n.tr("Recurring event ends")
256
 
                title.color: Theme.palette.selected.overlayText
257
 
            }
258
 
        }
259
 
 
260
 
        OptionSelector{
261
 
            id: limitOptions
262
 
            visible: recurrenceOption.selectedIndex != 0
263
 
 
264
 
            anchors {
265
 
                left: parent.left
266
 
                right: parent.right
267
 
                margins: units.gu(2)
268
 
            }
269
 
 
270
 
            model: limitLabels
271
 
            containerHeight: itemHeight * 4
272
 
            onExpandedChanged:   Qt.inputMethod.hide()
273
 
        }
274
 
 
275
 
        ListItem {
276
 
            visible: recurrenceOption.selectedIndex != 0
277
 
                     && limitOptions.selectedIndex == 1
278
 
            divider.visible: false
279
 
            height: repeatsListItem.height
280
 
 
281
 
            ListItemLayout {
282
 
                id: repeatsListItem
283
 
                // TRANSLATORS: this refers to how often a recurrent event repeats
284
 
                // and it is shown as the header of the option selector to choose
285
 
                // its repetition
286
 
                title.text:i18n.tr("Repeats")
287
 
                title.color: Theme.palette.selected.overlayText
288
 
            }
289
 
 
290
 
        }
291
 
 
292
 
        TextField {
293
 
            id: limitCount
294
 
            objectName: "eventLimitCount"
295
 
 
296
 
            anchors {
297
 
                left: parent.left
298
 
                right: parent.right
299
 
                margins: units.gu(2)
300
 
            }
301
 
 
302
 
            visible: recurrenceOption.selectedIndex != 0 && limitOptions.selectedIndex == 1
303
 
            validator: IntValidator{ bottom: 1; }
304
 
            inputMethodHints: Qt.ImhDialableCharactersOnly
305
 
 
306
 
            onTextChanged: {
307
 
                backAction.enabled = !!text.trim()
308
 
            }
309
 
        }
310
 
 
311
 
        ListItem {
312
 
            visible: recurrenceOption.selectedIndex != 0 && limitOptions.selectedIndex == 2
313
 
            divider.visible: false
314
 
            height: dateListItem.height
315
 
 
316
 
            ListItemLayout {
317
 
                id: dateListItem
318
 
                title.text:i18n.tr("Date")
319
 
                title.color: Theme.palette.selected.overlayText
320
 
            }
321
 
        }
322
 
 
323
 
        DatePicker{
324
 
            id:datePick;
325
 
 
326
 
            anchors {
327
 
                left: parent.left
328
 
                right: parent.right
329
 
                margins: units.gu(2)
330
 
            }
331
 
 
332
 
            visible: recurrenceOption.selectedIndex != 0 && limitOptions.selectedIndex===2
 
165
 
 
166
            ListItem {
 
167
                height: repeatListItem.height
 
168
                divider.visible: false
 
169
 
 
170
                ListItemLayout {
 
171
                    id: repeatListItem
 
172
                    title.text: i18n.tr("Repeat")
 
173
                    title.color: Theme.palette.selected.overlayText
 
174
                }
 
175
            }
 
176
 
 
177
            OptionSelector{
 
178
                id: recurrenceOption
 
179
                visible: true
 
180
 
 
181
                anchors {
 
182
                    left: parent.left
 
183
                    right: parent.right
 
184
                    margins: units.gu(2)
 
185
                }
 
186
 
 
187
                model: Defines.recurrenceLabel
 
188
                containerHeight: itemHeight * 4
 
189
                onExpandedChanged: Qt.inputMethod.hide();
 
190
            }
 
191
 
 
192
            ListItem {
 
193
                visible: recurrenceOption.selectedIndex == 5
 
194
                divider.visible: false
 
195
 
 
196
                ListItemLayout {
 
197
                    id: repeatsOnListItem
 
198
                    title.text: i18n.tr("Repeats On:")
 
199
                    title.color: Theme.palette.selected.overlayText
 
200
                }
 
201
            }
 
202
 
 
203
            Row {
 
204
                id: weeksRow
 
205
 
 
206
                anchors {
 
207
                    left: parent.left
 
208
                    right: parent.right
 
209
                    margins: units.gu(2)
 
210
                }
 
211
 
 
212
                spacing: units.gu(1)
 
213
                visible: recurrenceOption.selectedIndex == 5
 
214
 
 
215
                Repeater {
 
216
                    model: Defines.weekLabel
 
217
                    Column {
 
218
                        id: weeksRowColumn
 
219
                        spacing: units.gu(1)
 
220
                        Label {
 
221
                            id:lbl
 
222
                            text:modelData
 
223
                            anchors.horizontalCenter: parent.horizontalCenter
 
224
                        }
 
225
                        CheckBox {
 
226
                            id: weekCheck
 
227
                            onCheckedChanged: {
 
228
                                //EDS consider 7 as Sunday index so if the index is 0 then we have to explicitly push Sunday.
 
229
                                if(index === 0)
 
230
                                    (checked) ? weekDays.push(Qt.Sunday) : weekDays.splice(weekDays.indexOf(Qt.Sunday),1);
 
231
                                else
 
232
                                    (checked) ? weekDays.push(index) : weekDays.splice(weekDays.indexOf(index),1);
 
233
                            }
 
234
                            checked:{
 
235
                                (weekDays.length === 0 && eventRoot.date && (index === eventRoot.date.getDay()) && !isEdit) ? true : false;
 
236
                            }
 
237
 
 
238
                        }
 
239
                    }
 
240
                }
 
241
            }
 
242
 
 
243
            ListItem {
 
244
                visible: recurrenceOption.selectedIndex != 0
 
245
                divider.visible: false
 
246
                height: recurringEventListItem.height
 
247
 
 
248
                ListItemLayout {
 
249
                    id: recurringEventListItem
 
250
                    title.text: i18n.tr("Recurring event ends")
 
251
                    title.color: Theme.palette.selected.overlayText
 
252
                }
 
253
            }
 
254
 
 
255
            OptionSelector{
 
256
                id: limitOptions
 
257
                visible: recurrenceOption.selectedIndex != 0
 
258
 
 
259
                anchors {
 
260
                    left: parent.left
 
261
                    right: parent.right
 
262
                    margins: units.gu(2)
 
263
                }
 
264
 
 
265
                model: limitLabels
 
266
                containerHeight: itemHeight * 4
 
267
                onExpandedChanged:   Qt.inputMethod.hide()
 
268
            }
 
269
 
 
270
            ListItem {
 
271
                visible: recurrenceOption.selectedIndex != 0
 
272
                         && limitOptions.selectedIndex == 1
 
273
                divider.visible: false
 
274
                height: repeatsListItem.height
 
275
 
 
276
                ListItemLayout {
 
277
                    id: repeatsListItem
 
278
                    // TRANSLATORS: this refers to how often a recurrent event repeats
 
279
                    // and it is shown as the header of the option selector to choose
 
280
                    // its repetition
 
281
                    title.text:i18n.tr("Repeats")
 
282
                    title.color: Theme.palette.selected.overlayText
 
283
                }
 
284
 
 
285
            }
 
286
 
 
287
            TextField {
 
288
                id: limitCount
 
289
                objectName: "eventLimitCount"
 
290
 
 
291
                anchors {
 
292
                    left: parent.left
 
293
                    right: parent.right
 
294
                    margins: units.gu(2)
 
295
                }
 
296
 
 
297
                visible: recurrenceOption.selectedIndex != 0 && limitOptions.selectedIndex == 1
 
298
                validator: IntValidator{ bottom: 1; }
 
299
                inputMethodHints: Qt.ImhDialableCharactersOnly
 
300
 
 
301
                onTextChanged: {
 
302
                    backAction.enabled = !!text.trim()
 
303
                }
 
304
            }
 
305
 
 
306
            ListItem {
 
307
                visible: recurrenceOption.selectedIndex != 0 && limitOptions.selectedIndex == 2
 
308
                divider.visible: false
 
309
                height: dateListItem.height
 
310
 
 
311
                ListItemLayout {
 
312
                    id: dateListItem
 
313
                    title.text:i18n.tr("Date")
 
314
                    title.color: Theme.palette.selected.overlayText
 
315
                }
 
316
            }
 
317
 
 
318
            DatePicker{
 
319
                id:datePick;
 
320
 
 
321
                anchors {
 
322
                    left: parent.left
 
323
                    right: parent.right
 
324
                    margins: units.gu(2)
 
325
                }
 
326
 
 
327
                visible: recurrenceOption.selectedIndex != 0 && limitOptions.selectedIndex===2
 
328
            }
333
329
        }
334
330
    }
 
331
 
335
332
}