finalized refactorings

This commit is contained in:
Martin Rotter 2021-03-22 09:45:25 +01:00
parent 234d0b13c6
commit 85760efb5d
18 changed files with 78 additions and 47 deletions

View File

@ -30,7 +30,7 @@
<url type="donation">https://martinrotter.github.io/donate/</url> <url type="donation">https://martinrotter.github.io/donate/</url>
<content_rating type="oars-1.1" /> <content_rating type="oars-1.1" />
<releases> <releases>
<release version="3.9.0" date="2021-03-19"/> <release version="3.9.0" date="2021-03-22"/>
</releases> </releases>
<content_rating type="oars-1.0"> <content_rating type="oars-1.0">
<content_attribute id="violence-cartoon">none</content_attribute> <content_attribute id="violence-cartoon">none</content_attribute>

@ -1 +1 @@
Subproject commit 9c10723bfbaf6cb85107d6ee16e0324e9e487749 Subproject commit 47f4125753452eff8800dbd6600c5a05540b15d9

View File

@ -2002,7 +2002,7 @@ void DatabaseQueries::removeMessageFilterFromFeed(const QSqlDatabase& db, const
} }
} }
QStringList DatabaseQueries::getAllRecipients(const QSqlDatabase& db, int account_id) { QStringList DatabaseQueries::getAllGmailRecipients(const QSqlDatabase& db, int account_id) {
QSqlQuery query(db); QSqlQuery query(db);
QStringList rec; QStringList rec;

View File

@ -139,7 +139,7 @@ class DatabaseQueries {
int account_id, bool* ok = nullptr); int account_id, bool* ok = nullptr);
// Gmail account. // Gmail account.
static QStringList getAllRecipients(const QSqlDatabase& db, int account_id); static QStringList getAllGmailRecipients(const QSqlDatabase& db, int account_id);
private: private:
static QString unnulifyString(const QString& str); static QString unnulifyString(const QString& str);

View File

@ -234,9 +234,9 @@ bool AccountCheckModel::setData(const QModelIndex& index, const QVariant& value,
// Check children of this new parent item. // Check children of this new parent item.
bool all_checked = true; bool all_checked = true;
bool all_unchecked = true; bool all_unchecked = true;
auto chi = item->childItems(); auto childr = item->childItems();
for (RootItem* child_of_parent : qAsConst(chi)) { for (RootItem* child_of_parent : qAsConst(childr)) {
if (m_checkStates.contains(child_of_parent)) { if (m_checkStates.contains(child_of_parent)) {
all_checked &= m_checkStates[child_of_parent] == Qt::CheckState::Checked; all_checked &= m_checkStates[child_of_parent] == Qt::CheckState::Checked;
all_unchecked &= m_checkStates[child_of_parent] == Qt::CheckState::Unchecked; all_unchecked &= m_checkStates[child_of_parent] == Qt::CheckState::Unchecked;

View File

@ -391,8 +391,9 @@ void GmailNetworkFactory::onAuthFailed() {
bool GmailNetworkFactory::fillFullMessage(Message& msg, const QJsonObject& json, const QString& feed_id) { bool GmailNetworkFactory::fillFullMessage(Message& msg, const QJsonObject& json, const QString& feed_id) {
QHash<QString, QString> headers; QHash<QString, QString> headers;
auto json_headers = json["payload"].toObject()["headers"].toArray();
for (const QJsonValue& header : json["payload"].toObject()["headers"].toArray()) { for (const QJsonValue& header : qAsConst(json_headers)) {
headers.insert(header.toObject()["name"].toString(), header.toObject()["value"].toString()); headers.insert(header.toObject()["name"].toString(), header.toObject()["value"].toString());
} }
@ -400,7 +401,9 @@ bool GmailNetworkFactory::fillFullMessage(Message& msg, const QJsonObject& json,
msg.m_rawContents = QJsonDocument(json).toJson(QJsonDocument::JsonFormat::Compact); msg.m_rawContents = QJsonDocument(json).toJson(QJsonDocument::JsonFormat::Compact);
// Assign correct main labels/states. // Assign correct main labels/states.
for (const QVariant& label : json["labelIds"].toArray().toVariantList()) { auto labelids = json["labelIds"].toArray().toVariantList();
for (const QVariant& label : qAsConst(labelids)) {
QString lbl = label.toString(); QString lbl = label.toString();
if (lbl == QL1S(GMAIL_SYSTEM_LABEL_UNREAD)) { if (lbl == QL1S(GMAIL_SYSTEM_LABEL_UNREAD)) {
@ -569,8 +572,7 @@ bool GmailNetworkFactory::obtainAndDecodeFullMessages(QList<Message>& messages,
if (res.first == QNetworkReply::NetworkError::NoError) { if (res.first == QNetworkReply::NetworkError::NoError) {
// We parse each part of HTTP response (it contains HTTP headers and payload with msg full data). // We parse each part of HTTP response (it contains HTTP headers and payload with msg full data).
for (const HttpResponse& part : output) { for (const HttpResponse& part : qAsConst(output)) {
auto xx = part.body();
QJsonObject msg_doc = QJsonDocument::fromJson(part.body().toUtf8()).object(); QJsonObject msg_doc = QJsonDocument::fromJson(part.body().toUtf8()).object();
QString msg_id = msg_doc["id"].toString(); QString msg_id = msg_doc["id"].toString();

View File

@ -2,8 +2,8 @@
#include "services/gmail/gmailserviceroot.h" #include "services/gmail/gmailserviceroot.h"
#include "miscellaneous/application.h"
#include "database/databasequeries.h" #include "database/databasequeries.h"
#include "miscellaneous/application.h"
#include "miscellaneous/iconfactory.h" #include "miscellaneous/iconfactory.h"
#include "network-web/oauth2service.h" #include "network-web/oauth2service.h"
#include "services/abstract/importantnode.h" #include "services/abstract/importantnode.h"
@ -171,7 +171,9 @@ void GmailServiceRoot::start(bool freshly_activated) {
syncIn(); syncIn();
} }
for (RootItem* feed : childItems()) { auto chi = childItems();
for (RootItem* feed : qAsConst(chi)) {
if (feed->customId() == QL1S("INBOX")) { if (feed->customId() == QL1S("INBOX")) {
feed->setKeepOnTop(true); feed->setKeepOnTop(true);
} }

View File

@ -3,11 +3,11 @@
#include "services/gmail/gui/formaddeditemail.h" #include "services/gmail/gui/formaddeditemail.h"
#include "3rd-party/mimesis/mimesis.hpp" #include "3rd-party/mimesis/mimesis.hpp"
#include "database/databasequeries.h"
#include "exceptions/applicationexception.h" #include "exceptions/applicationexception.h"
#include "gui/guiutilities.h" #include "gui/guiutilities.h"
#include "gui/messagebox.h" #include "gui/messagebox.h"
#include "miscellaneous/application.h" #include "miscellaneous/application.h"
#include "database/databasequeries.h"
#include "miscellaneous/iconfactory.h" #include "miscellaneous/iconfactory.h"
#include "services/gmail/gmailnetworkfactory.h" #include "services/gmail/gmailnetworkfactory.h"
#include "services/gmail/gmailserviceroot.h" #include "services/gmail/gmailserviceroot.h"
@ -38,11 +38,12 @@ FormAddEditEmail::FormAddEditEmail(GmailServiceRoot* root, QWidget* parent)
this, this,
&FormAddEditEmail::onOkClicked); &FormAddEditEmail::onOkClicked);
QSqlDatabase db = qApp->database()->driver()->connection(metaObject()->className()); QSqlDatabase db = qApp->database()->driver()->connection(QSL("FormAddEditEmail"));
m_possibleRecipients = DatabaseQueries::getAllRecipients(db, m_root->accountId()); m_possibleRecipients = DatabaseQueries::getAllGmailRecipients(db, m_root->accountId());
auto ctrls = recipientControls();
for (auto* rec: recipientControls()) { for (auto* rec: qAsConst(ctrls)) {
rec->setPossibleRecipients(m_possibleRecipients); rec->setPossibleRecipients(m_possibleRecipients);
} }
} }

View File

@ -35,7 +35,6 @@ QNetworkReply::NetworkError GreaderNetwork::editLabels(const QString& state,
} }
QStringList trimmed_ids; QStringList trimmed_ids;
QRegularExpression regex_short_id(QSL("[0-9a-zA-Z]+$"));
for (const QString& id : msg_custom_ids) { for (const QString& id : msg_custom_ids) {
trimmed_ids.append(QString("i=") + id); trimmed_ids.append(QString("i=") + id);
@ -202,10 +201,11 @@ RootItem* GreaderNetwork::decodeTagsSubscriptions(const QString& categories, con
// We need to process subscription list first and extract categories. // We need to process subscription list first and extract categories.
json = QJsonDocument::fromJson(feeds.toUtf8()).object()["subscriptions"].toArray(); json = QJsonDocument::fromJson(feeds.toUtf8()).object()["subscriptions"].toArray();
for (const QJsonValue& feed : json) { for (const QJsonValue& feed : qAsConst(json)) {
auto subscription = feed.toObject(); auto subscription = feed.toObject();
auto json_cats = subscription["categories"].toArray();
for (const QJsonValue& cat : subscription["categories"].toArray()) { for (const QJsonValue& cat : qAsConst(json_cats)) {
auto cat_obj = cat.toObject(); auto cat_obj = cat.toObject();
auto cat_id = cat_obj["id"].toString(); auto cat_id = cat_obj["id"].toString();
@ -225,7 +225,7 @@ RootItem* GreaderNetwork::decodeTagsSubscriptions(const QString& categories, con
json = QJsonDocument::fromJson(categories.toUtf8()).object()["tags"].toArray(); json = QJsonDocument::fromJson(categories.toUtf8()).object()["tags"].toArray();
cats.insert(QString(), parent); cats.insert(QString(), parent);
for (const QJsonValue& obj : json) { for (const QJsonValue& obj : qAsConst(json)) {
auto label = obj.toObject(); auto label = obj.toObject();
QString label_id = label["id"].toString(); QString label_id = label["id"].toString();
@ -266,7 +266,7 @@ RootItem* GreaderNetwork::decodeTagsSubscriptions(const QString& categories, con
json = QJsonDocument::fromJson(feeds.toUtf8()).object()["subscriptions"].toArray(); json = QJsonDocument::fromJson(feeds.toUtf8()).object()["subscriptions"].toArray();
for (const QJsonValue& obj : json) { for (const QJsonValue& obj : qAsConst(json)) {
auto subscription = obj.toObject(); auto subscription = obj.toObject();
QString id = subscription["id"].toString(); QString id = subscription["id"].toString();
QString title = subscription["title"].toString(); QString title = subscription["title"].toString();
@ -278,7 +278,7 @@ RootItem* GreaderNetwork::decodeTagsSubscriptions(const QString& categories, con
continue; continue;
} }
for (const QJsonValue& cat : assigned_categories) { for (const QJsonValue& cat : qAsConst(assigned_categories)) {
QString potential_id = cat.toObject()["id"].toString(); QString potential_id = cat.toObject()["id"].toString();
if (potential_id.contains(QSL("/label/"))) { if (potential_id.contains(QSL("/label/"))) {
@ -301,8 +301,6 @@ RootItem* GreaderNetwork::decodeTagsSubscriptions(const QString& categories, con
: subscription["htmlUrl"].toString(); : subscription["htmlUrl"].toString();
if (!icon_url.isEmpty()) { if (!icon_url.isEmpty()) {
QByteArray icon_data;
if (icon_url.startsWith(QSL("//"))) { if (icon_url.startsWith(QSL("//"))) {
icon_url = QUrl(baseUrl()).scheme() + QSL(":") + icon_url; icon_url = QUrl(baseUrl()).scheme() + QSL(":") + icon_url;
} }

View File

@ -144,8 +144,9 @@ QList<RootItem*> InoreaderNetworkFactory::getLabels() {
{}, {},
m_service->networkProxy()); m_service->networkProxy());
QJsonDocument json_lbls = QJsonDocument::fromJson(output); QJsonDocument json_lbls = QJsonDocument::fromJson(output);
auto json_tags = json_lbls.object()["tags"].toArray();
for (const QJsonValue& lbl_val : json_lbls.object()["tags"].toArray()) { for (const QJsonValue& lbl_val : qAsConst(json_tags)) {
QJsonObject lbl_obj = lbl_val.toObject(); QJsonObject lbl_obj = lbl_val.toObject();
if (lbl_obj["type"] == QL1S("tag")) { if (lbl_obj["type"] == QL1S("tag")) {
@ -400,7 +401,7 @@ RootItem* InoreaderNetworkFactory::decodeFeedCategoriesData(const QString& categ
json = QJsonDocument::fromJson(feeds.toUtf8()).object()["subscriptions"].toArray(); json = QJsonDocument::fromJson(feeds.toUtf8()).object()["subscriptions"].toArray();
for (const QJsonValue& obj : json) { for (const QJsonValue& obj : qAsConst(json)) {
auto subscription = obj.toObject(); auto subscription = obj.toObject();
QString id = subscription["id"].toString(); QString id = subscription["id"].toString();
QString title = subscription["title"].toString(); QString title = subscription["title"].toString();

View File

@ -494,7 +494,9 @@ RootItem* OwnCloudGetFeedsCategoriesResponse::feedsCategories(bool obtain_icons)
cats.insert(QSL("0"), parent); cats.insert(QSL("0"), parent);
// Process categories first, then process feeds. // Process categories first, then process feeds.
for (const QJsonValue& cat : QJsonDocument::fromJson(m_contentCategories.toUtf8()).object()["folders"].toArray()) { auto json_folders = QJsonDocument::fromJson(m_contentCategories.toUtf8()).object()["folders"].toArray();
for (const QJsonValue& cat : qAsConst(json_folders)) {
QJsonObject item = cat.toObject(); QJsonObject item = cat.toObject();
auto* category = new Category(); auto* category = new Category();
@ -507,7 +509,9 @@ RootItem* OwnCloudGetFeedsCategoriesResponse::feedsCategories(bool obtain_icons)
} }
// We have categories added, now add all feeds. // We have categories added, now add all feeds.
for (const QJsonValue& fed : QJsonDocument::fromJson(m_contentFeeds.toUtf8()).object()["feeds"].toArray()) { auto json_feeds = QJsonDocument::fromJson(m_contentFeeds.toUtf8()).object()["feeds"].toArray();
for (const QJsonValue& fed : qAsConst(json_feeds)) {
QJsonObject item = fed.toObject(); QJsonObject item = fed.toObject();
auto* feed = new OwnCloudFeed(); auto* feed = new OwnCloudFeed();
@ -571,8 +575,9 @@ OwnCloudGetMessagesResponse::~OwnCloudGetMessagesResponse() = default;
QList<Message>OwnCloudGetMessagesResponse::messages() const { QList<Message>OwnCloudGetMessagesResponse::messages() const {
QList<Message>msgs; QList<Message>msgs;
auto json_items = m_rawContent["items"].toArray();
for (const QJsonValue& message : m_rawContent["items"].toArray()) { for (const QJsonValue& message : qAsConst(json_items)) {
QJsonObject message_map = message.toObject(); QJsonObject message_map = message.toObject();
Message msg; Message msg;

View File

@ -112,7 +112,7 @@ QStringList FeedParser::textsFromPath(const QDomElement& element, const QString&
} }
if (!current_elements.isEmpty()) { if (!current_elements.isEmpty()) {
for (const QDomElement& elem : current_elements) { for (const QDomElement& elem : qAsConst(current_elements)) {
result.append(elem.text()); result.append(elem.text());
} }
} }

View File

@ -22,6 +22,8 @@ class StandardFeedDetails : public QWidget {
public: public:
explicit StandardFeedDetails(QWidget* parent = nullptr); explicit StandardFeedDetails(QWidget* parent = nullptr);
StandardFeed::SourceType sourceType() const;
private slots: private slots:
void guessIconOnly(StandardFeed::SourceType source_type, void guessIconOnly(StandardFeed::SourceType source_type,
const QString& source, const QString& source,
@ -43,8 +45,6 @@ class StandardFeedDetails : public QWidget {
void onLoadIconFromFile(); void onLoadIconFromFile();
void onUseDefaultIcon(); void onUseDefaultIcon();
StandardFeed::SourceType sourceType() const;
private: private:
void prepareForNewFeed(RootItem* parent_to_select, const QString& url); void prepareForNewFeed(RootItem* parent_to_select, const QString& url);
void setExistingFeed(StandardFeed* feed); void setExistingFeed(StandardFeed* feed);

View File

@ -19,7 +19,9 @@ QList<Message> JsonParser::messages() const {
global_author = json.object()["authors"].toArray().at(0).toObject()["name"].toString(); global_author = json.object()["authors"].toArray().at(0).toObject()["name"].toString();
} }
for (const QJsonValue& msg_val : json.object()["items"].toArray()) { auto json_items = json.object()["items"].toArray();
for (const QJsonValue& msg_val : qAsConst(json_items)) {
QJsonObject msg_obj = msg_val.toObject(); QJsonObject msg_obj = msg_val.toObject();
Message msg; Message msg;
@ -50,9 +52,10 @@ QList<Message> JsonParser::messages() const {
msg.m_author = global_author; msg.m_author = global_author;
} }
for (const QJsonValue& att : msg_obj["attachments"].toArray()) { auto json_att = msg_obj["attachments"].toArray();
for (const QJsonValue& att : qAsConst(json_att)) {
QJsonObject att_obj = att.toObject(); QJsonObject att_obj = att.toObject();
auto xx = att_obj["url"].toString();
msg.m_enclosures.append(Enclosure(att_obj["url"].toString(), att_obj["mime_type"].toString())); msg.m_enclosures.append(Enclosure(att_obj["url"].toString(), att_obj["mime_type"].toString()));
} }

View File

@ -80,7 +80,9 @@ bool StandardCategory::removeItself() {
// Remove all child items (feeds and categories) // Remove all child items (feeds and categories)
// from the database. // from the database.
for (RootItem* child : childItems()) { auto chi = childItems();
for (RootItem* child : qAsConst(chi)) {
if (child->kind() == RootItem::Kind::Category) { if (child->kind() == RootItem::Kind::Category) {
children_removed &= dynamic_cast<StandardCategory*>(child)->removeItself(); children_removed &= dynamic_cast<StandardCategory*>(child)->removeItself();
} }

View File

@ -65,8 +65,9 @@ bool FeedsImportExportModel::exportToOMPL20(QByteArray& result) {
while (!items_to_process.isEmpty()) { while (!items_to_process.isEmpty()) {
QDomElement active_element = elements_to_use.pop(); QDomElement active_element = elements_to_use.pop();
RootItem* active_item = items_to_process.pop(); RootItem* active_item = items_to_process.pop();
auto chi = active_item->childItems();
for (RootItem* child_item : active_item->childItems()) { for (RootItem* child_item : qAsConst(chi)) {
if (!sourceModel()->isItemChecked(child_item)) { if (!sourceModel()->isItemChecked(child_item)) {
continue; continue;
} }
@ -313,7 +314,9 @@ void FeedsImportExportModel::importAsOPML20(const QByteArray& data, bool fetch_m
} }
bool FeedsImportExportModel::exportToTxtURLPerLine(QByteArray& result) { bool FeedsImportExportModel::exportToTxtURLPerLine(QByteArray& result) {
for (const Feed* const feed : sourceModel()->rootItem()->getSubTreeFeeds()) { auto stf = sourceModel()->rootItem()->getSubTreeFeeds();
for (const Feed* const feed : qAsConst(stf)) {
result += feed->source() + QL1S("\n"); result += feed->source() + QL1S("\n");
} }

View File

@ -272,7 +272,9 @@ QList<Message> StandardServiceRoot::obtainNewMessages(const QList<Feed*>& feeds,
} }
void StandardServiceRoot::checkArgumentsForFeedAdding() { void StandardServiceRoot::checkArgumentsForFeedAdding() {
for (const QString& arg : qApp->arguments().mid(1)) { auto args = qApp->arguments().mid(1);
for (const QString& arg : qAsConst(args)) {
checkArgumentForFeedAdding(arg); checkArgumentForFeedAdding(arg);
} }
} }
@ -333,8 +335,9 @@ bool StandardServiceRoot::mergeImportExportModel(FeedsImportExportModel* model,
while (!new_parents.isEmpty()) { while (!new_parents.isEmpty()) {
RootItem* target_parent = original_parents.pop(); RootItem* target_parent = original_parents.pop();
RootItem* source_parent = new_parents.pop(); RootItem* source_parent = new_parents.pop();
auto sour_chi = source_parent->childItems();
for (RootItem* source_item : source_parent->childItems()) { for (RootItem* source_item : qAsConst(sour_chi)) {
if (!model->sourceModel()->isItemChecked(source_item)) { if (!model->sourceModel()->isItemChecked(source_item)) {
// We can skip this item, because it is not checked and should not be imported. // We can skip this item, because it is not checked and should not be imported.
// NOTE: All descendants are thus skipped too. // NOTE: All descendants are thus skipped too.
@ -366,8 +369,9 @@ bool StandardServiceRoot::mergeImportExportModel(FeedsImportExportModel* model,
// already exists. If such a category exists in current parent, then find it and // already exists. If such a category exists in current parent, then find it and
// add descendants to it. // add descendants to it.
RootItem* existing_category = nullptr; RootItem* existing_category = nullptr;
auto tar_chi = target_parent->childItems();
for (RootItem* child : target_parent->childItems()) { for (RootItem* child : qAsConst(tar_chi)) {
if (child->kind() == RootItem::Kind::Category && child->title() == new_category_title) { if (child->kind() == RootItem::Kind::Category && child->title() == new_category_title) {
existing_category = child; existing_category = child;
} }

View File

@ -697,7 +697,9 @@ 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")) {
for (const QJsonValue& child_feed : item["items"].toArray()) { auto ite = item["items"].toArray();
for (const QJsonValue& child_feed : qAsConst(ite)) {
pairs.append(QPair<RootItem*, QJsonValue>(parent, child_feed)); pairs.append(QPair<RootItem*, QJsonValue>(parent, child_feed));
} }
} }
@ -710,7 +712,9 @@ RootItem* TtRssGetFeedsCategoriesResponse::feedsCategories(bool obtain_icons, QS
act_parent->appendChild(category); act_parent->appendChild(category);
if (item.contains("items")) { if (item.contains("items")) {
for (const QJsonValue& child : item["items"].toArray()) { auto ite = item["items"].toArray();
for (const QJsonValue& child : qAsConst(ite)) {
pairs.append(QPair<RootItem*, QJsonValue>(category, child)); pairs.append(QPair<RootItem*, QJsonValue>(category, child));
} }
} }
@ -758,8 +762,9 @@ TtRssGetHeadlinesResponse::~TtRssGetHeadlinesResponse() = default;
QList<Message> TtRssGetHeadlinesResponse::messages(ServiceRoot* root) const { QList<Message> TtRssGetHeadlinesResponse::messages(ServiceRoot* root) const {
QList<Message> messages; QList<Message> messages;
auto active_labels = root->labelsNode() != nullptr ? root->labelsNode()->labels() : QList<Label*>(); auto active_labels = root->labelsNode() != nullptr ? root->labelsNode()->labels() : QList<Label*>();
auto json_msgs = m_rawContent["content"].toArray();
for (const QJsonValue& item : m_rawContent["content"].toArray()) { for (const QJsonValue& item : qAsConst(json_msgs)) {
QJsonObject mapped = item.toObject(); QJsonObject mapped = item.toObject();
Message message; Message message;
@ -769,7 +774,9 @@ QList<Message> TtRssGetHeadlinesResponse::messages(ServiceRoot* root) const {
message.m_contents = mapped["content"].toString(); message.m_contents = mapped["content"].toString();
message.m_rawContents = QJsonDocument(mapped).toJson(QJsonDocument::JsonFormat::Compact); message.m_rawContents = QJsonDocument(mapped).toJson(QJsonDocument::JsonFormat::Compact);
for (const QJsonValue& lbl_val : mapped["labels"].toArray()) { auto json_labels = mapped["labels"].toArray();
for (const QJsonValue& lbl_val : qAsConst(json_labels)) {
QString lbl_custom_id = QString::number(lbl_val.toArray().at(0).toInt()); QString lbl_custom_id = QString::number(lbl_val.toArray().at(0).toInt());
Label* label = boolinq::from(active_labels.begin(), active_labels.end()).firstOrDefault([lbl_custom_id](Label* lbl) { Label* label = boolinq::from(active_labels.begin(), active_labels.end()).firstOrDefault([lbl_custom_id](Label* lbl) {
return lbl->customId() == lbl_custom_id; return lbl->customId() == lbl_custom_id;
@ -797,7 +804,9 @@ QList<Message> TtRssGetHeadlinesResponse::messages(ServiceRoot* root) const {
if (mapped.contains(QSL("attachments"))) { if (mapped.contains(QSL("attachments"))) {
// Process enclosures. // Process enclosures.
for (const QJsonValue& attachment : mapped["attachments"].toArray()) { auto json_att = mapped["attachments"].toArray();
for (const QJsonValue& attachment : qAsConst(json_att)) {
QJsonObject mapped_attachemnt = attachment.toObject(); QJsonObject mapped_attachemnt = attachment.toObject();
Enclosure enclosure; Enclosure enclosure;
@ -869,8 +878,9 @@ TtRssGetLabelsResponse::TtRssGetLabelsResponse(const QString& raw_content) : TtR
QList<RootItem*> TtRssGetLabelsResponse::labels() const { QList<RootItem*> TtRssGetLabelsResponse::labels() const {
QList<RootItem*> labels; QList<RootItem*> labels;
auto json_labels = m_rawContent["content"].toArray();
for (const QJsonValue& lbl_val : m_rawContent["content"].toArray()) { for (const QJsonValue& lbl_val : qAsConst(json_labels)) {
QJsonObject lbl_obj = lbl_val.toObject(); QJsonObject lbl_obj = lbl_val.toObject();
Label* lbl = new Label(lbl_obj["caption"].toString(), QColor(lbl_obj["fg_color"].toString())); Label* lbl = new Label(lbl_obj["caption"].toString(), QColor(lbl_obj["fg_color"].toString()));