ubuntu-touch-coreapps-reviewers team mailing list archive
-
ubuntu-touch-coreapps-reviewers team
-
Mailing list archive
-
Message #08850
[Merge] lp:~artmello/ubuntu-calendar-app/ubuntu-calendar-app-fix_1373945 into lp:ubuntu-calendar-app
Arthur Mello has proposed merging lp:~artmello/ubuntu-calendar-app/ubuntu-calendar-app-fix_1373945 into lp:ubuntu-calendar-app.
Commit message:
Add option to Settings page to set the default calendar
Requested reviews:
Ubuntu Calendar Developers (ubuntu-calendar-dev)
Related bugs:
Bug #1373945 in Ubuntu Calendar App: "There is no way to set default calendar, it always takes Personal"
https://bugs.launchpad.net/ubuntu-calendar-app/+bug/1373945
For more details, see:
https://code.launchpad.net/~artmello/ubuntu-calendar-app/ubuntu-calendar-app-fix_1373945/+merge/288988
Add option to Settings page to set the default calendar
--
Your team Ubuntu Calendar Developers is requested to review the proposed merge of lp:~artmello/ubuntu-calendar-app/ubuntu-calendar-app-fix_1373945 into lp:ubuntu-calendar-app.
=== modified file 'EventActions.qml'
--- EventActions.qml 2016-03-04 16:10:56 +0000
+++ EventActions.qml 2016-03-14 22:21:27 +0000
@@ -63,7 +63,7 @@
iconName: "settings"
text: i18n.tr("Settings")
onTriggered: {
- pageStack.push(Qt.resolvedUrl("Settings.qml"));
+ pageStack.push(Qt.resolvedUrl("Settings.qml"), {"eventModel": eventModel});
}
}
}
=== modified file 'EventListModel.qml'
--- EventListModel.qml 2016-03-04 16:10:56 +0000
+++ EventListModel.qml 2016-03-14 22:21:27 +0000
@@ -75,6 +75,20 @@
return cals;
}
+ function getWritableAndSelectedCollections(){
+ var cals = [];
+ var collections = eventModel.collections;
+ for(var i = 0 ; i < collections.length ; ++i) {
+ var cal = collections[i];
+ if( cal.extendedMetaData("collection-type") === "Calendar" &&
+ cal.extendedMetaData("collection-selected") === true &&
+ cal.extendedMetaData("collection-readonly") === false) {
+ cals.push(cal);
+ }
+ }
+ return cals;
+ }
+
function getWritableCollections(){
var cals = [];
var collections = eventModel.collections;
@@ -110,9 +124,9 @@
var cals = getCollections();
for(var i = 0 ; i < cals.length ; ++i) {
var cal = cals[i]
- cal.setExtendedMetaData("X-CAL-DEFAULT-CALENDAR", false);
if( cal.collectionId === collectionId) {
- cal.setExtendedMetaData("X-CAL-DEFAULT-CALENDAR", true);
+ cal.setExtendedMetaData("collection-default", true);
+ eventModel.saveCollection(cal);
}
}
}
=== modified file 'NewEvent.qml'
--- NewEvent.qml 2016-03-07 17:57:04 +0000
+++ NewEvent.qml 2016-03-14 22:21:27 +0000
@@ -71,6 +71,11 @@
root.canceled()
}
+ function updateEventInfo(date, allDay) {
+ selectCalendar(model.getDefaultCollection().collectionId);
+ updateEventDate(date, allDay)
+ }
+
function updateEventDate(date, allDay) {
root.startDate = undefined
root.endDate = undefined
@@ -117,7 +122,6 @@
//Data for Add events
function addEvent() {
event = Qt.createQmlObject("import QtOrganizer 5.0; Event { }", Qt.application,"NewEvent.qml");
- selectCalendar(model.getDefaultCollection().collectionId);
}
//Editing Event
=== modified file 'NewEventBottomEdge.qml'
--- NewEventBottomEdge.qml 2016-03-07 17:57:04 +0000
+++ NewEventBottomEdge.qml 2016-03-14 22:21:27 +0000
@@ -36,9 +36,9 @@
signal opened()
signal eventCreated(var event)
- function updateNewEventDate(date, allDay)
+ function updateNewEventInfo(date, allDay)
{
- _realPage.updateEventDate(date, allDay)
+ _realPage.updateEventInfo(date, allDay)
}
hint {
@@ -73,7 +73,7 @@
onCommitStarted: {
bottomEdge.opened()
- updateNewEventDate(bottomEdge.date ? bottomEdge.date : new Date(), false)
+ updateNewEventInfo(bottomEdge.date ? bottomEdge.date : new Date(), false)
}
Component.onCompleted: {
=== modified file 'Settings.qml'
--- Settings.qml 2016-03-02 19:55:52 +0000
+++ Settings.qml 2016-03-14 22:21:27 +0000
@@ -23,6 +23,7 @@
id: settingsPage
objectName: "settings"
+ property EventListModel eventModel
visible: false
header: PageHeader {
@@ -79,5 +80,61 @@
}
}
}
+
+ ListItem {
+ visible: defaultCalendarOptionSelector.model && defaultCalendarOptionSelector.model.length > 0
+ height: visible ? defaultCalendarLayout.height + divider.height : 0
+
+ Component.onCompleted: {
+ if (!eventModel || !defaultCalendarOptionSelector.model) {
+ return
+ }
+
+ var defaultCollectionId = eventModel.getDefaultCollection().collectionId
+ for (var i=0; i<defaultCalendarOptionSelector.model.length; ++i) {
+ if (defaultCalendarOptionSelector.model[i].collectionId === defaultCollectionId) {
+ defaultCalendarOptionSelector.selectedIndex = i
+ return
+ }
+ }
+
+ defaultCalendarOptionSelector.selectedIndex = 0
+ }
+
+ SlotsLayout {
+ id: defaultCalendarLayout
+
+ mainSlot: Item {
+ height: defaultCalendarOptionSelector.height
+
+ OptionSelector {
+ id: defaultCalendarOptionSelector
+
+ text: i18n.tr("Default calendar")
+ model: settingsPage.eventModel ? settingsPage.eventModel.getWritableAndSelectedCollections() : null
+ containerHeight: itemHeight * 4
+
+ delegate: OptionSelectorDelegate {
+ text: modelData.name
+ height: units.gu(4)
+
+ UbuntuShape{
+ anchors {
+ right: parent.right
+ rightMargin: units.gu(4)
+ verticalCenter: parent.verticalCenter
+ }
+
+ width: height
+ height: parent.height - units.gu(2)
+ color: modelData.color
+ }
+ }
+
+ onDelegateClicked: settingsPage.eventModel.setDefaultCollection(model[index].collectionId)
+ }
+ }
+ }
+ }
}
}
Follow ups