summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2018-07-13 09:56:44 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2018-07-13 10:00:31 +0200
commitfed73fe5ba7212fd886e0c6a06cefc684a3a7b88 (patch)
treef938341c3de478c70d0181d64daa930261a72cbc
parentaaae241a40ae438937df4f46b81ee65917e7213f (diff)
downloadkube-fed73fe5ba7212fd886e0c6a06cefc684a3a7b88.tar.gz
kube-fed73fe5ba7212fd886e0c6a06cefc684a3a7b88.zip
Setup a caldav resource as part of the kolabnow plugin
-rw-r--r--accounts/kolabnow/kolabnowsettings.cpp7
-rw-r--r--framework/src/domain/settings/accountsettings.cpp23
-rw-r--r--framework/src/domain/settings/accountsettings.h10
3 files changed, 39 insertions, 1 deletions
diff --git a/accounts/kolabnow/kolabnowsettings.cpp b/accounts/kolabnow/kolabnowsettings.cpp
index 8832621e..6f1f6502 100644
--- a/accounts/kolabnow/kolabnowsettings.cpp
+++ b/accounts/kolabnow/kolabnowsettings.cpp
@@ -40,13 +40,17 @@ void KolabnowSettings::save()
40 mSmtpServer = "smtps://smtp.kolabnow.com:587"; 40 mSmtpServer = "smtps://smtp.kolabnow.com:587";
41 mSmtpUsername = mEmailAddress; 41 mSmtpUsername = mEmailAddress;
42 42
43 mCardDavServer = "https://apps.kolabnow.com; 43 mCardDavServer = "https://apps.kolabnow.com";
44 mCardDavUsername = mEmailAddress; 44 mCardDavUsername = mEmailAddress;
45 45
46 mCalDavServer = "https://apps.kolabnow.com";
47 mCalDavUsername = mEmailAddress;
48
46 saveAccount(); 49 saveAccount();
47 saveImapResource(); 50 saveImapResource();
48 saveMailtransportResource(); 51 saveMailtransportResource();
49 saveCardDavResource(); 52 saveCardDavResource();
53 saveCalDavResource();
50 saveIdentity(); 54 saveIdentity();
51} 55}
52 56
@@ -55,6 +59,7 @@ void KolabnowSettings::remove()
55 removeResource(mMailtransportIdentifier); 59 removeResource(mMailtransportIdentifier);
56 removeResource(mImapIdentifier); 60 removeResource(mImapIdentifier);
57 removeResource(mCardDavIdentifier); 61 removeResource(mCardDavIdentifier);
62 removeResource(mCalDavIdentifier);
58 removeIdentity(); 63 removeIdentity();
59 removeAccount(); 64 removeAccount();
60} 65}
diff --git a/framework/src/domain/settings/accountsettings.cpp b/framework/src/domain/settings/accountsettings.cpp
index 9cd41518..00e633fd 100644
--- a/framework/src/domain/settings/accountsettings.cpp
+++ b/framework/src/domain/settings/accountsettings.cpp
@@ -60,6 +60,8 @@ void AccountSettings::setAccountIdentifier(const QByteArray &id)
60 mSmtpUsername = QString(); 60 mSmtpUsername = QString();
61 mCardDavServer = QString(); 61 mCardDavServer = QString();
62 mCardDavUsername = QString(); 62 mCardDavUsername = QString();
63 mCalDavServer = QString();
64 mCalDavUsername = QString();
63 mPath = QString(); 65 mPath = QString();
64 emit changed(); 66 emit changed();
65 emit imapResourceChanged(); 67 emit imapResourceChanged();
@@ -253,6 +255,19 @@ void AccountSettings::loadCardDavResource()
253 }).exec().waitForFinished(); 255 }).exec().waitForFinished();
254} 256}
255 257
258void AccountSettings::loadCalDavResource()
259{
260 Store::fetchOne<SinkResource>(Query().filter<SinkResource::Account>(mAccountIdentifier).filter<SinkResource::ResourceType>("sink.carddav"))
261 .then([this](const SinkResource &resource) {
262 mCalDavIdentifier = resource.identifier();
263 mCalDavServer = resource.getProperty("server").toString();
264 mCalDavUsername = resource.getProperty("username").toString();
265 emit cardDavResourceChanged();
266 }).onError([](const KAsync::Error &error) {
267 qWarning() << "Failed to load the CalDAV resource: " << error.errorMessage;
268 }).exec().waitForFinished();
269}
270
256 271
257template<typename ResourceType> 272template<typename ResourceType>
258static QByteArray saveResource(const QByteArray &accountIdentifier, const QByteArray &identifier, const std::map<QByteArray, QVariant> &properties) 273static QByteArray saveResource(const QByteArray &accountIdentifier, const QByteArray &identifier, const std::map<QByteArray, QVariant> &properties)
@@ -299,6 +314,14 @@ void AccountSettings::saveCardDavResource()
299 }); 314 });
300} 315}
301 316
317void AccountSettings::saveCalDavResource()
318{
319 mCalDavIdentifier = saveResource<CalDavResource>(mAccountIdentifier, mCalDavIdentifier, {
320 {"server", mCalDavServer},
321 {"username", mCalDavUsername}
322 });
323}
324
302void AccountSettings::saveMaildirResource() 325void AccountSettings::saveMaildirResource()
303{ 326{
304 mMaildirIdentifier = saveResource<MaildirResource>(mAccountIdentifier, mMaildirIdentifier, { 327 mMaildirIdentifier = saveResource<MaildirResource>(mAccountIdentifier, mMaildirIdentifier, {
diff --git a/framework/src/domain/settings/accountsettings.h b/framework/src/domain/settings/accountsettings.h
index 88a85b62..ac670a61 100644
--- a/framework/src/domain/settings/accountsettings.h
+++ b/framework/src/domain/settings/accountsettings.h
@@ -44,6 +44,9 @@ class KUBE_EXPORT AccountSettings : public QObject
44 Q_PROPERTY(QString carddavServer MEMBER mCardDavServer NOTIFY cardDavResourceChanged) 44 Q_PROPERTY(QString carddavServer MEMBER mCardDavServer NOTIFY cardDavResourceChanged)
45 Q_PROPERTY(QString carddavUsername MEMBER mCardDavUsername NOTIFY cardDavResourceChanged) 45 Q_PROPERTY(QString carddavUsername MEMBER mCardDavUsername NOTIFY cardDavResourceChanged)
46 46
47 Q_PROPERTY(QString caldavServer MEMBER mCalDavServer NOTIFY calDavResourceChanged)
48 Q_PROPERTY(QString caldavUsername MEMBER mCalDavUsername NOTIFY calDavResourceChanged)
49
47 Q_PROPERTY(QUrl path READ path WRITE setPath NOTIFY pathChanged) 50 Q_PROPERTY(QUrl path READ path WRITE setPath NOTIFY pathChanged)
48 Q_PROPERTY(QValidator* pathValidator READ pathValidator CONSTANT) 51 Q_PROPERTY(QValidator* pathValidator READ pathValidator CONSTANT)
49 52
@@ -75,6 +78,7 @@ signals:
75 void pathChanged(); 78 void pathChanged();
76 void changed(); 79 void changed();
77 void cardDavResourceChanged(); 80 void cardDavResourceChanged();
81 void calDavResourceChanged();
78 82
79protected: 83protected:
80 void saveAccount(); 84 void saveAccount();
@@ -83,6 +87,7 @@ protected:
83 void saveMailtransportResource(); 87 void saveMailtransportResource();
84 void saveIdentity(); 88 void saveIdentity();
85 void saveCardDavResource(); 89 void saveCardDavResource();
90 void saveCalDavResource();
86 91
87 void loadAccount(); 92 void loadAccount();
88 void loadImapResource(); 93 void loadImapResource();
@@ -90,6 +95,7 @@ protected:
90 void loadMailtransportResource(); 95 void loadMailtransportResource();
91 void loadIdentity(); 96 void loadIdentity();
92 void loadCardDavResource(); 97 void loadCardDavResource();
98 void loadCalDavResource();
93 99
94 void removeAccount(); 100 void removeAccount();
95 void removeResource(const QByteArray &identifier); 101 void removeResource(const QByteArray &identifier);
@@ -119,5 +125,9 @@ protected:
119 QByteArray mCardDavIdentifier; 125 QByteArray mCardDavIdentifier;
120 QString mCardDavServer; 126 QString mCardDavServer;
121 QString mCardDavUsername; 127 QString mCardDavUsername;
128
129 QByteArray mCalDavIdentifier;
130 QString mCalDavServer;
131 QString mCalDavUsername;
122}; 132};
123 133