diff --git a/resources/icons.qrc b/resources/icons.qrc index 4633dfd68..f1dac90e4 100644 --- a/resources/icons.qrc +++ b/resources/icons.qrc @@ -4,7 +4,6 @@ ./graphics/Faenza/actions/64/back.png ./graphics/Faenza/actions/64/call-start.png ./graphics/Faenza/actions/64/dialog-no.png - ./graphics/Faenza/actions/64/dialog-ok.png ./graphics/Faenza/actions/64/dialog-yes.png ./graphics/Faenza/actions/64/document-edit.png ./graphics/Faenza/actions/64/document-export.png @@ -75,7 +74,6 @@ ./graphics/Numix/22/actions/back.svg ./graphics/Numix/22/actions/call-start.svg ./graphics/Numix/22/actions/dialog-no.svg - ./graphics/Numix/22/actions/dialog-ok.svg ./graphics/Numix/22/actions/dialog-yes.svg ./graphics/Numix/22/actions/document-edit.svg ./graphics/Numix/22/actions/document-export.svg diff --git a/src/librssguard/services/abstract/serviceroot.cpp b/src/librssguard/services/abstract/serviceroot.cpp index 91a65dabf..4e0351d58 100644 --- a/src/librssguard/services/abstract/serviceroot.cpp +++ b/src/librssguard/services/abstract/serviceroot.cpp @@ -81,10 +81,25 @@ QList ServiceRoot::contextMenuMessagesList(const QList& messa } QList ServiceRoot::serviceMenu() { - if (m_serviceMenu.isEmpty() && isSyncable()) { - m_actionSyncIn = new QAction(qApp->icons()->fromTheme(QSL("view-refresh")), tr("Sync in"), this); - connect(m_actionSyncIn, &QAction::triggered, this, &ServiceRoot::syncIn); - m_serviceMenu.append(m_actionSyncIn); + if (m_serviceMenu.isEmpty()) { + if (isSyncable()) { + auto* act_sync_tree = new QAction(qApp->icons()->fromTheme(QSL("view-refresh")), tr("Sync in"), this); + + connect(act_sync_tree, &QAction::triggered, this, &ServiceRoot::syncIn); + m_serviceMenu.append(act_sync_tree); + + auto* cache = toCache(); + + if (cache != nullptr) { + auto* act_sync_cache = new QAction(qApp->icons()->fromTheme(QSL("view-refresh")), tr("Synchronize message cache"), this); + + connect(act_sync_cache, &QAction::triggered, this, [cache]() { + cache->saveAllCachedData(); + }); + + m_serviceMenu.append(act_sync_cache); + } + } } return m_serviceMenu; diff --git a/src/librssguard/services/abstract/serviceroot.h b/src/librssguard/services/abstract/serviceroot.h index 23c65ad67..ea7d50ee3 100644 --- a/src/librssguard/services/abstract/serviceroot.h +++ b/src/librssguard/services/abstract/serviceroot.h @@ -244,7 +244,6 @@ class ServiceRoot : public RootItem { ImportantNode* m_importantNode; LabelsNode* m_labelsNode; int m_accountId; - QAction* m_actionSyncIn; QList m_serviceMenu; }; diff --git a/src/librssguard/services/inoreader/network/inoreadernetworkfactory.cpp b/src/librssguard/services/inoreader/network/inoreadernetworkfactory.cpp index 171fc8883..9b10e4d92 100644 --- a/src/librssguard/services/inoreader/network/inoreadernetworkfactory.cpp +++ b/src/librssguard/services/inoreader/network/inoreadernetworkfactory.cpp @@ -220,8 +220,10 @@ void InoreaderNetworkFactory::editLabels(const QString& state, bool assign, cons for (const QString& id : msg_custom_ids) { QString simplified_id = regex_short_id.match(id).captured(); + auto numeric_id = simplified_id.toLongLong(nullptr, 16); + QString decimal_id = QString::number(numeric_id); - trimmed_ids.append(QString("i=") + simplified_id); + trimmed_ids.append(QString("i=") + decimal_id); } QStringList working_subset; working_subset.reserve(std::min(200, trimmed_ids.size())); @@ -230,7 +232,7 @@ void InoreaderNetworkFactory::editLabels(const QString& state, bool assign, cons // Now, we perform messages update in batches (max 200 messages per batch). while (!trimmed_ids.isEmpty()) { // We take 200 IDs. - for (int i = 0; i < 200 && !trimmed_ids.isEmpty(); i++) { + for (int i = 0; i < 50 && !trimmed_ids.isEmpty(); i++) { working_subset.append(trimmed_ids.takeFirst()); }