From fed73fe5ba7212fd886e0c6a06cefc684a3a7b88 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Fri, 13 Jul 2018 09:56:44 +0200 Subject: Setup a caldav resource as part of the kolabnow plugin --- framework/src/domain/settings/accountsettings.cpp | 23 +++++++++++++++++++++++ framework/src/domain/settings/accountsettings.h | 10 ++++++++++ 2 files changed, 33 insertions(+) (limited to 'framework/src') 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) mSmtpUsername = QString(); mCardDavServer = QString(); mCardDavUsername = QString(); + mCalDavServer = QString(); + mCalDavUsername = QString(); mPath = QString(); emit changed(); emit imapResourceChanged(); @@ -253,6 +255,19 @@ void AccountSettings::loadCardDavResource() }).exec().waitForFinished(); } +void AccountSettings::loadCalDavResource() +{ + Store::fetchOne(Query().filter(mAccountIdentifier).filter("sink.carddav")) + .then([this](const SinkResource &resource) { + mCalDavIdentifier = resource.identifier(); + mCalDavServer = resource.getProperty("server").toString(); + mCalDavUsername = resource.getProperty("username").toString(); + emit cardDavResourceChanged(); + }).onError([](const KAsync::Error &error) { + qWarning() << "Failed to load the CalDAV resource: " << error.errorMessage; + }).exec().waitForFinished(); +} + template static QByteArray saveResource(const QByteArray &accountIdentifier, const QByteArray &identifier, const std::map &properties) @@ -299,6 +314,14 @@ void AccountSettings::saveCardDavResource() }); } +void AccountSettings::saveCalDavResource() +{ + mCalDavIdentifier = saveResource(mAccountIdentifier, mCalDavIdentifier, { + {"server", mCalDavServer}, + {"username", mCalDavUsername} + }); +} + void AccountSettings::saveMaildirResource() { mMaildirIdentifier = saveResource(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 Q_PROPERTY(QString carddavServer MEMBER mCardDavServer NOTIFY cardDavResourceChanged) Q_PROPERTY(QString carddavUsername MEMBER mCardDavUsername NOTIFY cardDavResourceChanged) + Q_PROPERTY(QString caldavServer MEMBER mCalDavServer NOTIFY calDavResourceChanged) + Q_PROPERTY(QString caldavUsername MEMBER mCalDavUsername NOTIFY calDavResourceChanged) + Q_PROPERTY(QUrl path READ path WRITE setPath NOTIFY pathChanged) Q_PROPERTY(QValidator* pathValidator READ pathValidator CONSTANT) @@ -75,6 +78,7 @@ signals: void pathChanged(); void changed(); void cardDavResourceChanged(); + void calDavResourceChanged(); protected: void saveAccount(); @@ -83,6 +87,7 @@ protected: void saveMailtransportResource(); void saveIdentity(); void saveCardDavResource(); + void saveCalDavResource(); void loadAccount(); void loadImapResource(); @@ -90,6 +95,7 @@ protected: void loadMailtransportResource(); void loadIdentity(); void loadCardDavResource(); + void loadCalDavResource(); void removeAccount(); void removeResource(const QByteArray &identifier); @@ -119,5 +125,9 @@ protected: QByteArray mCardDavIdentifier; QString mCardDavServer; QString mCardDavUsername; + + QByteArray mCalDavIdentifier; + QString mCalDavServer; + QString mCalDavUsername; }; -- cgit v1.2.3