[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdepim-runtime] resources/dav/protocols: Merge remote-tracking branch 'origin/Applications/15.08'
From: Grégory_Oestreicher <greg () kamago ! net>
Date: 2015-08-31 20:42:44
Message-ID: E1ZWVue-0001JT-Jb () scm ! kde ! org
[Download RAW message or body]
Git commit 9540c8bb08c18e5bb0467ed0cb6f718444243d8d by Grégory Oestreicher.
Committed on 31/08/2015 at 20:42.
Pushed by goestreicher into branch 'master'.
Merge remote-tracking branch 'origin/Applications/15.08'
Conflicts:
resources/dav/protocols/caldavprotocol.cpp
resources/dav/protocols/carddavprotocol.cpp
M +6 -3 resources/dav/protocols/caldavprotocol.cpp
M +6 -4 resources/dav/protocols/carddavprotocol.cpp
http://commits.kde.org/kdepim-runtime/9540c8bb08c18e5bb0467ed0cb6f718444243d8d
diff --cc resources/dav/protocols/caldavprotocol.cpp
index 74ad225,fbdefd5..12a2a03
--- a/resources/dav/protocols/caldavprotocol.cpp
+++ b/resources/dav/protocols/caldavprotocol.cpp
@@@ -243,57 -200,9 +243,60 @@@ public
compfilterElement.appendChild(subcompfilterElement);
- mItemsQueries << document;
- mItemsMimeTypes << KCalCore::Journal::journalMimeType();
+ return document;
+ }
+
+ virtual QString mimeType() const
+ {
+ return KCalCore::Journal::journalMimeType();
+ }
+};
+
+class CaldavMultigetQueryBuilder : public XMLQueryBuilder
+{
+public:
+ virtual QDomDocument buildQuery() const
+ {
+ QDomDocument document;
+ QStringList urls = parameter(QStringLiteral("urls")).toStringList();
+ if (urls.isEmpty())
+ return document;
+
+ QDomElement multigetElement = \
document.createElementNS(QStringLiteral("urn:ietf:params:xml:ns:caldav"), \
QStringLiteral("calendar-multiget")); + \
document.appendChild(multigetElement); +
+ QDomElement propElement = document.createElementNS(QStringLiteral("DAV:"), \
QStringLiteral("prop")); + multigetElement.appendChild(propElement);
+
+ propElement.appendChild(document.createElementNS(QStringLiteral("DAV:"), \
QStringLiteral("getetag"))); + \
propElement.appendChild(document.createElementNS(QStringLiteral("urn:ietf:params:xml:ns:caldav"), \
QStringLiteral("calendar-data"))); +
+ foreach (const QString &url, urls) {
+ QDomElement hrefElement = \
document.createElementNS(QStringLiteral("DAV:"), \
QStringLiteral("href"));
- const QUrl pathUrl(url);
- const QString encodedUrl = pathUrl.path() + ( pathUrl.hasQuery() ?
- \
QLatin1String("?")+pathUrl.query() : QString() ); ++ const QUrl pathUrl = \
QUrl::fromUserInput(url); ++ QString encodedUrl = \
QString::fromAscii(pathUrl.encodedPath()); ++ if ( pathUrl.hasQuery() ) {
++ encodedUrl.append(QStringLiteral("?"));
++ encodedUrl.append(QString::fromAscii(pathUrl.encodedQuery()));
++ }
+
+ const QDomText textNode = document.createTextNode(encodedUrl);
+ hrefElement.appendChild(textNode);
+
+ multigetElement.appendChild(hrefElement);
+ }
+
+ return document;
}
+
+ virtual QString mimeType() const
+ {
+ return QString();
+ }
+};
+
+CaldavProtocol::CaldavProtocol()
+{
}
bool CaldavProtocol::supportsPrincipals() const
diff --cc resources/dav/protocols/carddavprotocol.cpp
index 76b775e,d8e7eb0..2db50b3
--- a/resources/dav/protocols/carddavprotocol.cpp
+++ b/resources/dav/protocols/carddavprotocol.cpp
@@@ -23,103 -23,22 +23,105 @@@
#include <QtCore/QStringList>
#include <QtXml/QDomDocument>
-CarddavProtocol::CarddavProtocol()
+class CarddavCollectionQueryBuilder : public XMLQueryBuilder
+{
+public:
+ virtual QDomDocument buildQuery() const
+ {
+ QDomDocument document;
+
+ QDomElement propfindElement = \
document.createElementNS(QStringLiteral("DAV:"), QStringLiteral("propfind")); + \
document.appendChild(propfindElement); +
+ QDomElement propElement = document.createElementNS(QStringLiteral("DAV:"), \
QStringLiteral("prop")); + propfindElement.appendChild(propElement);
+
+ propElement.appendChild(document.createElementNS(QStringLiteral("DAV:"), \
QStringLiteral("displayname"))); + \
propElement.appendChild(document.createElementNS(QStringLiteral("DAV:"), \
QStringLiteral("resourcetype"))); + \
propElement.appendChild(document.createElementNS(QStringLiteral("http://calendarserver.org/ns/"), \
QStringLiteral("getctag"))); +
+ return document;
+ }
+
+ virtual QString mimeType() const
+ {
+ return QString();
+ }
+};
+
+class CarddavListItemsQueryBuilder : public XMLQueryBuilder
{
- QDomDocument document;
+public:
+ virtual QDomDocument buildQuery() const
+ {
+ QDomDocument document;
- QDomElement propfindElement = document.createElementNS(QStringLiteral("DAV:"), \
QStringLiteral("propfind"));
- document.appendChild(propfindElement);
+ QDomElement propfindElement = \
document.createElementNS(QStringLiteral("DAV:"), QStringLiteral("propfind")); + \
document.appendChild(propfindElement);
- QDomElement propElement = document.createElementNS(QStringLiteral("DAV:"), \
QStringLiteral("prop"));
- propfindElement.appendChild(propElement);
+ QDomElement propElement = document.createElementNS(QStringLiteral("DAV:"), \
QStringLiteral("prop")); + propfindElement.appendChild(propElement);
- propElement.appendChild(document.createElementNS(QStringLiteral("DAV:"), \
QStringLiteral("displayname")));
- propElement.appendChild(document.createElementNS(QStringLiteral("DAV:"), \
QStringLiteral("resourcetype")));
- propElement.appendChild(document.createElementNS(QStringLiteral("DAV:"), \
QStringLiteral("getetag"))); + \
propElement.appendChild(document.createElementNS(QStringLiteral("DAV:"), \
QStringLiteral("displayname"))); + \
propElement.appendChild(document.createElementNS(QStringLiteral("DAV:"), \
QStringLiteral("resourcetype"))); + \
propElement.appendChild(document.createElementNS(QStringLiteral("DAV:"), \
QStringLiteral("getetag")));
- mItemsQueries << document;
- mItemsMimeTypes << KContacts::Addressee::mimeType();
+ return document;
+ }
+
+ virtual QString mimeType() const
+ {
+ return KContacts::Addressee::mimeType();
+ }
+};
+
+class CarddavMultigetQueryBuilder : public XMLQueryBuilder
+{
+public:
+ virtual QDomDocument buildQuery() const
+ {
+ QDomDocument document;
+ QStringList urls = parameter(QStringLiteral("urls")).toStringList();
+ if (urls.isEmpty())
+ return document;
+
+ QDomElement multigetElement = \
document.createElementNS(QStringLiteral("urn:ietf:params:xml:ns:carddav"), \
QStringLiteral("addressbook-multiget")); + \
document.appendChild(multigetElement); +
+ QDomElement propElement = document.createElementNS(QStringLiteral("DAV:"), \
QStringLiteral("prop")); + multigetElement.appendChild(propElement);
+
+ propElement.appendChild(document.createElementNS(QStringLiteral("DAV:"), \
QStringLiteral("getetag"))); + QDomElement addressDataElement = \
document.createElementNS(QStringLiteral("urn:ietf:params:xml:ns:carddav"), \
QStringLiteral("address-data")); + \
addressDataElement.appendChild(document.createElementNS(QStringLiteral("DAV:"), \
QStringLiteral("allprop"))); + propElement.appendChild(addressDataElement);
+
+ foreach (const QString &url, urls) {
+ QDomElement hrefElement = \
document.createElementNS(QStringLiteral("DAV:"), \
QStringLiteral("href"));
- const QUrl pathUrl(url);
- const QString encodedUrl = pathUrl.path() + ( pathUrl.hasQuery() ?
- \
QLatin1String("?")+pathUrl.query() :
- QString() );
++ const QUrl pathUrl = QUrl::fromUserInput(url);
++ QString encodedUrl = QString::fromAscii(pathUrl.encodedPath());
++ if ( pathUrl.hasQuery() ) {
++ encodedUrl.append(QStringLiteral("?"));
++ encodedUrl.append(QString::fromAscii(pathUrl.encodedQuery()));
++ }
+
+ const QDomText textNode = document.createTextNode(encodedUrl);
+ hrefElement.appendChild(textNode);
+
+ multigetElement.appendChild(hrefElement);
+ }
+
+ return document;
+ }
+
+ virtual QString mimeType() const
+ {
+ return QString();
+ }
+};
+
+CarddavProtocol::CarddavProtocol()
+{
}
bool CarddavProtocol::supportsPrincipals() const
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic