Working Qt 5 native JSON.

This commit is contained in:
Martin Rotter 2016-04-18 12:21:09 +02:00
parent 76b4c12584
commit e1f6ddc97d
5 changed files with 66 additions and 62 deletions

View file

@ -78,7 +78,10 @@ bool Application::isFirstRun() {
} }
bool Application::isFirstRun(const QString &version) { bool Application::isFirstRun(const QString &version) {
if (version == APP_VERSION) {
// Check this only if checked version is equal to actual version.
return settings()->value(GROUP(General), QString(General::FirstRun) + QL1C('_') + version, true).toBool(); return settings()->value(GROUP(General), QString(General::FirstRun) + QL1C('_') + version, true).toBool();
}
} }
void Application::eliminateFirstRun() { void Application::eliminateFirstRun() {

View file

@ -27,6 +27,7 @@
#include "services/owncloud/owncloudfeed.h" #include "services/owncloud/owncloudfeed.h"
#include <QJsonArray> #include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject> #include <QJsonObject>
#include <QPixmap> #include <QPixmap>
@ -271,7 +272,7 @@ QNetworkReply::NetworkError OwnCloudNetworkFactory::markMessagesRead(RootItem::R
NetworkResult network_reply = NetworkFactory::uploadData(final_url, NetworkResult network_reply = NetworkFactory::uploadData(final_url,
qApp->settings()->value(GROUP(Feeds), qApp->settings()->value(GROUP(Feeds),
SETTING(Feeds::UpdateTimeout)).toInt(), SETTING(Feeds::UpdateTimeout)).toInt(),
QJsonDocument(json).toJson(), QJsonDocument(json).toJson(QJsonDocument::Compact),
"application/json", "application/json",
raw_output, raw_output,
QNetworkAccessManager::PutOperation, QNetworkAccessManager::PutOperation,
@ -314,7 +315,7 @@ QNetworkReply::NetworkError OwnCloudNetworkFactory::markMessagesStarred(RootItem
NetworkResult network_reply = NetworkFactory::uploadData(final_url, NetworkResult network_reply = NetworkFactory::uploadData(final_url,
qApp->settings()->value(GROUP(Feeds), qApp->settings()->value(GROUP(Feeds),
SETTING(Feeds::UpdateTimeout)).toInt(), SETTING(Feeds::UpdateTimeout)).toInt(),
QJsonDocument(json).toJson(), QJsonDocument(json).toJson(QJsonDocument::Compact),
"application/json", "application/json",
raw_output, raw_output,
QNetworkAccessManager::PutOperation, QNetworkAccessManager::PutOperation,
@ -337,7 +338,7 @@ void OwnCloudNetworkFactory::setUserId(const QString &userId) {
} }
OwnCloudResponse::OwnCloudResponse(const QString &raw_content) { OwnCloudResponse::OwnCloudResponse(const QString &raw_content) {
m_rawContent = QJsonDocument::fromJson(raw_content.toUtf8());; m_rawContent = QJsonDocument::fromJson(raw_content.toUtf8()).object();
} }
OwnCloudResponse::~OwnCloudResponse() { OwnCloudResponse::~OwnCloudResponse() {
@ -348,7 +349,7 @@ bool OwnCloudResponse::isLoaded() const {
} }
QString OwnCloudResponse::toString() const { QString OwnCloudResponse::toString() const {
return m_rawContent.toJson(); return QJsonDocument(m_rawContent).toJson(QJsonDocument::Compact);
} }
OwnCloudUserResponse::OwnCloudUserResponse(const QString &raw_content) : OwnCloudResponse(raw_content) { OwnCloudUserResponse::OwnCloudUserResponse(const QString &raw_content) : OwnCloudResponse(raw_content) {
@ -359,7 +360,7 @@ OwnCloudUserResponse::~OwnCloudUserResponse() {
QString OwnCloudUserResponse::displayName() const { QString OwnCloudUserResponse::displayName() const {
if (isLoaded()) { if (isLoaded()) {
return m_rawContent.object()["displayName"].toString(); return m_rawContent["displayName"].toString();
} }
else { else {
return QString(); return QString();
@ -368,7 +369,7 @@ QString OwnCloudUserResponse::displayName() const {
QString OwnCloudUserResponse::userId() const { QString OwnCloudUserResponse::userId() const {
if (isLoaded()) { if (isLoaded()) {
return m_rawContent.object()["userId"].toString(); return m_rawContent["userId"].toString();
} }
else { else {
return QString(); return QString();
@ -377,7 +378,7 @@ QString OwnCloudUserResponse::userId() const {
QDateTime OwnCloudUserResponse::lastLoginTime() const { QDateTime OwnCloudUserResponse::lastLoginTime() const {
if (isLoaded()) { if (isLoaded()) {
return QDateTime::fromMSecsSinceEpoch(m_rawContent.object()["lastLoginTimestamp"].toVariant().value<qint64>()); return QDateTime::fromMSecsSinceEpoch(m_rawContent["lastLoginTimestamp"].toVariant().value<qint64>());
} }
else { else {
return QDateTime(); return QDateTime();
@ -386,7 +387,7 @@ QDateTime OwnCloudUserResponse::lastLoginTime() const {
QIcon OwnCloudUserResponse::avatar() const { QIcon OwnCloudUserResponse::avatar() const {
if (isLoaded()) { if (isLoaded()) {
QString image_data = m_rawContent.object()["avatar"].toObject()["data"].toString(); QString image_data = m_rawContent["avatar"].toObject()["data"].toString();
QByteArray decoded_data = QByteArray::fromBase64(image_data.toLocal8Bit()); QByteArray decoded_data = QByteArray::fromBase64(image_data.toLocal8Bit());
QPixmap image; QPixmap image;
@ -407,7 +408,7 @@ OwnCloudStatusResponse::~OwnCloudStatusResponse() {
QString OwnCloudStatusResponse::version() const { QString OwnCloudStatusResponse::version() const {
if (isLoaded()) { if (isLoaded()) {
return m_rawContent.object()["version"].toString(); return m_rawContent["version"].toString();
} }
else { else {
return QString(); return QString();
@ -416,7 +417,7 @@ QString OwnCloudStatusResponse::version() const {
bool OwnCloudStatusResponse::misconfiguredCron() const { bool OwnCloudStatusResponse::misconfiguredCron() const {
if (isLoaded()) { if (isLoaded()) {
return m_rawContent.object()["warnings"].toObject()["improperlyConfiguredCron"].toBool(); return m_rawContent["warnings"].toObject()["improperlyConfiguredCron"].toBool();
} }
else { else {
return false; return false;
@ -492,13 +493,13 @@ OwnCloudGetMessagesResponse::~OwnCloudGetMessagesResponse() {
QList<Message> OwnCloudGetMessagesResponse::messages() const { QList<Message> OwnCloudGetMessagesResponse::messages() const {
QList<Message> msgs; QList<Message> msgs;
foreach (QVariant message, m_rawContent.object()["items"].toArray().toVariantList()) { foreach (QJsonValue message, m_rawContent["items"].toArray()) {
QMap<QString,QVariant> message_map = message.toMap(); QJsonObject message_map = message.toObject();
Message msg; Message msg;
msg.m_author = message_map["author"].toString(); msg.m_author = message_map["author"].toString();
msg.m_contents = message_map["body"].toString(); msg.m_contents = message_map["body"].toString();
msg.m_created = TextFactory::parseDateTime(message_map["pubDate"].value<qint64>() * 1000); msg.m_created = TextFactory::parseDateTime(message_map["pubDate"].toVariant().value<qint64>() * 1000);
msg.m_createdFromFeed = true; msg.m_createdFromFeed = true;
msg.m_customId = message_map["id"].toString(); msg.m_customId = message_map["id"].toString();
msg.m_customHash = message_map["guidHash"].toString(); msg.m_customHash = message_map["guidHash"].toString();

View file

@ -25,7 +25,7 @@
#include <QString> #include <QString>
#include <QIcon> #include <QIcon>
#include <QNetworkReply> #include <QNetworkReply>
#include <QJsonDocument> #include <QJsonObject>
class OwnCloudResponse { class OwnCloudResponse {
@ -37,7 +37,7 @@ class OwnCloudResponse {
QString toString() const; QString toString() const;
protected: protected:
QJsonDocument m_rawContent; QJsonObject m_rawContent;
}; };
class OwnCloudUserResponse : public OwnCloudResponse { class OwnCloudUserResponse : public OwnCloudResponse {

View file

@ -27,7 +27,7 @@
#include "miscellaneous/textfactory.h" #include "miscellaneous/textfactory.h"
#include "network-web/networkfactory.h" #include "network-web/networkfactory.h"
#include <QJsonObject> #include <QJsonDocument>
#include <QJsonArray> #include <QJsonArray>
#include <QPair> #include <QPair>
#include <QVariant> #include <QVariant>
@ -89,7 +89,7 @@ TtRssLoginResponse TtRssNetworkFactory::login() {
QByteArray result_raw; QByteArray result_raw;
NetworkResult network_reply = NetworkFactory::uploadData(m_url, qApp->settings()->value(GROUP(Feeds), NetworkResult network_reply = NetworkFactory::uploadData(m_url, qApp->settings()->value(GROUP(Feeds),
SETTING(Feeds::UpdateTimeout)).toInt(), SETTING(Feeds::UpdateTimeout)).toInt(),
QJsonDocument(json).toJson(), CONTENT_TYPE, result_raw, QJsonDocument(json).toJson(QJsonDocument::Compact), CONTENT_TYPE, result_raw,
QNetworkAccessManager::PostOperation, QNetworkAccessManager::PostOperation,
m_authIsUsed, m_authUsername, m_authPassword); m_authIsUsed, m_authUsername, m_authPassword);
TtRssLoginResponse login_response(QString::fromUtf8(result_raw)); TtRssLoginResponse login_response(QString::fromUtf8(result_raw));
@ -116,7 +116,7 @@ TtRssResponse TtRssNetworkFactory::logout() {
QByteArray result_raw; QByteArray result_raw;
NetworkResult network_reply = NetworkFactory::uploadData(m_url, qApp->settings()->value(GROUP(Feeds), NetworkResult network_reply = NetworkFactory::uploadData(m_url, qApp->settings()->value(GROUP(Feeds),
SETTING(Feeds::UpdateTimeout)).toInt(), SETTING(Feeds::UpdateTimeout)).toInt(),
QJsonDocument(json).toJson(), CONTENT_TYPE, result_raw, QJsonDocument(json).toJson(QJsonDocument::Compact), CONTENT_TYPE, result_raw,
QNetworkAccessManager::PostOperation, QNetworkAccessManager::PostOperation,
m_authIsUsed, m_authUsername, m_authPassword); m_authIsUsed, m_authUsername, m_authPassword);
@ -158,7 +158,7 @@ TtRssGetFeedsCategoriesResponse TtRssNetworkFactory::getFeedsCategories() {
login(); login();
json["sid"] = m_sessionId; json["sid"] = m_sessionId;
network_reply = NetworkFactory::uploadData(m_url, timeout, QJsonDocument(json).toJson(), CONTENT_TYPE, result_raw, network_reply = NetworkFactory::uploadData(m_url, timeout, QJsonDocument(json).toJson(QJsonDocument::Compact), CONTENT_TYPE, result_raw,
QNetworkAccessManager::PostOperation, QNetworkAccessManager::PostOperation,
m_authIsUsed, m_authUsername, m_authPassword); m_authIsUsed, m_authUsername, m_authPassword);
result = TtRssGetFeedsCategoriesResponse(QString::fromUtf8(result_raw)); result = TtRssGetFeedsCategoriesResponse(QString::fromUtf8(result_raw));
@ -188,7 +188,7 @@ TtRssGetHeadlinesResponse TtRssNetworkFactory::getHeadlines(int feed_id, int lim
const int timeout = qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::UpdateTimeout)).toInt(); const int timeout = qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::UpdateTimeout)).toInt();
QByteArray result_raw; QByteArray result_raw;
NetworkResult network_reply = NetworkFactory::uploadData(m_url, timeout, QJsonDocument(json).toJson(), NetworkResult network_reply = NetworkFactory::uploadData(m_url, timeout, QJsonDocument(json).toJson(QJsonDocument::Compact),
CONTENT_TYPE, result_raw, CONTENT_TYPE, result_raw,
QNetworkAccessManager::PostOperation, QNetworkAccessManager::PostOperation,
m_authIsUsed, m_authUsername, m_authPassword); m_authIsUsed, m_authUsername, m_authPassword);
@ -199,7 +199,7 @@ TtRssGetHeadlinesResponse TtRssNetworkFactory::getHeadlines(int feed_id, int lim
login(); login();
json["sid"] = m_sessionId; json["sid"] = m_sessionId;
network_reply = NetworkFactory::uploadData(m_url, timeout, QJsonDocument(json).toJson(), CONTENT_TYPE, result_raw, network_reply = NetworkFactory::uploadData(m_url, timeout, QJsonDocument(json).toJson(QJsonDocument::Compact), CONTENT_TYPE, result_raw,
QNetworkAccessManager::PostOperation, QNetworkAccessManager::PostOperation,
m_authIsUsed, m_authUsername, m_authPassword); m_authIsUsed, m_authUsername, m_authPassword);
result = TtRssGetHeadlinesResponse(QString::fromUtf8(result_raw)); result = TtRssGetHeadlinesResponse(QString::fromUtf8(result_raw));
@ -225,7 +225,7 @@ TtRssUpdateArticleResponse TtRssNetworkFactory::updateArticles(const QStringList
const int timeout = qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::UpdateTimeout)).toInt(); const int timeout = qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::UpdateTimeout)).toInt();
QByteArray result_raw; QByteArray result_raw;
NetworkResult network_reply = NetworkFactory::uploadData(m_url, timeout, QJsonDocument(json).toJson(), NetworkResult network_reply = NetworkFactory::uploadData(m_url, timeout, QJsonDocument(json).toJson(QJsonDocument::Compact),
CONTENT_TYPE, result_raw, CONTENT_TYPE, result_raw,
QNetworkAccessManager::PostOperation, QNetworkAccessManager::PostOperation,
m_authIsUsed, m_authUsername, m_authPassword); m_authIsUsed, m_authUsername, m_authPassword);
@ -236,7 +236,7 @@ TtRssUpdateArticleResponse TtRssNetworkFactory::updateArticles(const QStringList
login(); login();
json["sid"] = m_sessionId; json["sid"] = m_sessionId;
network_reply = NetworkFactory::uploadData(m_url, timeout, QJsonDocument(json).toJson(), network_reply = NetworkFactory::uploadData(m_url, timeout, QJsonDocument(json).toJson(QJsonDocument::Compact),
CONTENT_TYPE, result_raw, CONTENT_TYPE, result_raw,
QNetworkAccessManager::PostOperation, QNetworkAccessManager::PostOperation,
m_authIsUsed, m_authUsername, m_authPassword); m_authIsUsed, m_authUsername, m_authPassword);
@ -267,7 +267,7 @@ TtRssSubscribeToFeedResponse TtRssNetworkFactory::subscribeToFeed(const QString
const int timeout = qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::UpdateTimeout)).toInt(); const int timeout = qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::UpdateTimeout)).toInt();
QByteArray result_raw; QByteArray result_raw;
NetworkResult network_reply = NetworkFactory::uploadData(m_url, timeout, QJsonDocument(json).toJson(), NetworkResult network_reply = NetworkFactory::uploadData(m_url, timeout, QJsonDocument(json).toJson(QJsonDocument::Compact),
CONTENT_TYPE, result_raw, CONTENT_TYPE, result_raw,
QNetworkAccessManager::PostOperation, QNetworkAccessManager::PostOperation,
m_authIsUsed, m_authUsername, m_authPassword); m_authIsUsed, m_authUsername, m_authPassword);
@ -278,7 +278,7 @@ TtRssSubscribeToFeedResponse TtRssNetworkFactory::subscribeToFeed(const QString
login(); login();
json["sid"] = m_sessionId; json["sid"] = m_sessionId;
network_reply = NetworkFactory::uploadData(m_url, timeout, QJsonDocument(json).toJson(), network_reply = NetworkFactory::uploadData(m_url, timeout, QJsonDocument(json).toJson(QJsonDocument::Compact),
CONTENT_TYPE, result_raw, CONTENT_TYPE, result_raw,
QNetworkAccessManager::PostOperation, QNetworkAccessManager::PostOperation,
m_authIsUsed, m_authUsername, m_authPassword); m_authIsUsed, m_authUsername, m_authPassword);
@ -301,7 +301,7 @@ TtRssUnsubscribeFeedResponse TtRssNetworkFactory::unsubscribeFeed(int feed_id) {
const int timeout = qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::UpdateTimeout)).toInt(); const int timeout = qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::UpdateTimeout)).toInt();
QByteArray result_raw; QByteArray result_raw;
NetworkResult network_reply = NetworkFactory::uploadData(m_url, timeout, QJsonDocument(json).toJson(), CONTENT_TYPE, result_raw, NetworkResult network_reply = NetworkFactory::uploadData(m_url, timeout, QJsonDocument(json).toJson(QJsonDocument::Compact), CONTENT_TYPE, result_raw,
QNetworkAccessManager::PostOperation, QNetworkAccessManager::PostOperation,
m_authIsUsed, m_authUsername, m_authPassword); m_authIsUsed, m_authUsername, m_authPassword);
TtRssUnsubscribeFeedResponse result(QString::fromUtf8(result_raw)); TtRssUnsubscribeFeedResponse result(QString::fromUtf8(result_raw));
@ -311,7 +311,7 @@ TtRssUnsubscribeFeedResponse TtRssNetworkFactory::unsubscribeFeed(int feed_id) {
login(); login();
json["sid"] = m_sessionId; json["sid"] = m_sessionId;
network_reply = NetworkFactory::uploadData(m_url, timeout, QJsonDocument(json).toJson(), CONTENT_TYPE, result_raw, network_reply = NetworkFactory::uploadData(m_url, timeout, QJsonDocument(json).toJson(QJsonDocument::Compact), CONTENT_TYPE, result_raw,
QNetworkAccessManager::PostOperation, QNetworkAccessManager::PostOperation,
m_authIsUsed, m_authUsername, m_authPassword); m_authIsUsed, m_authUsername, m_authPassword);
result = TtRssUnsubscribeFeedResponse(QString::fromUtf8(result_raw)); result = TtRssUnsubscribeFeedResponse(QString::fromUtf8(result_raw));
@ -358,7 +358,7 @@ void TtRssNetworkFactory::setAuthPassword(const QString &auth_password) {
} }
TtRssResponse::TtRssResponse(const QString &raw_content) { TtRssResponse::TtRssResponse(const QString &raw_content) {
m_rawContent = QJsonDocument::fromJson(raw_content.toUtf8()); m_rawContent = QJsonDocument::fromJson(raw_content.toUtf8()).object();
} }
TtRssResponse::~TtRssResponse() { TtRssResponse::~TtRssResponse() {
@ -373,7 +373,7 @@ int TtRssResponse::seq() const {
return CONTENT_NOT_LOADED; return CONTENT_NOT_LOADED;
} }
else { else {
return m_rawContent.object()["seq"].toInt(); return m_rawContent["seq"].toInt();
} }
} }
@ -382,7 +382,7 @@ int TtRssResponse::status() const {
return CONTENT_NOT_LOADED; return CONTENT_NOT_LOADED;
} }
else { else {
return m_rawContent.object()["status"].toInt(); return m_rawContent["status"].toInt();
} }
} }
@ -391,7 +391,7 @@ bool TtRssResponse::isNotLoggedIn() const {
} }
QString TtRssResponse::toString() const { QString TtRssResponse::toString() const {
return m_rawContent.toJson(); return QJsonDocument(m_rawContent).toJson(QJsonDocument::Compact);
} }
TtRssLoginResponse::TtRssLoginResponse(const QString &raw_content) : TtRssResponse(raw_content) { TtRssLoginResponse::TtRssLoginResponse(const QString &raw_content) : TtRssResponse(raw_content) {
@ -405,7 +405,7 @@ int TtRssLoginResponse::apiLevel() const {
return CONTENT_NOT_LOADED; return CONTENT_NOT_LOADED;
} }
else { else {
return m_rawContent.object()["content"].toObject()["api_level"].toInt(); return m_rawContent["content"].toObject()["api_level"].toInt();
} }
} }
@ -414,7 +414,7 @@ QString TtRssLoginResponse::sessionId() const {
return QString(); return QString();
} }
else { else {
return m_rawContent.object()["content"].toObject()["session_id"].toString(); return m_rawContent["content"].toObject()["session_id"].toString();
} }
} }
@ -423,7 +423,7 @@ QString TtRssResponse::error() const {
return QString(); return QString();
} }
else { else {
return m_rawContent.object()["content"].toObject()["error"].toString(); return m_rawContent["content"].toObject()["error"].toString();
} }
} }
@ -432,7 +432,7 @@ bool TtRssResponse::hasError() const {
return false; return false;
} }
else { else {
return m_rawContent.object()["content"].toObject().contains("error"); return m_rawContent["content"].toObject().contains("error");
} }
} }
@ -454,17 +454,17 @@ RootItem *TtRssGetFeedsCategoriesResponse::feedsCategories(bool obtain_icons, QS
if (status() == API_STATUS_OK) { if (status() == API_STATUS_OK) {
// We have data, construct object tree according to data. // We have data, construct object tree according to data.
QList<QVariant> items_to_process = m_rawContent.object()["content"].toObject()["categories"].toObject()["items"].toArray().toVariantList(); QJsonArray items_to_process = m_rawContent["content"].toObject()["categories"].toObject()["items"].toArray();
QList<QPair<RootItem*,QVariant> > pairs; QList<QPair<RootItem*,QJsonValue> > pairs;
foreach (QVariant item, items_to_process) { foreach (QJsonValue item, items_to_process) {
pairs.append(QPair<RootItem*,QVariant>(parent, item)); pairs.append(QPair<RootItem*,QJsonValue>(parent, item));
} }
while (!pairs.isEmpty()) { while (!pairs.isEmpty()) {
QPair<RootItem*,QVariant> pair = pairs.takeFirst(); QPair<RootItem*,QJsonValue> pair = pairs.takeFirst();
RootItem *act_parent = pair.first; RootItem *act_parent = pair.first;
QMap<QString,QVariant> item = pair.second.toMap(); QJsonObject item = pair.second.toObject();
int item_id = item["bare_id"].toInt(); int item_id = item["bare_id"].toInt();
bool is_category = item.contains("type") && item["type"].toString() == GFT_TYPE_CATEGORY; bool is_category = item.contains("type") && item["type"].toString() == GFT_TYPE_CATEGORY;
@ -474,8 +474,8 @@ RootItem *TtRssGetFeedsCategoriesResponse::feedsCategories(bool obtain_icons, QS
if (item_id == 0) { if (item_id == 0) {
// This is "Uncategorized" category, all its feeds belong to top-level root. // This is "Uncategorized" category, all its feeds belong to top-level root.
if (item.contains("items")) { if (item.contains("items")) {
foreach (QVariant child_feed, item["items"].toList()) { foreach (QJsonValue child_feed, item["items"].toArray()) {
pairs.append(QPair<RootItem*,QVariant>(parent, child_feed)); pairs.append(QPair<RootItem*,QJsonValue>(parent, child_feed));
} }
} }
} }
@ -487,8 +487,8 @@ RootItem *TtRssGetFeedsCategoriesResponse::feedsCategories(bool obtain_icons, QS
act_parent->appendChild(category); act_parent->appendChild(category);
if (item.contains("items")) { if (item.contains("items")) {
foreach (QVariant child, item["items"].toList()) { foreach (QJsonValue child, item["items"].toArray()) {
pairs.append(QPair<RootItem*,QVariant>(category, child)); pairs.append(QPair<RootItem*,QJsonValue>(category, child));
} }
} }
} }
@ -498,7 +498,7 @@ RootItem *TtRssGetFeedsCategoriesResponse::feedsCategories(bool obtain_icons, QS
TtRssFeed *feed = new TtRssFeed(); TtRssFeed *feed = new TtRssFeed();
if (obtain_icons) { if (obtain_icons) {
QString icon_path = item["icon"].type() == QVariant::String ? item["icon"].toString() : QString(); QString icon_path = item["icon"].type() == QJsonValue::String ? item["icon"].toString() : QString();
if (!icon_path.isEmpty()) { if (!icon_path.isEmpty()) {
// Chop the "api/" suffix out and append // Chop the "api/" suffix out and append
@ -535,8 +535,8 @@ TtRssGetHeadlinesResponse::~TtRssGetHeadlinesResponse() {
QList<Message> TtRssGetHeadlinesResponse::messages() const { QList<Message> TtRssGetHeadlinesResponse::messages() const {
QList<Message> messages; QList<Message> messages;
foreach (QVariant item, m_rawContent.object()["content"].toArray().toVariantList()) { foreach (QJsonValue item, m_rawContent["content"].toArray()) {
QMap<QString,QVariant> mapped = item.toMap(); QJsonObject mapped = item.toObject();
Message message; Message message;
message.m_author = mapped["author"].toString(); message.m_author = mapped["author"].toString();
@ -546,7 +546,7 @@ QList<Message> TtRssGetHeadlinesResponse::messages() const {
// Multiply by 1000 because Tiny Tiny RSS API does not include miliseconds in Unix // Multiply by 1000 because Tiny Tiny RSS API does not include miliseconds in Unix
// date/time number. // date/time number.
message.m_created = TextFactory::parseDateTime(mapped["updated"].value<qint64>() * 1000); message.m_created = TextFactory::parseDateTime(mapped["updated"].toVariant().value<qint64>() * 1000);
message.m_createdFromFeed = true; message.m_createdFromFeed = true;
message.m_customId = mapped["id"].toString(); message.m_customId = mapped["id"].toString();
message.m_feedId = mapped["feed_id"].toString(); message.m_feedId = mapped["feed_id"].toString();
@ -555,8 +555,8 @@ QList<Message> TtRssGetHeadlinesResponse::messages() const {
if (mapped.contains(QSL("attachments"))) { if (mapped.contains(QSL("attachments"))) {
// Process enclosures. // Process enclosures.
foreach (QVariant attachment, mapped["attachments"].toList()) { foreach (QJsonValue attachment, mapped["attachments"].toArray()) {
QMap<QString,QVariant> mapped_attachemnt = attachment.toMap(); QJsonObject mapped_attachemnt = attachment.toObject();
Enclosure enclosure; Enclosure enclosure;
enclosure.m_mimeType = mapped_attachemnt["content_type"].toString(); enclosure.m_mimeType = mapped_attachemnt["content_type"].toString();
@ -579,8 +579,8 @@ TtRssUpdateArticleResponse::~TtRssUpdateArticleResponse() {
} }
QString TtRssUpdateArticleResponse::updateStatus() const { QString TtRssUpdateArticleResponse::updateStatus() const {
if (m_rawContent.object().contains(QSL("content"))) { if (m_rawContent.contains(QSL("content"))) {
return m_rawContent.object()["content"].toObject()["status"].toString(); return m_rawContent["content"].toObject()["status"].toString();
} }
else { else {
return QString(); return QString();
@ -588,8 +588,8 @@ QString TtRssUpdateArticleResponse::updateStatus() const {
} }
int TtRssUpdateArticleResponse::articlesUpdated() const { int TtRssUpdateArticleResponse::articlesUpdated() const {
if (m_rawContent.object().contains(QSL("content"))) { if (m_rawContent.contains(QSL("content"))) {
return m_rawContent.object()["content"].toObject()["updated"].toInt(); return m_rawContent["content"].toObject()["updated"].toInt();
} }
else { else {
return 0; return 0;
@ -603,8 +603,8 @@ TtRssSubscribeToFeedResponse::~TtRssSubscribeToFeedResponse() {
} }
int TtRssSubscribeToFeedResponse::code() const { int TtRssSubscribeToFeedResponse::code() const {
if (m_rawContent.object().contains(QSL("content"))) { if (m_rawContent.contains(QSL("content"))) {
return m_rawContent.object()["content"].toObject()["status"].toObject()["code"].toInt(); return m_rawContent["content"].toObject()["status"].toObject()["code"].toInt();
} }
else { else {
return STF_UNKNOWN; return STF_UNKNOWN;
@ -619,8 +619,8 @@ TtRssUnsubscribeFeedResponse::~TtRssUnsubscribeFeedResponse() {
} }
QString TtRssUnsubscribeFeedResponse::code() const { QString TtRssUnsubscribeFeedResponse::code() const {
if (m_rawContent.object().contains(QSL("content"))) { if (m_rawContent.contains(QSL("content"))) {
QJsonObject map = m_rawContent.object()["content"].toObject(); QJsonObject map = m_rawContent["content"].toObject();
if (map.contains(QSL("error"))) { if (map.contains(QSL("error"))) {
return map["error"].toString(); return map["error"].toString();

View file

@ -23,7 +23,7 @@
#include <QString> #include <QString>
#include <QPair> #include <QPair>
#include <QNetworkReply> #include <QNetworkReply>
#include <QJsonDocument> #include <QJsonObject>
class RootItem; class RootItem;
@ -44,7 +44,7 @@ class TtRssResponse {
QString toString() const; QString toString() const;
protected: protected:
QJsonDocument m_rawContent; QJsonObject m_rawContent;
}; };
class TtRssLoginResponse : public TtRssResponse { class TtRssLoginResponse : public TtRssResponse {