From: Christian Kamm Date: Wed, 26 Apr 2017 09:38:10 +0000 (+0200) Subject: Sharing: Switch from QtJson to Qt5's QJson #5710 X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~751 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=c5b6ec209adefd852e161280eec6cf179d577e9b;p=nextcloud-desktop.git Sharing: Switch from QtJson to Qt5's QJson #5710 --- diff --git a/src/gui/ocsjob.cpp b/src/gui/ocsjob.cpp index b6f9f4ece..bdd312d90 100644 --- a/src/gui/ocsjob.cpp +++ b/src/gui/ocsjob.cpp @@ -15,9 +15,10 @@ #include "ocsjob.h" #include "networkjobs.h" #include "account.h" -#include "json.h" #include +#include +#include namespace OCC { @@ -101,13 +102,14 @@ bool OcsJob::finished() { const QString replyData = reply()->readAll(); - bool success; - QVariantMap json = QtJson::parse(replyData, success).toMap(); - if (!success) { + QJsonParseError error; + auto json = QJsonDocument::fromJson(replyData.toUtf8(), &error); + if (error.error != QJsonParseError::NoError) { qDebug() << "Could not parse reply to" << _verb << Utility::concatUrlPath(account()->url(), path()) << _params + << error.errorString() << ":" << replyData; } @@ -126,11 +128,12 @@ bool OcsJob::finished() return true; } -int OcsJob::getJsonReturnCode(const QVariantMap &json, QString &message) +int OcsJob::getJsonReturnCode(const QJsonDocument &json, QString &message) { //TODO proper checking - int code = json.value("ocs").toMap().value("meta").toMap().value("statuscode").toInt(); - message = json.value("ocs").toMap().value("meta").toMap().value("message").toString(); + auto meta = json.object().value("ocs").toObject().value("meta").toObject(); + int code = meta.value("statuscode").toInt(); + message = meta.value("message").toString(); return code; } diff --git a/src/gui/ocsjob.h b/src/gui/ocsjob.h index 602b30550..9a02201e5 100644 --- a/src/gui/ocsjob.h +++ b/src/gui/ocsjob.h @@ -25,6 +25,8 @@ #define OCS_SUCCESS_STATUS_CODE 100 +class QJsonDocument; + namespace OCC { /** @@ -93,7 +95,7 @@ public: * @param message The message that is set in the metadata * @return The statuscode of the OCS response */ - static int getJsonReturnCode(const QVariantMap &json, QString &message); + static int getJsonReturnCode(const QJsonDocument &json, QString &message); protected slots: @@ -109,7 +111,7 @@ signals: * * @param reply the reply */ - void jobFinished(QVariantMap reply); + void jobFinished(QJsonDocument reply); /** * The status code was not one of the expected (passing) diff --git a/src/gui/ocsshareejob.cpp b/src/gui/ocsshareejob.cpp index 17034d609..652859dd9 100644 --- a/src/gui/ocsshareejob.cpp +++ b/src/gui/ocsshareejob.cpp @@ -20,7 +20,7 @@ OcsShareeJob::OcsShareeJob(AccountPtr account) : OcsJob(account) { setPath("ocs/v1.php/apps/files_sharing/api/v1/sharees"); - connect(this, SIGNAL(jobFinished(QVariantMap)), SLOT(jobDone(QVariantMap))); + connect(this, SIGNAL(jobFinished(QJsonDocument)), SLOT(jobDone(QJsonDocument))); } @@ -39,7 +39,7 @@ void OcsShareeJob::getSharees(const QString &search, start(); } -void OcsShareeJob::jobDone(const QVariantMap &reply) +void OcsShareeJob::jobDone(const QJsonDocument &reply) { emit shareeJobFinished(reply); } diff --git a/src/gui/ocsshareejob.h b/src/gui/ocsshareejob.h index 1b33b0d99..c38016768 100644 --- a/src/gui/ocsshareejob.h +++ b/src/gui/ocsshareejob.h @@ -16,7 +16,8 @@ #define OCSSHAREEJOB_H #include "ocsjob.h" -#include + +class QJsonDocument; namespace OCC { @@ -44,10 +45,10 @@ signals: * * @param reply The reply */ - void shareeJobFinished(const QVariantMap &reply); + void shareeJobFinished(const QJsonDocument &reply); private slots: - void jobDone(const QVariantMap &reply); + void jobDone(const QJsonDocument &reply); }; diff --git a/src/gui/ocssharejob.cpp b/src/gui/ocssharejob.cpp index 5fcba7d8c..b73cc72a1 100644 --- a/src/gui/ocssharejob.cpp +++ b/src/gui/ocssharejob.cpp @@ -15,9 +15,9 @@ #include "ocssharejob.h" #include "networkjobs.h" #include "account.h" -#include "json.h" #include +#include namespace OCC { @@ -25,7 +25,7 @@ OcsShareJob::OcsShareJob(AccountPtr account) : OcsJob(account) { setPath("ocs/v1.php/apps/files_sharing/api/v1/shares"); - connect(this, SIGNAL(jobFinished(QVariantMap)), this, SLOT(jobDone(QVariantMap))); + connect(this, SIGNAL(jobFinished(QJsonDocument)), this, SLOT(jobDone(QJsonDocument))); } void OcsShareJob::getShares(const QString &path) @@ -151,7 +151,7 @@ void OcsShareJob::getSharedWithMe() start(); } -void OcsShareJob::jobDone(QVariantMap reply) +void OcsShareJob::jobDone(QJsonDocument reply) { emit shareJobFinished(reply, _value); } diff --git a/src/gui/ocssharejob.h b/src/gui/ocssharejob.h index 1066becc7..6e2d83407 100644 --- a/src/gui/ocssharejob.h +++ b/src/gui/ocssharejob.h @@ -126,10 +126,10 @@ signals: * @param reply The reply * @param value To what did we set a variable (if we set any). */ - void shareJobFinished(QVariantMap reply, QVariant value); + void shareJobFinished(QJsonDocument reply, QVariant value); private slots: - void jobDone(QVariantMap reply); + void jobDone(QJsonDocument reply); private: QVariant _value; diff --git a/src/gui/sharee.cpp b/src/gui/sharee.cpp index b2458edf2..d7f79547d 100644 --- a/src/gui/sharee.cpp +++ b/src/gui/sharee.cpp @@ -15,6 +15,10 @@ #include "sharee.h" #include "ocsshareejob.h" +#include +#include +#include + namespace OCC { Sharee::Sharee(const QString shareWith, @@ -63,52 +67,52 @@ void ShareeModel::fetch(const QString &search, const ShareeSet &blacklist) _search = search; _shareeBlacklist = blacklist; OcsShareeJob *job = new OcsShareeJob(_account); - connect(job, SIGNAL(shareeJobFinished(QVariantMap)), SLOT(shareesFetched(QVariantMap))); + connect(job, SIGNAL(shareeJobFinished(QJsonDocument)), SLOT(shareesFetched(QJsonDocument))); connect(job, SIGNAL(ocsError(int,QString)), SIGNAL(displayErrorMessage(int,QString))); job->getSharees(_search, _type, 1, 50); } -void ShareeModel::shareesFetched(const QVariantMap &reply) +void ShareeModel::shareesFetched(const QJsonDocument &reply) { - auto data = reply.value("ocs").toMap().value("data").toMap(); + auto data = reply.object().value("ocs").toObject().value("data").toObject(); QVector> newSharees; /* * Todo properly loop all of this */ - auto exact = data.value("exact").toMap(); + auto exact = data.value("exact").toObject(); { - auto users = exact.value("users").toList(); + auto users = exact.value("users").toArray(); foreach(auto user, users) { - newSharees.append(parseSharee(user.toMap())); + newSharees.append(parseSharee(user.toObject())); } - auto groups = exact.value("groups").toList(); + auto groups = exact.value("groups").toArray(); foreach(auto group, groups) { - newSharees.append(parseSharee(group.toMap())); + newSharees.append(parseSharee(group.toObject())); } - auto remotes = exact.value("remotes").toList(); + auto remotes = exact.value("remotes").toArray(); foreach(auto remote, remotes) { - newSharees.append(parseSharee(remote.toMap())); + newSharees.append(parseSharee(remote.toObject())); } } { - auto users = data.value("users").toList(); + auto users = data.value("users").toArray(); foreach(auto user, users) { - newSharees.append(parseSharee(user.toMap())); + newSharees.append(parseSharee(user.toObject())); } } { - auto groups = data.value("groups").toList(); + auto groups = data.value("groups").toArray(); foreach(auto group, groups) { - newSharees.append(parseSharee(group.toMap())); + newSharees.append(parseSharee(group.toObject())); } } { - auto remotes = data.value("remotes").toList(); + auto remotes = data.value("remotes").toArray(); foreach(auto remote, remotes) { - newSharees.append(parseSharee(remote.toMap())); + newSharees.append(parseSharee(remote.toObject())); } } @@ -133,11 +137,11 @@ void ShareeModel::shareesFetched(const QVariantMap &reply) shareesReady(); } -QSharedPointer ShareeModel::parseSharee(const QVariantMap &data) +QSharedPointer ShareeModel::parseSharee(const QJsonObject &data) { const QString displayName = data.value("label").toString(); - const QString shareWith = data.value("value").toMap().value("shareWith").toString(); - Sharee::Type type = (Sharee::Type)data.value("value").toMap().value("shareType").toInt(); + const QString shareWith = data.value("value").toObject().value("shareWith").toString(); + Sharee::Type type = (Sharee::Type)data.value("value").toObject().value("shareType").toInt(); return QSharedPointer(new Sharee(shareWith, displayName, type)); } diff --git a/src/gui/sharee.h b/src/gui/sharee.h index f146c7405..150126970 100644 --- a/src/gui/sharee.h +++ b/src/gui/sharee.h @@ -25,6 +25,9 @@ #include "accountfwd.h" +class QJsonDocument; +class QJsonObject; + namespace OCC { class Sharee { @@ -72,10 +75,10 @@ signals: void displayErrorMessage(int code, const QString &); private slots: - void shareesFetched(const QVariantMap &reply); + void shareesFetched(const QJsonDocument &reply); private: - QSharedPointer parseSharee(const QVariantMap &data); + QSharedPointer parseSharee(const QJsonObject &data); void setNewSharees(const QVector> &newSharees); AccountPtr _account; diff --git a/src/gui/sharelinkwidget.h b/src/gui/sharelinkwidget.h index 7426f2219..c919b86d5 100644 --- a/src/gui/sharelinkwidget.h +++ b/src/gui/sharelinkwidget.h @@ -20,7 +20,6 @@ #include "sharepermissions.h" #include "QProgressIndicator.h" #include -#include #include #include diff --git a/src/gui/sharemanager.cpp b/src/gui/sharemanager.cpp index f4ee87cc2..3c532134d 100644 --- a/src/gui/sharemanager.cpp +++ b/src/gui/sharemanager.cpp @@ -17,6 +17,9 @@ #include "account.h" #include +#include +#include +#include namespace { struct CreateShare @@ -70,12 +73,12 @@ QSharedPointer Share::getShareWith() const void Share::setPermissions(Permissions permissions) { OcsShareJob *job = new OcsShareJob(_account); - connect(job, SIGNAL(shareJobFinished(QVariantMap, QVariant)), SLOT(slotPermissionsSet(QVariantMap, QVariant))); + connect(job, SIGNAL(shareJobFinished(QJsonDocument, QVariant)), SLOT(slotPermissionsSet(QJsonDocument, QVariant))); connect(job, SIGNAL(ocsError(int, QString)), SLOT(slotOcsError(int, QString))); job->setPermissions(getId(), permissions); } -void Share::slotPermissionsSet(const QVariantMap &, const QVariant &value) +void Share::slotPermissionsSet(const QJsonDocument &, const QVariant &value) { _permissions = (Permissions)value.toInt(); emit permissionsSet(); @@ -89,7 +92,7 @@ Share::Permissions Share::getPermissions() const void Share::deleteShare() { OcsShareJob *job = new OcsShareJob(_account); - connect(job, SIGNAL(shareJobFinished(QVariantMap, QVariant)), SLOT(slotDeleted())); + connect(job, SIGNAL(shareJobFinished(QJsonDocument, QVariant)), SLOT(slotDeleted())); connect(job, SIGNAL(ocsError(int, const QString &)), SLOT(slotOcsError(int, const QString &))); job->deleteShare(getId()); } @@ -154,7 +157,7 @@ bool LinkShare::getPublicUpload() void LinkShare::setPublicUpload(bool publicUpload) { OcsShareJob *job = new OcsShareJob(_account); - connect(job, SIGNAL(shareJobFinished(QVariantMap, QVariant)), SLOT(slotPublicUploadSet(QVariantMap, QVariant))); + connect(job, SIGNAL(shareJobFinished(QJsonDocument, QVariant)), SLOT(slotPublicUploadSet(QJsonDocument, QVariant))); connect(job, SIGNAL(ocsError(int, QString)), SLOT(slotOcsError(int, QString))); job->setPublicUpload(getId(), publicUpload); } @@ -167,7 +170,7 @@ QString LinkShare::getName() const void LinkShare::setName(const QString& name) { OcsShareJob *job = new OcsShareJob(_account); - connect(job, SIGNAL(shareJobFinished(QVariantMap,QVariant)), SLOT(slotNameSet(QVariantMap,QVariant))); + connect(job, SIGNAL(shareJobFinished(QJsonDocument,QVariant)), SLOT(slotNameSet(QJsonDocument,QVariant))); connect(job, SIGNAL(ocsError(int,QString)), SLOT(slotOcsError(int,QString))); job->setName(getId(), name); } @@ -177,7 +180,7 @@ QString LinkShare::getToken() const return _token; } -void LinkShare::slotPublicUploadSet(const QVariantMap&, const QVariant &value) +void LinkShare::slotPublicUploadSet(const QJsonDocument&, const QVariant &value) { if (value.toBool()) { _permissions = SharePermissionRead | SharePermissionUpdate | SharePermissionCreate; @@ -191,12 +194,12 @@ void LinkShare::slotPublicUploadSet(const QVariantMap&, const QVariant &value) void LinkShare::setPassword(const QString &password) { OcsShareJob *job = new OcsShareJob(_account); - connect(job, SIGNAL(shareJobFinished(QVariantMap, QVariant)), SLOT(slotPasswordSet(QVariantMap, QVariant))); + connect(job, SIGNAL(shareJobFinished(QJsonDocument, QVariant)), SLOT(slotPasswordSet(QJsonDocument, QVariant))); connect(job, SIGNAL(ocsError(int, QString)), SLOT(slotSetPasswordError(int,QString))); job->setPassword(getId(), password); } -void LinkShare::slotPasswordSet(const QVariantMap&, const QVariant &value) +void LinkShare::slotPasswordSet(const QJsonDocument&, const QVariant &value) { _passwordSet = value.toString() == ""; emit passwordSet(); @@ -205,20 +208,20 @@ void LinkShare::slotPasswordSet(const QVariantMap&, const QVariant &value) void LinkShare::setExpireDate(const QDate &date) { OcsShareJob *job = new OcsShareJob(_account); - connect(job, SIGNAL(shareJobFinished(QVariantMap, QVariant)), SLOT(slotExpireDateSet(QVariantMap, QVariant))); + connect(job, SIGNAL(shareJobFinished(QJsonDocument, QVariant)), SLOT(slotExpireDateSet(QJsonDocument, QVariant))); connect(job, SIGNAL(ocsError(int, QString)), SLOT(slotOcsError(int, QString))); job->setExpireDate(getId(), date); } -void LinkShare::slotExpireDateSet(const QVariantMap& reply, const QVariant &value) +void LinkShare::slotExpireDateSet(const QJsonDocument& reply, const QVariant &value) { - auto data = reply.value("ocs").toMap().value("data").toMap(); + auto data = reply.object().value("ocs").toObject().value("data").toObject(); /* * If the reply provides a data back (more REST style) * they use this date. */ - if (data.value("expiration").isValid()) { + if (data.value("expiration").isString()) { _expireDate = QDate::fromString(data.value("expiration").toString(), "yyyy-MM-dd 00:00:00"); } else { _expireDate = value.toDate(); @@ -231,7 +234,7 @@ void LinkShare::slotSetPasswordError(int statusCode, const QString &message) emit passwordSetError(statusCode, message); } -void LinkShare::slotNameSet(const QVariantMap &, const QVariant &value) +void LinkShare::slotNameSet(const QJsonDocument &, const QVariant &value) { _name = value.toString(); emit nameSet(); @@ -249,12 +252,12 @@ void ShareManager::createLinkShare(const QString &path, const QString &password) { OcsShareJob *job = new OcsShareJob(_account); - connect(job, SIGNAL(shareJobFinished(QVariantMap, QVariant)), SLOT(slotLinkShareCreated(QVariantMap))); + connect(job, SIGNAL(shareJobFinished(QJsonDocument, QVariant)), SLOT(slotLinkShareCreated(QJsonDocument))); connect(job, SIGNAL(ocsError(int, QString)), SLOT(slotOcsError(int, QString))); job->createLinkShare(path, name, password); } -void ShareManager::slotLinkShareCreated(const QVariantMap &reply) +void ShareManager::slotLinkShareCreated(const QJsonDocument &reply) { QString message; int code = OcsShareJob::getJsonReturnCode(reply, message); @@ -269,7 +272,7 @@ void ShareManager::slotLinkShareCreated(const QVariantMap &reply) } //Parse share - auto data = reply.value("ocs").toMap().value("data").toMap(); + auto data = reply.object().value("ocs").toObject().value("data").toObject(); QSharedPointer share(parseLinkShare(data)); emit linkShareCreated(share); @@ -291,12 +294,12 @@ void ShareManager::createShare(const QString& path, continuation.permissions = permissions; _jobContinuation[job] = QVariant::fromValue(continuation); - connect(job, SIGNAL(shareJobFinished(QVariantMap,QVariant)), SLOT(slotCreateShare(QVariantMap))); + connect(job, SIGNAL(shareJobFinished(QJsonDocument,QVariant)), SLOT(slotCreateShare(QJsonDocument))); connect(job, SIGNAL(ocsError(int,QString)), SLOT(slotOcsError(int,QString))); job->getSharedWithMe(); } -void ShareManager::slotCreateShare(const QVariantMap &reply) +void ShareManager::slotCreateShare(const QJsonDocument &reply) { if (!_jobContinuation.contains(sender())) return; @@ -308,8 +311,8 @@ void ShareManager::slotCreateShare(const QVariantMap &reply) // Find existing share permissions (if this was shared with us) Share::Permissions existingPermissions = SharePermissionDefault; - foreach (const QVariant & element, reply["ocs"].toMap()["data"].toList()) { - QVariantMap map = element.toMap(); + foreach (const QJsonValue & element, reply.object()["ocs"].toObject()["data"].toArray()) { + auto map = element.toObject(); if (map["file_target"] == cont.path) existingPermissions = Share::Permissions(map["permissions"].toInt()); } @@ -323,15 +326,15 @@ void ShareManager::slotCreateShare(const QVariantMap &reply) } OcsShareJob *job = new OcsShareJob(_account); - connect(job, SIGNAL(shareJobFinished(QVariantMap, QVariant)), SLOT(slotShareCreated(QVariantMap))); + connect(job, SIGNAL(shareJobFinished(QJsonDocument, QVariant)), SLOT(slotShareCreated(QJsonDocument))); connect(job, SIGNAL(ocsError(int, QString)), SLOT(slotOcsError(int, QString))); job->createShare(cont.path, cont.shareType, cont.shareWith, cont.permissions); } -void ShareManager::slotShareCreated(const QVariantMap &reply) +void ShareManager::slotShareCreated(const QJsonDocument &reply) { //Parse share - auto data = reply.value("ocs").toMap().value("data").toMap(); + auto data = reply.object().value("ocs").toObject().value("data").toObject(); QSharedPointer share(parseShare(data)); emit shareCreated(share); @@ -340,21 +343,21 @@ void ShareManager::slotShareCreated(const QVariantMap &reply) void ShareManager::fetchShares(const QString &path) { OcsShareJob *job = new OcsShareJob(_account); - connect(job, SIGNAL(shareJobFinished(QVariantMap, QVariant)), SLOT(slotSharesFetched(QVariantMap))); + connect(job, SIGNAL(shareJobFinished(QJsonDocument, QVariant)), SLOT(slotSharesFetched(QJsonDocument))); connect(job, SIGNAL(ocsError(int, QString)), SLOT(slotOcsError(int, QString))); job->getShares(path); } -void ShareManager::slotSharesFetched(const QVariantMap &reply) +void ShareManager::slotSharesFetched(const QJsonDocument &reply) { - auto tmpShares = reply.value("ocs").toMap().value("data").toList(); + auto tmpShares = reply.object().value("ocs").toObject().value("data").toArray(); const QString versionString = _account->serverVersion(); qDebug() << Q_FUNC_INFO << versionString << "Fetched" << tmpShares.count() << "shares"; QList> shares; foreach(const auto &share, tmpShares) { - auto data = share.toMap(); + auto data = share.toObject(); auto shareType = data.value("share_type").toInt(); @@ -373,7 +376,7 @@ void ShareManager::slotSharesFetched(const QVariantMap &reply) emit sharesFetched(shares); } -QSharedPointer ShareManager::parseLinkShare(const QVariantMap &data) +QSharedPointer ShareManager::parseLinkShare(const QJsonObject &data) { QUrl url; @@ -391,7 +394,7 @@ QSharedPointer ShareManager::parseLinkShare(const QVariantMap &data) } QDate expireDate; - if (data.value("expiration").isValid()) { + if (data.value("expiration").isString()) { expireDate = QDate::fromString(data.value("expiration").toString(), "yyyy-MM-dd 00:00:00"); } @@ -401,12 +404,12 @@ QSharedPointer ShareManager::parseLinkShare(const QVariantMap &data) data.value("name").toString(), data.value("token").toString(), (Share::Permissions)data.value("permissions").toInt(), - data.value("share_with").isValid(), + data.value("share_with").isString(), // has password? url, expireDate)); } -QSharedPointer ShareManager::parseShare(const QVariantMap &data) +QSharedPointer ShareManager::parseShare(const QJsonObject &data) { QSharedPointer sharee(new Sharee(data.value("share_with").toString(), data.value("share_with_displayname").toString(), diff --git a/src/gui/sharemanager.h b/src/gui/sharemanager.h index 3331b53c6..72e3d73de 100644 --- a/src/gui/sharemanager.h +++ b/src/gui/sharemanager.h @@ -25,7 +25,9 @@ #include #include #include -#include + +class QJsonDocument; +class QJsonObject; namespace OCC { @@ -116,7 +118,7 @@ protected slots: private slots: void slotDeleted(); - void slotPermissionsSet(const QVariantMap &, const QVariant &value); + void slotPermissionsSet(const QJsonDocument &, const QVariant &value); }; @@ -214,11 +216,11 @@ signals: void nameSet(); private slots: - void slotPasswordSet(const QVariantMap&, const QVariant &value); - void slotPublicUploadSet(const QVariantMap&, const QVariant &value); - void slotExpireDateSet(const QVariantMap& reply, const QVariant &value); + void slotPasswordSet(const QJsonDocument&, const QVariant &value); + void slotPublicUploadSet(const QJsonDocument&, const QVariant &value); + void slotExpireDateSet(const QJsonDocument& reply, const QVariant &value); void slotSetPasswordError(int statusCode, const QString &message); - void slotNameSet(const QVariantMap&, const QVariant &value); + void slotNameSet(const QJsonDocument&, const QVariant &value); private: QString _name; @@ -293,15 +295,15 @@ signals: void linkShareRequiresPassword(const QString &message); private slots: - void slotSharesFetched(const QVariantMap &reply); - void slotLinkShareCreated(const QVariantMap &reply); - void slotShareCreated(const QVariantMap &reply); + void slotSharesFetched(const QJsonDocument &reply); + void slotLinkShareCreated(const QJsonDocument &reply); + void slotShareCreated(const QJsonDocument &reply); void slotOcsError(int statusCode, const QString &message); - void slotCreateShare(const QVariantMap &reply); + void slotCreateShare(const QJsonDocument &reply); private: - QSharedPointer parseLinkShare(const QVariantMap &data); - QSharedPointer parseShare(const QVariantMap &data); + QSharedPointer parseLinkShare(const QJsonObject &data); + QSharedPointer parseShare(const QJsonObject &data); QMap _jobContinuation; AccountPtr _account; diff --git a/src/gui/shareusergroupwidget.cpp b/src/gui/shareusergroupwidget.cpp index 07041805f..aef9f890d 100644 --- a/src/gui/shareusergroupwidget.cpp +++ b/src/gui/shareusergroupwidget.cpp @@ -16,7 +16,6 @@ #include "ui_shareusergroupwidget.h" #include "ui_shareuserline.h" #include "account.h" -#include "json.h" #include "folderman.h" #include "folder.h" #include "accountmanager.h" diff --git a/src/gui/shareusergroupwidget.h b/src/gui/shareusergroupwidget.h index 501c37db5..6da721435 100644 --- a/src/gui/shareusergroupwidget.h +++ b/src/gui/shareusergroupwidget.h @@ -20,7 +20,6 @@ #include "QProgressIndicator.h" #include #include -#include #include #include #include