[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