Merge lp:~renatofilho/qtorganizer5-eds/use-qsettings into lp:qtorganizer5-eds

Proposed by Renato Araujo Oliveira Filho
Status: Merged
Approved by: Bill Filler
Approved revision: 99
Merged at revision: 99
Proposed branch: lp:~renatofilho/qtorganizer5-eds/use-qsettings
Merge into: lp:qtorganizer5-eds
Diff against target: 157 lines (+48/-20)
2 files modified
organizer/qorganizer-eds-source-registry.cpp (+45/-20)
organizer/qorganizer-eds-source-registry.h (+3/-0)
To merge this branch: bzr merge lp:~renatofilho/qtorganizer5-eds/use-qsettings
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Approve
Ubuntu Phablet Team Pending
Review via email: mp+289397@code.launchpad.net

Commit message

Store default collection information on QSettings.

Confined applications does not have access to dconf.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'organizer/qorganizer-eds-source-registry.cpp'
2--- organizer/qorganizer-eds-source-registry.cpp 2016-03-14 20:19:46 +0000
3+++ organizer/qorganizer-eds-source-registry.cpp 2016-03-17 17:03:37 +0000
4@@ -5,6 +5,8 @@
5
6 using namespace QtOrganizer;
7
8+static const QString DEFAULT_COLLECTION_SETTINGS("qtpim/default-colection");
9+
10 SourceRegistry::SourceRegistry(QObject *parent)
11 : QObject(parent),
12 m_sourceRegistry(0),
13@@ -80,29 +82,28 @@
14 G_CALLBACK(SourceRegistry::onDefaultCalendarChanged),
15 this);
16
17- // We use calendar as default source, if you are trying to use other source type
18- // you need to set the item source id manually
19- ESource *defaultCalendarSource = e_source_registry_ref_default_calendar(m_sourceRegistry);
20-
21+ QByteArray defaultId = defaultCollectionId();
22 GList *sources = e_source_registry_list_sources(m_sourceRegistry, 0);
23+ bool foundDefault = false;
24 for(int i = 0, iMax = g_list_length(sources); i < iMax; i++) {
25 ESource *source = E_SOURCE(g_list_nth_data(sources, i));
26- bool isDefault = e_source_equal(defaultCalendarSource, source);
27-
28+ bool isDefault = (g_strcmp0(defaultId.constData(), e_source_get_uid(source)) == 0);
29 QOrganizerCollection collection = registerSource(source, isDefault);
30+
31 if (isDefault) {
32+ foundDefault = true;
33 m_defaultCollection = collection;
34 }
35 }
36
37+ if (!foundDefault) {
38+ //fallback to first collection
39+ m_defaultCollection = m_collections.first();
40+ }
41+
42 g_list_free_full(sources, g_object_unref);
43-
44- if (defaultCalendarSource) {
45- g_object_unref(defaultCalendarSource);
46- }
47 }
48
49-
50 QtOrganizer::QOrganizerCollection SourceRegistry::defaultCollection() const
51 {
52 return m_defaultCollection;
53@@ -113,12 +114,9 @@
54 if (m_defaultCollection.id() == collection.id())
55 return;
56
57- QOrganizerEDSCollectionEngineId *eid = m_collectionsMap.value(collection.id().toString(), 0);
58- if (eid && eid->m_esource) {
59- e_source_registry_set_default_calendar(m_sourceRegistry, eid->m_esource);
60- } else {
61- qWarning() << "Fail to set default collection" << collection.id();
62- }
63+ updateDefaultCollection(&collection);
64+ QString edsId = m_defaultCollection.id().toString().split(":").last();
65+ m_settings.setValue(DEFAULT_COLLECTION_SETTINGS, edsId);
66 }
67
68 QOrganizerCollection SourceRegistry::collection(const QString &collectionId) const
69@@ -184,6 +182,12 @@
70 g_object_unref(client);
71 }
72 }
73+
74+ // update default collection if necessary
75+ if (m_defaultCollection.id().toString() == collectionId) {
76+ m_defaultCollection = QOrganizerCollection();
77+ setDefaultCollection(m_collections.first());
78+ }
79 }
80
81 EClient* SourceRegistry::client(const QString &collectionId)
82@@ -290,9 +294,11 @@
83 m_defaultCollection = *collection;
84 Q_EMIT sourceUpdated(m_defaultCollection.id().toString());
85
86- QOrganizerCollection &old = m_collections[oldDefaultCollectionId];
87- old.setExtendedMetaData(COLLECTION_DEFAULT_METADATA, false);
88- Q_EMIT sourceUpdated(oldDefaultCollectionId);
89+ if (m_collections.contains(oldDefaultCollectionId)) {
90+ QOrganizerCollection &old = m_collections[oldDefaultCollectionId];
91+ old.setExtendedMetaData(COLLECTION_DEFAULT_METADATA, false);
92+ Q_EMIT sourceUpdated(oldDefaultCollectionId);
93+ }
94 }
95 }
96
97@@ -309,6 +315,20 @@
98 return collection;
99 }
100
101+QByteArray SourceRegistry::defaultCollectionId() const
102+{
103+ QVariant id = m_settings.value(DEFAULT_COLLECTION_SETTINGS);
104+ if (id.isValid()) {
105+ return id.toString().toUtf8();
106+ }
107+
108+ // fallback to eds default collection
109+ ESource *defaultCalendarSource = e_source_registry_ref_default_calendar(m_sourceRegistry);
110+ QString eId = QString::fromUtf8(e_source_get_uid(defaultCalendarSource));
111+ g_object_unref(defaultCalendarSource);
112+ return eId.toUtf8();
113+}
114+
115 void SourceRegistry::onSourceAdded(ESourceRegistry *registry,
116 ESource *source,
117 SourceRegistry *self)
118@@ -349,6 +369,11 @@
119 Q_UNUSED(registry);
120 Q_UNUSED(pspec);
121
122+ if (self->m_settings.value(DEFAULT_COLLECTION_SETTINGS).isValid()) {
123+ // we are using client confinguration
124+ return;
125+ }
126+
127 ESource *defaultCalendar = e_source_registry_ref_default_calendar(self->m_sourceRegistry);
128 if (!defaultCalendar)
129 return;
130
131=== modified file 'organizer/qorganizer-eds-source-registry.h'
132--- organizer/qorganizer-eds-source-registry.h 2016-03-14 20:19:46 +0000
133+++ organizer/qorganizer-eds-source-registry.h 2016-03-17 17:03:37 +0000
134@@ -20,6 +20,7 @@
135 #define __QORGANIZER_EDS_SOURCEREGISTRY_H__
136
137 #include <QtCore/QObject>
138+#include <QtCore/QSettings>
139
140 #include <QtOrganizer/QOrganizerCollectionId>
141 #include <QtOrganizer/QOrganizerCollection>
142@@ -67,6 +68,7 @@
143 void sourceUpdated(const QString &collectionId);
144
145 private:
146+ QSettings m_settings;
147 ESourceRegistry *m_sourceRegistry;
148 QtOrganizer::QOrganizerCollection m_defaultCollection;
149 QMap<QString, EClient*> m_clients;
150@@ -82,6 +84,7 @@
151 int m_sourceDisabledId;
152 int m_defaultSourceChangedId;
153
154+ QByteArray defaultCollectionId() const;
155 QString findCollection(ESource *source) const;
156 QtOrganizer::QOrganizerCollection registerSource(ESource *source, bool isDefault = false);
157 void updateDefaultCollection(QtOrganizer::QOrganizerCollection *collection);

Subscribers

People subscribed via source and target branches