Merge lp:~ubuntu-calendar-dev/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app

Proposed by Nekhelesh Ramananthan
Status: Merged
Approved by: Nekhelesh Ramananthan
Approved revision: 720
Merged at revision: 770
Proposed branch: lp:~ubuntu-calendar-dev/ubuntu-calendar-app/new-agenda-view
Merge into: lp:ubuntu-calendar-app
Prerequisite: lp:~renatofilho/ubuntu-calendar-app/optimize
Diff against target: 1114 lines (+253/-392)
2 files modified
AgendaView.qml (+121/-153)
po/com.ubuntu.calendar.pot (+132/-239)
To merge this branch: bzr merge lp:~ubuntu-calendar-dev/ubuntu-calendar-app/new-agenda-view
Reviewer Review Type Date Requested Status
Nekhelesh Ramananthan Approve
Jenkins Bot continuous-integration Approve
Review via email: mp+287792@code.launchpad.net

Commit message

Implemented new agenda view as per the new design spec at https://www.dropbox.com/sh/suo2jb5liedn1x5/AADuNFySY3wsxit0JGl9LsFAa?dl=0

Description of the change

Implemented new agenda view as per the new design spec at https://www.dropbox.com/sh/suo2jb5liedn1x5/AADuNFySY3wsxit0JGl9LsFAa?dl=0

To post a comment you must log in.
Revision history for this message
Jenkins Bot (ubuntu-core-apps-jenkins-bot) wrote :
review: Needs Fixing (continuous-integration)
717. By Nekhelesh Ramananthan

Merged prerequisite

Revision history for this message
Jenkins Bot (ubuntu-core-apps-jenkins-bot) wrote :
review: Approve (continuous-integration)
718. By Nekhelesh Ramananthan

Merged prerequisite branch

Revision history for this message
Jenkins Bot (ubuntu-core-apps-jenkins-bot) wrote :
review: Approve (continuous-integration)
719. By Nekhelesh Ramananthan

merged prerequisite branch

720. By Nekhelesh Ramananthan

merged trunk

Revision history for this message
Jenkins Bot (ubuntu-core-apps-jenkins-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Nekhelesh Ramananthan (nik90) wrote :

LGTM! Nice work syzmon

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'AgendaView.qml'
2--- AgendaView.qml 2016-03-02 19:55:52 +0000
3+++ AgendaView.qml 2016-03-07 16:30:38 +0000
4@@ -1,5 +1,5 @@
5 /*
6- * Copyright (C) 2013-2014 Canonical Ltd
7+ * Copyright (C) 2013-2016 Canonical Ltd
8 *
9 * This file is part of Ubuntu Calendar App
10 *
11@@ -19,7 +19,6 @@
12 import QtQuick 2.4
13 import QtOrganizer 5.0
14 import Ubuntu.Components 1.3
15-import Ubuntu.Components.ListItems 1.0 as ListItem
16 import "dateExt.js" as DateExt
17 import "./3rd-party/lunar.js" as Lunar
18
19@@ -29,7 +28,7 @@
20
21 property var anchorDate: new Date()
22
23- signal dateSelected(var date);
24+ signal dateSelected(var date)
25
26 function goToBeginning() {
27 eventList.positionViewAtBeginning();
28@@ -43,42 +42,28 @@
29 return !!enabled_calendars.length;
30 }
31
32-
33 Keys.forwardTo: [eventList]
34 createEventAt: anchorDate
35
36- Action {
37- id: calendarTodayAction
38- objectName:"todaybutton"
39- iconName: "calendar-today"
40- text: i18n.tr("Today")
41- onTriggered: {
42- anchorDate = new Date()
43- goToBeginning()
44- }
45- }
46-
47+ // Page Header
48 header: PageHeader {
49- id: pageHeader
50-
51 title: i18n.tr("Agenda")
52 leadingActionBar.actions: tabs.tabsAction
53 trailingActionBar.actions: [
54- calendarTodayAction,
55- commonHeaderActions.showCalendarAction,
56- commonHeaderActions.reloadAction,
57- commonHeaderActions.syncCalendarAction,
58- commonHeaderActions.settingsAction
59+ commonHeaderActions.settingsAction,
60 ]
61 flickable: eventList
62 }
63
64+
65+ // ListModel to hold all events for upcoming 7days.
66 EventListModel {
67 id: eventListModel
68+ objectName: "eventListModel"
69+
70 startPeriod: anchorDate.midnight();
71 endPeriod: anchorDate.addDays(7).endOfDay()
72 filter: model.filter
73-
74 sortOrders: [
75 SortOrder{
76 blankPolicy: SortOrder.BlanksFirst
77@@ -89,35 +74,32 @@
78 ]
79 }
80
81+ // spinner. running while agenda is loading.
82 ActivityIndicator {
83+ z:2
84 visible: running
85 running: eventListModel.isLoading
86 anchors.centerIn: parent
87- z:2
88 }
89
90+ // Label to be shown when there is no upcoming events or if no calendar is selected.
91 Label {
92 id: noEventsOrCalendarsLabel
93- text: {
94- var default_title = i18n.tr( "No upcoming events" );
95-
96- if ( !root.hasEnabledCalendars() ) {
97- default_title = i18n.tr("You have no calendars enabled")
98- }
99-
100- return default_title;
101- }
102- visible: (eventList.count === 0) && !eventListModel.isLoading
103 anchors.centerIn: parent
104+ visible: (eventList.itemCount === 0) && !eventListModel.isLoading
105+ text: !root.hasEnabledCalendars() ? i18n.tr("You have no calendars enabled") : i18n.tr( "No upcoming events" )
106 }
107
108+ // button to be shown when no calendar is selected (onClick will take user to list of all calendars)
109 Button {
110+ anchors {
111+ top: noEventsOrCalendarsLabel.bottom;
112+ horizontalCenter: noEventsOrCalendarsLabel.horizontalCenter;
113+ topMargin: units.gu(1.5)
114+ }
115+ color: UbuntuColors.orange
116+ visible: !root.hasEnabledCalendars()
117 text: i18n.tr( "Enable calendars" )
118- visible: !root.hasEnabledCalendars()
119- anchors.top: noEventsOrCalendarsLabel.bottom
120- anchors.horizontalCenter: noEventsOrCalendarsLabel.horizontalCenter
121- anchors.topMargin: units.gu( 1.5 )
122- color: UbuntuColors.orange
123
124 onClicked: {
125 pageStack.push(Qt.resolvedUrl("CalendarChoicePopup.qml"),{"model": model});
126@@ -125,155 +107,141 @@
127 }
128 }
129
130+ // Main ListView with all upcoming events.
131 ListView {
132 id: eventList
133 objectName: "eventList"
134- model: eventListModel
135+
136 anchors.fill: parent
137 visible: eventListModel.itemCount > 0
138-
139+ model: eventListModel
140 delegate: listDelegate
141 }
142
143+ // Scrollbar
144 Scrollbar{
145 flickableItem: eventList
146 align: Qt.AlignTrailing
147 }
148
149+ // ListView delegate
150 Component{
151 id: listDelegate
152
153+ // Main item to hold listitem delegate.
154 Item {
155- id: root
156 property var event: eventListModel.items[index];
157-
158- width: parent.width
159- height: container.height
160-
161- onEventChanged: {
162- setDetails();
163- }
164-
165- function setDetails() {
166- if(event === null || event === undefined) {
167- return;
168- }
169-
170- headerContainer.visible = false;
171- if( index == 0 ) {
172- headerContainer.visible = true;
173- } else {
174- var prevEvent = eventListModel.items[index-1];
175- if( prevEvent.startDateTime.midnight() < event.startDateTime.midnight()) {
176- headerContainer.visible = true;
177- }
178- }
179-
180- var date = event.startDateTime.toLocaleDateString()
181- var startTime = event.startDateTime.toLocaleTimeString(Qt.locale(), Locale.ShortFormat)
182- var endTime = event.endDateTime.toLocaleTimeString(Qt.locale(), Locale.ShortFormat)
183-
184- // TRANSLATORS: the first argument (%1) refers to a start time for an event,
185- // while the second one (%2) refers to the end time
186- var timeString = i18n.tr("%1 - %2").arg(startTime).arg(endTime)
187-
188- if (mainView.displayLunarCalendar) {
189- var lunarDate = Lunar.calendar.solar2lunar(event.startDateTime.getFullYear(),
190+ property var prevEvent: eventListModel.items[index-1];
191+ property var date: event.startDateTime.toLocaleDateString()
192+ property var startTime: event.startDateTime.toLocaleTimeString(Qt.locale(), Locale.ShortFormat)
193+ property var endTime: event.endDateTime.toLocaleTimeString(Qt.locale(), Locale.ShortFormat)
194+ property var lunarDate: Lunar.calendar.solar2lunar(event.startDateTime.getFullYear(),
195 event.startDateTime.getMonth() + 1,
196 event.startDateTime.getDate())
197- header.text = i18n.tr("%1 %2 %3 %4 %5").arg(lunarDate.gzYear).arg(lunarDate .IMonthCn).arg(lunarDate.IDayCn)
198- .arg(lunarDate.gzDay).arg(lunarDate.isTerm ? lunarDate.Term : "")
199- } else {
200- header.text = date
201- }
202-
203- timeLabel.text = timeString
204- header.color = event.startDateTime.toLocaleDateString() === new Date().toLocaleDateString() ? UbuntuColors.orange : UbuntuColors.darkGrey
205- detailsContainer.color = eventListModel.collection(event.collectionId).color
206-
207- if( event.displayLabel) {
208- titleLabel.text = event.displayLabel;
209- }
210- }
211-
212+
213+ width: parent.width
214+ height: eventContainer.height
215+
216+ // main Column to hold header-(date) and event details-(start/end time, Description and location)
217 Column {
218- id: container
219+ id: eventContainer
220 objectName: "eventContainer" + index
221
222 width: parent.width
223 anchors.top: parent.top
224
225- //Not using ListItem.Header because of bug #1380766
226- ListItem.Standard{
227- id: headerContainer
228-
229- height: visible ? header.height + units.gu(1) : 0
230+ // header ListItem eg. ( Friday, October 29th 2015 )
231+ ListItem {
232 width: parent.width
233+ height: visible ? units.gu(4) : 0
234+ color: "#F7F7F7"
235+ highlightColor: "#EDEDED"
236+ visible: index === 0 ? true : prevEvent === undefined ? false : prevEvent.startDateTime.midnight() < event.startDateTime.midnight() ? true : false
237
238- Label{
239- id: header
240- fontSize: "medium"
241- width: parent.width
242- elide: Text.ElideRight
243- anchors {
244- left: parent.left
245- leftMargin: units.gu(1)
246- verticalCenter: parent.verticalCenter
247- }
248+ ListItemLayout {
249+ id: listitemlayout
250+ padding.top: units.gu(1)
251+ title.text: mainView.displayLunarCalendar ? i18n.tr("%1 %2 %3 %4 %5").arg(lunarDate.gzYear).arg(lunarDate .IMonthCn).arg(lunarDate.IDayCn)
252+ .arg(lunarDate.gzDay).arg(lunarDate.isTerm ? lunarDate.Term : "")
253+ : date
254+ title.color: event.startDateTime.toLocaleDateString() === new Date().toLocaleDateString() ? UbuntuColors.orange : UbuntuColors.darkGrey
255 }
256+
257+ // onClicked new page with daily view will open.
258 onClicked: {
259+ Haptics.play()
260 dateSelected(event.startDateTime);
261 }
262- showDivider: false
263 }
264- ListItem.ThinDivider {}
265-
266- Rectangle{
267- id: detailsContainer
268-
269- anchors {
270- left: parent.left
271- right: parent.right
272+
273+ // Main ListItem to hold details about event eg. ( 19:30 - Beer with the team )
274+ // ( 20:00 Hicter )
275+ ListItem {
276+ id: detailsListItem
277+
278+ width: parent.width
279+ height: detailsListitemlayout.height
280+ color: "white"
281+ highlightColor: "#F7F7F7"
282+
283+ ListItemLayout {
284+ id: detailsListitemlayout
285+
286+ title.font.bold: true
287+ title.text: event.displayLabel ? event.displayLabel : i18n.tr("no event name set")
288+ subtitle.font.pixelSize: title.font.pixelSize
289+ subtitle.text: event.location ? event.location : i18n.tr("no location")
290+ subtitle.color: event.location ? UbuntuColors.coolGrey : "#B3B3B3"
291+ subtitle.font.italic: event.location ? false : true
292+
293+
294+ // item to hold SlotsLayout.Leading items: timeStart timeEnad and little calendar indication icon.
295+ Item {
296+ width: timeLabelStart.width + units.gu(2)
297+ height: parent.height
298+ SlotsLayout.overrideVerticalPositioning: true
299+ SlotsLayout.position: SlotsLayout.Leading
300+
301+ // Little icon in left top corner of every event to indicate color of the calendar.
302+ UbuntuShape {
303+ id: calendarIndicator
304+
305+ anchors.verticalCenter: parent.verticalCenter
306+ width: units.gu(1)
307+ height: width
308+ aspect: UbuntuShape.DropShadow
309+ backgroundColor: eventListModel.collection(event.collectionId).color
310+ }
311+
312+ // start time event Label
313+ Label {
314+ id: timeLabelStart
315+
316+ anchors {left: calendarIndicator.right; leftMargin: units.gu(1)}
317+ fontSize: "small"
318+ y: detailsListitemlayout.mainSlot.y + detailsListitemlayout.title.y
319+ + detailsListitemlayout.title.baselineOffset - baselineOffset
320+ text: startTime.concat('-')
321+ }
322+
323+ // finish time event Label
324+ Label {
325+ id: timeLabelEnd
326+
327+ anchors {left: calendarIndicator.right; leftMargin: units.gu(1)}
328+ fontSize: "small"
329+ y: detailsListitemlayout.mainSlot.y + detailsListitemlayout.subtitle.y
330+ + detailsListitemlayout.subtitle.baselineOffset - baselineOffset;
331+ text: endTime
332+ }
333+ }
334+
335 }
336
337- height: detailsColumn.height + units.gu(1)
338-
339- ListItem.Standard{
340- showDivider:false
341- Column{
342- id: detailsColumn
343-
344- anchors {
345- top: parent.top
346- left: parent.left
347- right: parent.right
348- margins: units.gu(0.5)
349- }
350-
351- Label{
352- id: timeLabel
353- objectName: "timeLabel" + index
354- color:"White"
355- font.bold: true
356- fontSize: "small"
357- width: parent.width
358- }
359-
360- Label{
361- id: titleLabel
362- objectName: "titleLabel" + index
363-
364- color:"White"
365- fontSize: "small"
366- width: parent.width
367- maximumLineCount: 2
368- elide: Text.ElideRight
369- wrapMode: Text.WrapAtWordBoundaryOrAnywhere
370- }
371- }
372- onClicked: {
373- pageStack.push(Qt.resolvedUrl("EventDetails.qml"), {"event":event,"model":eventListModel});
374- }
375+ // new page will open to edit selected event
376+ onClicked: {
377+ Haptics.play()
378+ pageStack.push(Qt.resolvedUrl("EventDetails.qml"), {"event":event,"model":eventListModel});
379 }
380 }
381 }
382
383=== modified file 'po/com.ubuntu.calendar.pot'
384--- po/com.ubuntu.calendar.pot 2016-03-02 19:55:52 +0000
385+++ po/com.ubuntu.calendar.pot 2016-03-07 16:30:38 +0000
386@@ -8,7 +8,7 @@
387 msgstr ""
388 "Project-Id-Version: \n"
389 "Report-Msgid-Bugs-To: \n"
390-"POT-Creation-Date: 2016-03-02 13:04-0300\n"
391+"POT-Creation-Date: 2016-03-04 04:02+0530\n"
392 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
393 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
394 "Language-Team: LANGUAGE <LL@li.org>\n"
395@@ -18,51 +18,36 @@
396 "Content-Transfer-Encoding: 8bit\n"
397 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
398
399-#: ../AgendaView.qml:53 ../DayView.qml:68 ../MonthView.qml:48
400-#: ../WeekView.qml:52 ../YearView.qml:55 ../build/install/AgendaView.qml:53
401-#: ../build/install/DayView.qml:43 ../build/install/MonthView.qml:47
402-#: ../build/install/WeekView.qml:45 ../build/install/YearView.qml:49
403-#: ../build/pkg/AgendaView.qml:53 ../build/pkg/DayView.qml:68
404-#: ../build/pkg/MonthView.qml:48 ../build/pkg/WeekView.qml:52
405-#: ../build/pkg/YearView.qml:55
406-msgid "Today"
407-msgstr ""
408-
409-#: ../AgendaView.qml:63 ../build/install/AgendaView.qml:63
410-#: ../build/install/calendar.qml:287 ../build/install/calendar.qml:503
411-#: ../build/pkg/AgendaView.qml:63 ../build/pkg/calendar.qml:288
412-#: ../build/pkg/calendar.qml:504 ../calendar.qml:288 ../calendar.qml:504
413+#: ../AgendaView.qml:50 ../calendar.qml:292 ../calendar.qml:518
414 msgid "Agenda"
415 msgstr ""
416
417-#: ../AgendaView.qml:101 ../build/install/AgendaView.qml:101
418-#: ../build/pkg/AgendaView.qml:101
419+#: ../AgendaView.qml:90
420+msgid "You have no calendars enabled"
421+msgstr ""
422+
423+#: ../AgendaView.qml:90
424 msgid "No upcoming events"
425 msgstr ""
426
427-#: ../AgendaView.qml:104 ../build/install/AgendaView.qml:104
428-#: ../build/pkg/AgendaView.qml:104
429-msgid "You have no calendars enabled"
430-msgstr ""
431-
432-#: ../AgendaView.qml:114 ../build/install/AgendaView.qml:114
433-#: ../build/pkg/AgendaView.qml:114
434+#: ../AgendaView.qml:102
435 msgid "Enable calendars"
436 msgstr ""
437
438-#. TRANSLATORS: the first argument (%1) refers to a start time for an event,
439-#. while the second one (%2) refers to the end time
440-#: ../AgendaView.qml:177 ../EventBubble.qml:97
441-#: ../build/install/AgendaView.qml:177 ../build/install/EventBubble.qml:134
442-#: ../build/pkg/AgendaView.qml:177 ../build/pkg/EventBubble.qml:97
443+#: ../AgendaView.qml:164
444 #, qt-format
445-msgid "%1 - %2"
446-msgstr ""
447-
448-#: ../AllDayEventComponent.qml:86 ../TimeLineBase.qml:50
449-#: ../build/install/AllDayEventComponent.qml:108
450-#: ../build/install/TimeLineBase.qml:131
451-#: ../build/pkg/AllDayEventComponent.qml:86 ../build/pkg/TimeLineBase.qml:50
452+msgid "%1 %2 %3 %4 %5"
453+msgstr ""
454+
455+#: ../AgendaView.qml:191
456+msgid "no event name set"
457+msgstr ""
458+
459+#: ../AgendaView.qml:193
460+msgid "no location"
461+msgstr ""
462+
463+#: ../AllDayEventComponent.qml:89 ../TimeLineBase.qml:50
464 msgid "New event"
465 msgstr ""
466
467@@ -70,225 +55,191 @@
468 #. on a given day. "Ev." is short form for "Events".
469 #. Please keep the translation of "Ev." to 3 characters only, as the week view
470 #. where it's shown has limited space
471-#: ../AllDayEventComponent.qml:158
472-#: ../build/install/AllDayEventComponent.qml:156
473-#: ../build/pkg/AllDayEventComponent.qml:158
474+#: ../AllDayEventComponent.qml:150
475 #, qt-format
476 msgid "%1 ev."
477 msgstr ""
478
479 #. TRANSLATORS: the argument refers to the number of all day events
480-#: ../AllDayEventComponent.qml:162
481-#: ../build/install/AllDayEventComponent.qml:160
482-#: ../build/pkg/AllDayEventComponent.qml:162
483+#: ../AllDayEventComponent.qml:154
484 #, qt-format
485 msgid "%1 all day event"
486 msgid_plural "%1 all day events"
487 msgstr[0] ""
488 msgstr[1] ""
489
490-#: ../CalendarChoicePopup.qml:33 ../EventActions.qml:51
491-#: ../build/install/CalendarChoicePopup.qml:33
492-#: ../build/install/EventActions.qml:51
493-#: ../build/pkg/CalendarChoicePopup.qml:33 ../build/pkg/EventActions.qml:51
494+#: ../CalendarChoicePopup.qml:34 ../EventActions.qml:51
495 msgid "Calendars"
496 msgstr ""
497
498-#: ../CalendarChoicePopup.qml:37 ../Settings.qml:32
499-#: ../build/install/CalendarChoicePopup.qml:37
500-#: ../build/install/Settings.qml:32 ../build/pkg/CalendarChoicePopup.qml:37
501-#: ../build/pkg/Settings.qml:32
502+#: ../CalendarChoicePopup.qml:36 ../Settings.qml:31
503 msgid "Back"
504 msgstr ""
505
506 #. TRANSLATORS: Please translate this string to 15 characters only.
507 #. Currently ,there is no way we can increase width of action menu currently.
508-#: ../CalendarChoicePopup.qml:51 ../EventActions.qml:36
509-#: ../build/install/CalendarChoicePopup.qml:51
510-#: ../build/install/EventActions.qml:36
511-#: ../build/pkg/CalendarChoicePopup.qml:51 ../build/pkg/EventActions.qml:36
512+#: ../CalendarChoicePopup.qml:48 ../EventActions.qml:36
513 msgid "Sync"
514 msgstr ""
515
516-#: ../CalendarChoicePopup.qml:51 ../EventActions.qml:36
517-#: ../build/install/CalendarChoicePopup.qml:51
518-#: ../build/install/EventActions.qml:36
519-#: ../build/pkg/CalendarChoicePopup.qml:51 ../build/pkg/EventActions.qml:36
520+#: ../CalendarChoicePopup.qml:48 ../EventActions.qml:36
521 msgid "Syncing"
522 msgstr ""
523
524-#: ../CalendarChoicePopup.qml:70 ../build/install/CalendarChoicePopup.qml:70
525-#: ../build/pkg/CalendarChoicePopup.qml:70
526+#: ../CalendarChoicePopup.qml:72
527 msgid "Add online Calendar"
528 msgstr ""
529
530-#: ../ColorPickerDialog.qml:25 ../build/install/ColorPickerDialog.qml:25
531-#: ../build/pkg/ColorPickerDialog.qml:25
532+#: ../ColorPickerDialog.qml:25
533 msgid "Select Color"
534 msgstr ""
535
536 #: ../ColorPickerDialog.qml:55 ../DeleteConfirmationDialog.qml:60
537 #: ../EditEventConfirmationDialog.qml:53 ../NewEvent.qml:340
538-#: ../build/install/ColorPickerDialog.qml:55
539-#: ../build/install/DeleteConfirmationDialog.qml:60
540-#: ../build/install/EditEventConfirmationDialog.qml:53
541-#: ../build/install/NewEvent.qml:344 ../build/pkg/ColorPickerDialog.qml:55
542-#: ../build/pkg/DeleteConfirmationDialog.qml:60
543-#: ../build/pkg/EditEventConfirmationDialog.qml:53
544-#: ../build/pkg/NewEvent.qml:340
545 msgid "Cancel"
546 msgstr ""
547
548-#: ../ContactChoicePopup.qml:37 ../build/install/ContactChoicePopup.qml:37
549-#: ../build/pkg/ContactChoicePopup.qml:37
550+#: ../ContactChoicePopup.qml:37
551 msgid "No contact"
552 msgstr ""
553
554-#: ../ContactChoicePopup.qml:96 ../build/install/ContactChoicePopup.qml:96
555-#: ../build/pkg/ContactChoicePage.qml:50
556-#: ../build/pkg/ContactChoicePopup.qml:96
557+#: ../ContactChoicePopup.qml:96
558 msgid "Search contact"
559 msgstr ""
560
561+#: ../DayView.qml:71 ../MonthView.qml:50 ../WeekView.qml:54 ../YearView.qml:57
562+msgid "Today"
563+msgstr ""
564+
565 #. TRANSLATORS: this is a time formatting string,
566 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
567 #. It's used in the header of the month and week views
568-#: ../DayView.qml:110 ../MonthView.qml:69 ../WeekView.qml:116
569-#: ../build/install/DayView.qml:67 ../build/install/MonthView.qml:69
570-#: ../build/install/WeekView.qml:68 ../build/pkg/DayView.qml:110
571-#: ../build/pkg/MonthView.qml:69 ../build/pkg/WeekView.qml:116
572+#: ../DayView.qml:115 ../DayView.qml:203 ../MonthView.qml:78
573+#: ../WeekView.qml:137 ../WeekView.qml:256
574 msgid "MMMM yyyy"
575 msgstr ""
576
577+#: ../DayView.qml:201 ../MonthView.qml:73 ../WeekView.qml:254
578+#, qt-format
579+msgid "%1 %2"
580+msgstr ""
581+
582 #: ../DeleteConfirmationDialog.qml:31
583-#: ../build/install/DeleteConfirmationDialog.qml:31
584-#: ../build/pkg/DeleteConfirmationDialog.qml:31
585 msgid "Delete Recurring Event"
586 msgstr ""
587
588 #: ../DeleteConfirmationDialog.qml:32
589-#: ../build/install/DeleteConfirmationDialog.qml:32
590-#: ../build/pkg/DeleteConfirmationDialog.qml:32
591 msgid "Delete Event"
592 msgstr ""
593
594 #. TRANSLATORS: argument (%1) refers to an event name.
595 #: ../DeleteConfirmationDialog.qml:36
596-#: ../build/install/DeleteConfirmationDialog.qml:36
597-#: ../build/pkg/DeleteConfirmationDialog.qml:36
598 #, qt-format
599 msgid "Delete only this event \"%1\", or all events in the series?"
600 msgstr ""
601
602 #: ../DeleteConfirmationDialog.qml:37
603-#: ../build/install/DeleteConfirmationDialog.qml:37
604-#: ../build/pkg/DeleteConfirmationDialog.qml:37
605 #, qt-format
606 msgid "Are you sure you want to delete the event \"%1\"?"
607 msgstr ""
608
609 #: ../DeleteConfirmationDialog.qml:40
610-#: ../build/install/DeleteConfirmationDialog.qml:40
611-#: ../build/pkg/DeleteConfirmationDialog.qml:40
612 msgid "Delete series"
613 msgstr ""
614
615 #: ../DeleteConfirmationDialog.qml:51
616-#: ../build/install/DeleteConfirmationDialog.qml:51
617-#: ../build/pkg/DeleteConfirmationDialog.qml:51
618 msgid "Delete this"
619 msgstr ""
620
621 #: ../DeleteConfirmationDialog.qml:51 ../NewEvent.qml:347
622-#: ../build/install/DeleteConfirmationDialog.qml:51
623-#: ../build/install/NewEvent.qml:352
624-#: ../build/pkg/DeleteConfirmationDialog.qml:51 ../build/pkg/NewEvent.qml:347
625 msgid "Delete"
626 msgstr ""
627
628 #: ../EditEventConfirmationDialog.qml:29 ../NewEvent.qml:335
629-#: ../build/install/EditEventConfirmationDialog.qml:29
630-#: ../build/install/NewEvent.qml:339
631-#: ../build/pkg/EditEventConfirmationDialog.qml:29
632-#: ../build/pkg/NewEvent.qml:335
633 msgid "Edit Event"
634 msgstr ""
635
636 #. TRANSLATORS: argument (%1) refers to an event name.
637 #: ../EditEventConfirmationDialog.qml:32
638-#: ../build/install/EditEventConfirmationDialog.qml:32
639-#: ../build/pkg/EditEventConfirmationDialog.qml:32
640 #, qt-format
641 msgid "Edit only this event \"%1\", or all events in the series?"
642 msgstr ""
643
644 #: ../EditEventConfirmationDialog.qml:35
645-#: ../build/install/EditEventConfirmationDialog.qml:35
646-#: ../build/pkg/EditEventConfirmationDialog.qml:35
647 msgid "Edit series"
648 msgstr ""
649
650 #: ../EditEventConfirmationDialog.qml:44
651-#: ../build/install/EditEventConfirmationDialog.qml:44
652-#: ../build/pkg/EditEventConfirmationDialog.qml:44
653 msgid "Edit this"
654 msgstr ""
655
656-#: ../EventActions.qml:63 ../Settings.qml:30
657-#: ../build/install/EventActions.qml:63 ../build/install/Settings.qml:30
658-#: ../build/pkg/EventActions.qml:63 ../build/pkg/Settings.qml:30
659+#: ../EventActions.qml:63 ../Settings.qml:29
660 msgid "Settings"
661 msgstr ""
662
663+#. TRANSLATORS: the first argument (%1) refers to a start time for an event,
664+#. while the second one (%2) refers to the end time
665+#: ../EventBubble.qml:97
666+#, qt-format
667+msgid "%1 - %2"
668+msgstr ""
669+
670 #. TRANSLATORS: the first argument (%1) refers to a time for an event,
671 #. while the second one (%2) refers to title of event
672 #: ../EventBubble.qml:108 ../EventBubble.qml:113
673-#: ../build/install/EventBubble.qml:145 ../build/install/EventBubble.qml:150
674-#: ../build/pkg/EventBubble.qml:108 ../build/pkg/EventBubble.qml:113
675 #, qt-format
676 msgid "%1 <b>%2</b>"
677 msgstr ""
678
679-#: ../EventDetails.qml:43 ../NewEvent.qml:483
680-#: ../build/install/EventDetails.qml:43 ../build/install/NewEvent.qml:489
681-#: ../build/pkg/EventDetails.qml:43 ../build/pkg/NewEvent.qml:483
682+#: ../EventDetails.qml:44 ../NewEvent.qml:483
683 msgid "Event Details"
684 msgstr ""
685
686 #. TRANSLATORS: the first parameter refers to the name of event calendar.
687-#: ../EventDetails.qml:68 ../build/install/EventDetails.qml:68
688-#: ../build/pkg/EventDetails.qml:68
689+#: ../EventDetails.qml:69
690 #, qt-format
691 msgid "%1 Calendar"
692 msgstr ""
693
694-#: ../EventDetails.qml:129 ../build/install/EventDetails.qml:129
695-#: ../build/pkg/EventDetails.qml:129
696+#: ../EventDetails.qml:143
697+#, qt-format
698+msgid "%1 %2 %3 - %4 %5 %6 (All Day)"
699+msgstr ""
700+
701+#: ../EventDetails.qml:147
702 #, qt-format
703 msgid "%1 - %2 (All Day)"
704 msgstr ""
705
706-#: ../EventDetails.qml:133 ../build/install/EventDetails.qml:133
707-#: ../build/pkg/EventDetails.qml:133
708+#: ../EventDetails.qml:153
709+#, qt-format
710+msgid "%1 %2 %3 (All Day)"
711+msgstr ""
712+
713+#: ../EventDetails.qml:156
714 #, qt-format
715 msgid "%1 (All Day)"
716 msgstr ""
717
718-#: ../EventDetails.qml:203 ../build/install/EventDetails.qml:203
719-#: ../build/pkg/EventDetails.qml:203
720+#: ../EventDetails.qml:162
721+#, qt-format
722+msgid "%1 %2 %3, %4 - %5 %6 %7, %8"
723+msgstr ""
724+
725+#: ../EventDetails.qml:171
726+#, qt-format
727+msgid "%1 %2 %3, %4 - %5"
728+msgstr ""
729+
730+#: ../EventDetails.qml:238
731 msgid "Edit"
732 msgstr ""
733
734-#: ../EventDetails.qml:354 ../NewEvent.qml:589
735-#: ../build/install/EventDetails.qml:354 ../build/install/NewEvent.qml:595
736-#: ../build/pkg/EventDetails.qml:354 ../build/pkg/NewEvent.qml:589
737+#: ../EventDetails.qml:389 ../NewEvent.qml:589
738 msgid "Guests"
739 msgstr ""
740
741-#: ../EventDetails.qml:397 ../EventReminder.qml:35 ../NewEvent.qml:701
742-#: ../build/install/EventDetails.qml:397 ../build/install/EventReminder.qml:35
743-#: ../build/install/NewEvent.qml:711 ../build/pkg/EventDetails.qml:397
744-#: ../build/pkg/EventReminder.qml:35 ../build/pkg/NewEvent.qml:701
745+#: ../EventDetails.qml:432 ../EventReminder.qml:35 ../NewEvent.qml:701
746 msgid "Reminder"
747 msgstr ""
748
749@@ -297,19 +248,14 @@
750 #. and as the header of the list item that shows the repetition
751 #. summary in the page that displays the event details
752 #: ../EventRepetition.qml:40 ../EventRepetition.qml:155
753-#: ../build/install/EventRepetition.qml:40
754-#: ../build/install/EventRepetition.qml:155
755-#: ../build/pkg/EventRepetition.qml:40 ../build/pkg/EventRepetition.qml:155
756 msgid "Repeat"
757 msgstr ""
758
759-#: ../EventRepetition.qml:174 ../build/install/EventRepetition.qml:174
760-#: ../build/pkg/EventRepetition.qml:174
761+#: ../EventRepetition.qml:174
762 msgid "Repeats On:"
763 msgstr ""
764
765-#: ../EventRepetition.qml:219 ../build/install/EventRepetition.qml:219
766-#: ../build/pkg/EventRepetition.qml:219
767+#: ../EventRepetition.qml:219
768 msgid "Recurring event ends"
769 msgstr ""
770
771@@ -317,20 +263,16 @@
772 #. and it is shown as the header of the option selector to choose
773 #. its repetition
774 #: ../EventRepetition.qml:242 ../NewEvent.qml:685
775-#: ../build/install/EventRepetition.qml:242 ../build/install/NewEvent.qml:695
776-#: ../build/pkg/EventRepetition.qml:242 ../build/pkg/NewEvent.qml:685
777 msgid "Repeats"
778 msgstr ""
779
780-#: ../EventRepetition.qml:267 ../build/install/EventRepetition.qml:267
781-#: ../build/pkg/EventRepetition.qml:267
782+#: ../EventRepetition.qml:267
783 msgid "Date"
784 msgstr ""
785
786 #. TRANSLATORS: the argument refers to multiple recurrence of event with count .
787 #. E.g. "Daily; 5 times."
788-#: ../EventUtils.qml:75 ../build/install/EventUtils.qml:75
789-#: ../build/pkg/EventUtils.qml:75
790+#: ../EventUtils.qml:75
791 #, qt-format
792 msgid "%1; %2 time"
793 msgid_plural "%1; %2 times"
794@@ -339,270 +281,221 @@
795
796 #. TRANSLATORS: the argument refers to recurrence until user selected date.
797 #. E.g. "Daily; until 12/12/2014."
798-#: ../EventUtils.qml:79 ../build/install/EventUtils.qml:79
799-#: ../build/pkg/EventUtils.qml:79
800+#: ../EventUtils.qml:79
801 #, qt-format
802 msgid "%1; until %2"
803 msgstr ""
804
805 #. TRANSLATORS: the argument refers to several different days of the week.
806 #. E.g. "Weekly on Mondays, Tuesdays"
807-#: ../EventUtils.qml:102 ../build/install/EventUtils.qml:102
808-#: ../build/pkg/EventUtils.qml:102
809+#: ../EventUtils.qml:102
810 #, qt-format
811 msgid "Weekly on %1"
812 msgstr ""
813
814-#: ../LimitLabelModel.qml:25 ../build/install/LimitLabelModel.qml:25
815-#: ../build/pkg/LimitLabelModel.qml:25
816+#: ../HeaderDateComponent.qml:90
817+#, qt-format
818+msgid "%1 %2 %3"
819+msgstr ""
820+
821+#: ../LimitLabelModel.qml:25
822 msgid "Never"
823 msgstr ""
824
825-#: ../LimitLabelModel.qml:26 ../build/install/LimitLabelModel.qml:26
826-#: ../build/pkg/LimitLabelModel.qml:26
827+#: ../LimitLabelModel.qml:26
828 msgid "After X Occurrence"
829 msgstr ""
830
831-#: ../LimitLabelModel.qml:27 ../build/install/LimitLabelModel.qml:27
832-#: ../build/pkg/LimitLabelModel.qml:27
833+#: ../LimitLabelModel.qml:27
834 msgid "After Date"
835 msgstr ""
836
837-#: ../MonthComponent.qml:312 ../build/install/MonthComponent.qml:312
838-#: ../build/pkg/MonthComponent.qml:312
839+#: ../MonthComponent.qml:315
840 msgid "Wk"
841 msgstr ""
842
843-#: ../NewEvent.qml:171 ../build/install/NewEvent.qml:173
844-#: ../build/pkg/NewEvent.qml:171
845+#: ../NewEvent.qml:171
846 msgid "End time can't be before start time"
847 msgstr ""
848
849 #: ../NewEvent.qml:335 ../NewEventBottomEdge.qml:52
850-#: ../build/install/NewEvent.qml:339
851-#: ../build/install/NewEventBottomEdge.qml:49 ../build/pkg/NewEvent.qml:335
852-#: ../build/pkg/NewEventBottomEdge.qml:52
853 msgid "New Event"
854 msgstr ""
855
856-#: ../NewEvent.qml:364 ../build/install/NewEvent.qml:370
857-#: ../build/pkg/NewEvent.qml:364
858+#: ../NewEvent.qml:364
859 msgid "Save"
860 msgstr ""
861
862-#: ../NewEvent.qml:375 ../build/install/NewEvent.qml:381
863-#: ../build/pkg/NewEvent.qml:375
864+#: ../NewEvent.qml:375
865 msgid "Error"
866 msgstr ""
867
868-#: ../NewEvent.qml:377 ../build/install/NewEvent.qml:383
869-#: ../build/pkg/NewEvent.qml:377
870+#: ../NewEvent.qml:377
871 msgid "OK"
872 msgstr ""
873
874-#: ../NewEvent.qml:437 ../build/install/NewEvent.qml:443
875-#: ../build/pkg/NewEvent.qml:437
876+#: ../NewEvent.qml:437
877 msgid "From"
878 msgstr ""
879
880-#: ../NewEvent.qml:450 ../build/install/NewEvent.qml:456
881-#: ../build/pkg/NewEvent.qml:450
882+#: ../NewEvent.qml:450
883 msgid "To"
884 msgstr ""
885
886-#: ../NewEvent.qml:467 ../build/install/NewEvent.qml:473
887-#: ../build/pkg/NewEvent.qml:467
888+#: ../NewEvent.qml:467
889 msgid "All day event"
890 msgstr ""
891
892-#: ../NewEvent.qml:497 ../build/install/NewEvent.qml:503
893-#: ../build/pkg/NewEvent.qml:497
894+#: ../NewEvent.qml:497
895 msgid "Event Name"
896 msgstr ""
897
898-#: ../NewEvent.qml:515 ../build/install/NewEvent.qml:521
899-#: ../build/pkg/NewEvent.qml:515
900+#: ../NewEvent.qml:515
901 msgid "Description"
902 msgstr ""
903
904-#: ../NewEvent.qml:534 ../build/install/NewEvent.qml:540
905-#: ../build/pkg/NewEvent.qml:534
906+#: ../NewEvent.qml:534
907 msgid "Location"
908 msgstr ""
909
910-#: ../NewEvent.qml:549 ../build/install/NewEvent.qml:555
911-#: ../build/pkg/NewEvent.qml:549
912-#: com.ubuntu.calendar_calendar.desktop.in.in.h:1
913+#: ../NewEvent.qml:549 com.ubuntu.calendar_calendar.desktop.in.in.h:1
914 msgid "Calendar"
915 msgstr ""
916
917-#: ../NewEvent.qml:598 ../build/install/NewEvent.qml:604
918-#: ../build/pkg/NewEvent.qml:598
919+#: ../NewEvent.qml:598
920 msgid "Add Guest"
921 msgstr ""
922
923 #: ../RecurrenceLabelDefines.qml:23
924-#: ../build/install/RecurrenceLabelDefines.qml:23
925-#: ../build/pkg/RecurrenceLabelDefines.qml:23
926 msgid "Once"
927 msgstr ""
928
929 #: ../RecurrenceLabelDefines.qml:24
930-#: ../build/install/RecurrenceLabelDefines.qml:24
931-#: ../build/pkg/RecurrenceLabelDefines.qml:24
932 msgid "Daily"
933 msgstr ""
934
935 #: ../RecurrenceLabelDefines.qml:25
936-#: ../build/install/RecurrenceLabelDefines.qml:25
937-#: ../build/pkg/RecurrenceLabelDefines.qml:25
938 msgid "On Weekdays"
939 msgstr ""
940
941 #. TRANSLATORS: The arguments refer to days of the week. E.g. "On Monday, Tuesday, Thursday"
942 #: ../RecurrenceLabelDefines.qml:27
943-#: ../build/install/RecurrenceLabelDefines.qml:27
944-#: ../build/pkg/RecurrenceLabelDefines.qml:27
945 #, qt-format
946 msgid "On %1, %2 ,%3"
947 msgstr ""
948
949 #. TRANSLATORS: The arguments refer to days of the week. E.g. "On Monday and Thursday"
950 #: ../RecurrenceLabelDefines.qml:29
951-#: ../build/install/RecurrenceLabelDefines.qml:29
952-#: ../build/pkg/RecurrenceLabelDefines.qml:29
953 #, qt-format
954 msgid "On %1 and %2"
955 msgstr ""
956
957 #: ../RecurrenceLabelDefines.qml:30
958-#: ../build/install/RecurrenceLabelDefines.qml:30
959-#: ../build/pkg/RecurrenceLabelDefines.qml:30
960 msgid "Weekly"
961 msgstr ""
962
963 #: ../RecurrenceLabelDefines.qml:31
964-#: ../build/install/RecurrenceLabelDefines.qml:31
965-#: ../build/pkg/RecurrenceLabelDefines.qml:31
966 msgid "Monthly"
967 msgstr ""
968
969 #: ../RecurrenceLabelDefines.qml:32
970-#: ../build/install/RecurrenceLabelDefines.qml:32
971-#: ../build/pkg/RecurrenceLabelDefines.qml:32
972 msgid "Yearly"
973 msgstr ""
974
975-#: ../RemindersModel.qml:26 ../build/install/RemindersModel.qml:26
976-#: ../build/pkg/RemindersModel.qml:26
977+#: ../RemindersModel.qml:26
978 msgid "No Reminder"
979 msgstr ""
980
981 #. TRANSLATORS: this refers to when a reminder should be shown as a notification
982 #. in the indicators. "On Event" means that it will be shown right at the time
983 #. the event starts, not any time before
984-#: ../RemindersModel.qml:30 ../build/install/RemindersModel.qml:30
985-#: ../build/pkg/RemindersModel.qml:30
986+#: ../RemindersModel.qml:30
987 msgid "On Event"
988 msgstr ""
989
990-#: ../RemindersModel.qml:31 ../build/install/RemindersModel.qml:31
991-#: ../build/pkg/RemindersModel.qml:31
992+#: ../RemindersModel.qml:31
993 msgid "5 minutes"
994 msgstr ""
995
996-#: ../RemindersModel.qml:32 ../build/install/RemindersModel.qml:32
997-#: ../build/pkg/RemindersModel.qml:32
998+#: ../RemindersModel.qml:32
999 msgid "15 minutes"
1000 msgstr ""
1001
1002-#: ../RemindersModel.qml:33 ../build/install/RemindersModel.qml:33
1003-#: ../build/pkg/RemindersModel.qml:33
1004+#: ../RemindersModel.qml:33
1005 msgid "30 minutes"
1006 msgstr ""
1007
1008-#: ../RemindersModel.qml:34 ../build/install/RemindersModel.qml:34
1009-#: ../build/pkg/RemindersModel.qml:34
1010+#: ../RemindersModel.qml:34
1011 msgid "1 hour"
1012 msgstr ""
1013
1014-#: ../RemindersModel.qml:35 ../build/install/RemindersModel.qml:35
1015-#: ../build/pkg/RemindersModel.qml:35
1016+#: ../RemindersModel.qml:35
1017 msgid "2 hours"
1018 msgstr ""
1019
1020-#: ../RemindersModel.qml:36 ../build/install/RemindersModel.qml:36
1021-#: ../build/pkg/RemindersModel.qml:36
1022+#: ../RemindersModel.qml:36
1023 msgid "1 day"
1024 msgstr ""
1025
1026-#: ../RemindersModel.qml:37 ../build/install/RemindersModel.qml:37
1027-#: ../build/pkg/RemindersModel.qml:37
1028+#: ../RemindersModel.qml:37
1029 msgid "2 days"
1030 msgstr ""
1031
1032-#: ../RemindersModel.qml:38 ../build/install/RemindersModel.qml:38
1033-#: ../build/pkg/RemindersModel.qml:38
1034+#: ../RemindersModel.qml:38
1035 msgid "1 week"
1036 msgstr ""
1037
1038-#: ../RemindersModel.qml:39 ../build/install/RemindersModel.qml:39
1039-#: ../build/pkg/RemindersModel.qml:39
1040+#: ../RemindersModel.qml:39
1041 msgid "2 weeks"
1042 msgstr ""
1043
1044-#: ../Settings.qml:60 ../build/install/Settings.qml:60
1045-#: ../build/pkg/Settings.qml:60
1046+#: ../Settings.qml:55
1047 msgid "Show week numbers"
1048 msgstr ""
1049
1050+#: ../Settings.qml:71
1051+msgid "Show lunar calendar"
1052+msgstr ""
1053+
1054 #. TRANSLATORS: W refers to Week, followed by the actual week number (%1)
1055-#: ../TimeLineHeader.qml:54 ../build/install/TimeLineHeader.qml:54
1056-#: ../build/pkg/TimeLineHeader.qml:54
1057+#: ../TimeLineHeader.qml:54
1058 #, qt-format
1059 msgid "W%1"
1060 msgstr ""
1061
1062-#: ../TimeLineHeader.qml:66 ../build/install/TimeLineHeader.qml:66
1063-#: ../build/pkg/TimeLineHeader.qml:66
1064+#: ../TimeLineHeader.qml:66
1065 msgid "All Day"
1066 msgstr ""
1067
1068-#: ../YearView.qml:72 ../build/install/YearView.qml:66
1069-#: ../build/pkg/YearView.qml:72
1070+#: ../WeekView.qml:131 ../WeekView.qml:132
1071+msgid "MMM"
1072+msgstr ""
1073+
1074+#: ../YearView.qml:79
1075 #, qt-format
1076 msgid "Year %1"
1077 msgstr ""
1078
1079-#: ../build/install/calendar.qml:45 ../build/pkg/calendar.qml:45
1080-#: ../calendar.qml:45
1081+#: ../calendar.qml:46
1082 msgid ""
1083 "Calendar app accept four arguments: --starttime, --endtime, --newevent and --"
1084 "eventid. They will be managed by system. See the source for a full comment "
1085 "about them"
1086 msgstr ""
1087
1088-#: ../build/install/calendar.qml:255 ../build/install/calendar.qml:419
1089-#: ../build/pkg/calendar.qml:256 ../build/pkg/calendar.qml:420
1090-#: ../calendar.qml:256 ../calendar.qml:420
1091+#: ../calendar.qml:260 ../calendar.qml:434
1092 msgid "Year"
1093 msgstr ""
1094
1095-#: ../build/install/calendar.qml:263 ../build/install/calendar.qml:440
1096-#: ../build/pkg/calendar.qml:264 ../build/pkg/calendar.qml:441
1097-#: ../calendar.qml:264 ../calendar.qml:441
1098+#: ../calendar.qml:268 ../calendar.qml:455
1099 msgid "Month"
1100 msgstr ""
1101
1102-#: ../build/install/calendar.qml:271 ../build/install/calendar.qml:461
1103-#: ../build/pkg/calendar.qml:272 ../build/pkg/calendar.qml:462
1104-#: ../calendar.qml:272 ../calendar.qml:462
1105+#: ../calendar.qml:276 ../calendar.qml:476
1106 msgid "Week"
1107 msgstr ""
1108
1109-#: ../build/install/calendar.qml:279 ../build/install/calendar.qml:482
1110-#: ../build/pkg/calendar.qml:280 ../build/pkg/calendar.qml:483
1111-#: ../calendar.qml:280 ../calendar.qml:483
1112+#: ../calendar.qml:284 ../calendar.qml:497
1113 msgid "Day"
1114 msgstr ""
1115

Subscribers

People subscribed via source and target branches

to status/vote changes: