diff --git a/gemini/cloud/dropbox/3rdparty/droprestapi.cc b/gemini/cloud/dropbox/3rdparty/droprestapi.cc --- a/gemini/cloud/dropbox/3rdparty/droprestapi.cc +++ b/gemini/cloud/dropbox/3rdparty/droprestapi.cc @@ -20,6 +20,7 @@ #include "droprestapi.h" #include "json.h" +#include #include @@ -77,7 +78,9 @@ QNetworkRequest rt; url.setUrl(QString("%1%2").arg(FILES_TRANSFER_URL).arg(dropbox_folder)); - url.addQueryItem("file", filename); + QUrlQuery query; + query.addQueryItem("file", filename); + url.setQuery(query); rt.setUrl(url); rt.setHeader(QNetworkRequest::ContentTypeHeader, QString("multipart/form-data; boundary=").append(boundaryStr)); @@ -98,29 +101,35 @@ QNetworkRequest DropRestAPI::__delete(QString dropbox_filepath){ QUrl url; url.setUrl(QString("%1").arg(FILE_DELETE_URL)); - url.addQueryItem("root","dropbox"); - url.addQueryItem("path",dropbox_filepath); + QUrlQuery query; + query.addQueryItem("root", "dropbox"); + query.addQueryItem("path", dropbox_filepath); + url.setQuery(query); QNetworkRequest rt(url); oauth->sign("GET", &rt); return rt; } QNetworkRequest DropRestAPI::__create(QString dropbox_filepath){ QUrl url; url.setUrl(QString("%1").arg(CREATE_FOLDER_URL)); - url.addQueryItem("root","dropbox"); - url.addQueryItem("path",dropbox_filepath); + QUrlQuery query; + query.addQueryItem("root", "dropbox"); + query.addQueryItem("path", dropbox_filepath); + url.setQuery(query); QNetworkRequest rt(url); oauth->sign("GET", &rt); return rt; } QNetworkRequest DropRestAPI::__move(QString path_source, QString path_destination){ QUrl url; url.setUrl(QString("%1").arg(FILE_MOVE_URL)); - url.addQueryItem("root", "dropbox"); - url.addQueryItem("from_path", path_source); - url.addQueryItem("to_path", path_destination); + QUrlQuery query; + query.addQueryItem("root", "dropbox"); + query.addQueryItem("from_path", path_source); + query.addQueryItem("to_path", path_destination); + url.setQuery(query); QNetworkRequest rt(url); oauth->sign("GET", &rt); @@ -130,9 +139,11 @@ QNetworkRequest DropRestAPI::__copy(QString path_source, QString path_destination){ QUrl url; url.setUrl(QString("%1").arg(FILE_COPY_URL)); - url.addQueryItem("root", "dropbox"); - url.addQueryItem("from_path", path_source); - url.addQueryItem("to_path", path_destination); + QUrlQuery query; + query.addQueryItem("root", "dropbox"); + query.addQueryItem("from_path", path_source); + query.addQueryItem("to_path", path_destination); + url.setQuery(query); QNetworkRequest rt(url); oauth->sign("GET", &rt); @@ -142,8 +153,10 @@ QNetworkRequest DropRestAPI::__shares(QString dropbox_filepath){ QUrl url; url.setUrl(QString("%1").arg(SHARES_URL)); - url.addQueryItem("root","dropbox"); - url.addQueryItem("path",dropbox_filepath); + QUrlQuery query; + query.addQueryItem("root", "dropbox"); + query.addQueryItem("path", dropbox_filepath); + url.setQuery(query); QNetworkRequest rt(url); oauth->sign("POST", &rt); diff --git a/gemini/cloud/dropbox/3rdparty/listmodel.h b/gemini/cloud/dropbox/3rdparty/listmodel.h --- a/gemini/cloud/dropbox/3rdparty/listmodel.h +++ b/gemini/cloud/dropbox/3rdparty/listmodel.h @@ -46,7 +46,6 @@ virtual ~ListItem() {} virtual QString id() const = 0; virtual QVariant data(int role) const = 0; -// virtual QHash roleNames() const = 0; Q_SIGNALS: void dataChanged(); @@ -73,8 +72,6 @@ QModelIndex indexFromItem( const ListItem* item) const; void clear(); - //QHash roleNames() const; - int count() const; int getCount() { return this->rowCount();} Q_INVOKABLE QVariantMap get(int row) const; @@ -85,6 +82,9 @@ Q_SIGNALS: void countChanged(); +protected: + QHash roleNames() const; + private: ListItem* m_prototype; QList m_list; diff --git a/gemini/cloud/dropbox/3rdparty/listmodel.cc b/gemini/cloud/dropbox/3rdparty/listmodel.cc --- a/gemini/cloud/dropbox/3rdparty/listmodel.cc +++ b/gemini/cloud/dropbox/3rdparty/listmodel.cc @@ -25,6 +25,10 @@ ListModel::ListModel(ListItem* prototype, QObject *parent) : QAbstractListModel(parent), m_prototype(prototype) +{ +} + +QHash ListModel::roleNames() const { QHash roles; roles[ListItem::ModifiedRole] = "modified"; @@ -41,13 +45,9 @@ roles[FileTransferItem::In_queueRole] = "in_queue"; roles[FileTransferItem::Is_CancelledRolse] = "is_cancelled"; roles[FileTransferItem::DateRole] = "date"; - setRoleNames(roles); + return roles; } -// QHash ListModel::roleNames() const { -// return m_prototype->roleNames(); -// } - int ListModel::rowCount(const QModelIndex &parent) const { Q_UNUSED(parent); diff --git a/gemini/cloud/dropbox/3rdparty/oauth.cc b/gemini/cloud/dropbox/3rdparty/oauth.cc --- a/gemini/cloud/dropbox/3rdparty/oauth.cc +++ b/gemini/cloud/dropbox/3rdparty/oauth.cc @@ -20,6 +20,7 @@ #include "oauth.h" #include +#include #include #include #include @@ -105,7 +106,7 @@ QList< QPair > parameters; - parameters.append(url->queryItems()); + parameters.append(QUrlQuery(*url).queryItems()); oAuthHeader.remove("OAuth "); QStringList oAuthParameters =