work on article ignore/limit

This commit is contained in:
Martin Rotter 2024-01-15 09:37:43 +01:00
parent 869e0d1f70
commit 796fbf916e
11 changed files with 93 additions and 92 deletions

View file

@ -518,14 +518,16 @@ void FeedDownloader::removeDuplicateMessages(QList<Message>& messages) {
} }
void FeedDownloader::removeTooOldMessages(Feed* feed, QList<Message>& msgs) { void FeedDownloader::removeTooOldMessages(Feed* feed, QList<Message>& msgs) {
if (!feed->addAnyDatetimeArticles()) { const Feed::ArticleIgnoreLimit art = feed->articleIgnoreLimit();
if (!art.m_addAnyArticlesToDb) {
QDateTime dt_to_avoid; QDateTime dt_to_avoid;
if (feed->datetimeToAvoid().isValid() && feed->datetimeToAvoid().toMSecsSinceEpoch() > 0) { if (art.m_dtToAvoid.isValid() && art.m_dtToAvoid.toMSecsSinceEpoch() > 0) {
dt_to_avoid = feed->datetimeToAvoid(); dt_to_avoid = art.m_dtToAvoid;
} }
else if (feed->hoursToAvoid() > 0) { else if (art.m_hoursToAvoid > 0) {
dt_to_avoid = QDateTime::currentDateTimeUtc().addSecs((feed->hoursToAvoid() * -3600)); dt_to_avoid = QDateTime::currentDateTimeUtc().addSecs((art.m_hoursToAvoid * -3600));
} }
else if (qApp->settings()->value(GROUP(Messages), SETTING(Messages::AvoidOldArticles)).toBool()) { else if (qApp->settings()->value(GROUP(Messages), SETTING(Messages::AvoidOldArticles)).toBool()) {
QDateTime global_dt_to_avoid = QDateTime global_dt_to_avoid =

View file

@ -2554,11 +2554,14 @@ void DatabaseQueries::createOverwriteFeed(const QSqlDatabase& db, Feed* feed, in
q.bindValue(QSL(":is_quiet"), feed->isQuiet()); q.bindValue(QSL(":is_quiet"), feed->isQuiet());
q.bindValue(QSL(":open_articles"), feed->openArticlesDirectly()); q.bindValue(QSL(":open_articles"), feed->openArticlesDirectly());
q.bindValue(QSL(":is_rtl"), feed->isRtl()); q.bindValue(QSL(":is_rtl"), feed->isRtl());
q.bindValue(QSL(":add_any_datetime_articles"), feed->addAnyDatetimeArticles());
const Feed::ArticleIgnoreLimit art = feed->articleIgnoreLimit();
q.bindValue(QSL(":add_any_datetime_articles"), art.m_addAnyArticlesToDb);
q.bindValue(QSL(":datetime_to_avoid"), q.bindValue(QSL(":datetime_to_avoid"),
(feed->datetimeToAvoid().isValid() && feed->datetimeToAvoid().toMSecsSinceEpoch() > 0) (art.m_dtToAvoid.isValid() && art.m_dtToAvoid.toMSecsSinceEpoch() > 0)
? feed->datetimeToAvoid().toMSecsSinceEpoch() ? art.m_dtToAvoid.toMSecsSinceEpoch()
: feed->hoursToAvoid()); : art.m_hoursToAvoid);
auto custom_data = feed->customDatabaseData(); auto custom_data = feed->customDatabaseData();
QString serialized_custom_data = serializeCustomData(custom_data); QString serialized_custom_data = serializeCustomData(custom_data);

View file

@ -381,17 +381,21 @@ Assignment DatabaseQueries::getFeeds(const QSqlDatabase& db,
feed->setIsSwitchedOff(query.value(FDS_DB_IS_OFF_INDEX).toBool()); feed->setIsSwitchedOff(query.value(FDS_DB_IS_OFF_INDEX).toBool());
feed->setIsQuiet(query.value(FDS_DB_IS_QUIET_INDEX).toBool()); feed->setIsQuiet(query.value(FDS_DB_IS_QUIET_INDEX).toBool());
feed->setIsRtl(query.value(FDS_DB_IS_RTL_INDEX).toBool()); feed->setIsRtl(query.value(FDS_DB_IS_RTL_INDEX).toBool());
feed->setAddAnyDatetimeArticles(query.value(FDS_DB_ADD_ANY_DATETIME_ARTICLES_INDEX).toBool());
Feed::ArticleIgnoreLimit art;
art.m_addAnyArticlesToDb = query.value(FDS_DB_ADD_ANY_DATETIME_ARTICLES_INDEX).toBool();
qint64 time_to_avoid = query.value(FDS_DB_DATETIME_TO_AVOID_INDEX).value<qint64>(); qint64 time_to_avoid = query.value(FDS_DB_DATETIME_TO_AVOID_INDEX).value<qint64>();
if (time_to_avoid > 10000) { if (time_to_avoid > 10000) {
feed->setDatetimeToAvoid(TextFactory::parseDateTime(time_to_avoid)); art.m_dtToAvoid = TextFactory::parseDateTime(time_to_avoid);
} }
else { else {
feed->setHoursToAvoid(time_to_avoid); art.m_hoursToAvoid = time_to_avoid;
} }
feed->setArticleIgnoreLimit(art);
feed->setOpenArticlesDirectly(query.value(FDS_DB_OPEN_ARTICLES_INDEX).toBool()); feed->setOpenArticlesDirectly(query.value(FDS_DB_OPEN_ARTICLES_INDEX).toBool());
qDebugNN << LOGSEC_CORE << "Custom ID of feed when loading from DB is" << QUOTE_W_SPACE_DOT(feed->customId()); qDebugNN << LOGSEC_CORE << "Custom ID of feed when loading from DB is" << QUOTE_W_SPACE_DOT(feed->customId());

View file

@ -19,7 +19,7 @@ ArticleAmountControl::ArticleAmountControl(QWidget* parent) : QWidget(parent) {
false); false);
m_ui.m_spinArticleCount->setSpecialValueText(tr("all articles")); m_ui.m_spinArticleCount->setSpecialValueText(tr("all articles"));
m_ui.m_cbAddAnyDateArticles->setChecked(true); // m_ui.m_cbAddAnyDateArticles->setChecked(true);
m_ui.m_dtDateTimeToAvoid->setEnabled(false); m_ui.m_dtDateTimeToAvoid->setEnabled(false);
m_ui.m_spinHoursAvoid->setEnabled(false); m_ui.m_spinHoursAvoid->setEnabled(false);
m_ui.m_spinHoursAvoid->setMode(TimeSpinBox::Mode::DaysHours); m_ui.m_spinHoursAvoid->setMode(TimeSpinBox::Mode::DaysHours);
@ -57,7 +57,7 @@ void ArticleAmountControl::setForAppWideFeatures(bool app_wide, bool batch_edit)
m_ui.m_cbAddAnyDateArticles->setVisible(false); m_ui.m_cbAddAnyDateArticles->setVisible(false);
} }
else { else {
connect(m_ui.m_cbAddAnyDateArticles, &QCheckBox::toggled, m_ui.m_gbAvoidOldArticles, &QGroupBox::setEnabled); connect(m_ui.m_cbAddAnyDateArticles, &QCheckBox::toggled, m_ui.m_wdgAvoidOldArticles, &QGroupBox::setDisabled);
} }
if (batch_edit) { if (batch_edit) {
@ -78,7 +78,7 @@ void ArticleAmountControl::setForAppWideFeatures(bool app_wide, bool batch_edit)
} }
} }
void ArticleAmountControl::load(const Setup& setup) { void ArticleAmountControl::load(const Feed::ArticleIgnoreLimit& setup) {
// Ignoring articles. // Ignoring articles.
if (setup.m_dtToAvoid.isValid() && setup.m_dtToAvoid.toMSecsSinceEpoch() > 0) { if (setup.m_dtToAvoid.isValid() && setup.m_dtToAvoid.toMSecsSinceEpoch() > 0) {
m_ui.m_rbAvoidAbsolute->setChecked(true); m_ui.m_rbAvoidAbsolute->setChecked(true);
@ -90,6 +90,7 @@ void ArticleAmountControl::load(const Setup& setup) {
} }
m_ui.m_gbAvoidOldArticles->setChecked(setup.m_avoidOldArticles); m_ui.m_gbAvoidOldArticles->setChecked(setup.m_avoidOldArticles);
m_ui.m_cbAddAnyDateArticles->setChecked(setup.m_addAnyArticlesToDb);
// Limitting articles. // Limitting articles.
m_ui.m_spinArticleCount->setValue(setup.m_keepCountOfArticles); m_ui.m_spinArticleCount->setValue(setup.m_keepCountOfArticles);
@ -98,8 +99,8 @@ void ArticleAmountControl::load(const Setup& setup) {
m_ui.m_cbNoRemoveUnread->setChecked(setup.m_doNotRemoveUnread); m_ui.m_cbNoRemoveUnread->setChecked(setup.m_doNotRemoveUnread);
} }
ArticleAmountControl::Setup ArticleAmountControl::save() const { Feed::ArticleIgnoreLimit ArticleAmountControl::save() const {
Setup setup; Feed::ArticleIgnoreLimit setup;
// Ignoring articles. // Ignoring articles.
setup.m_addAnyArticlesToDb = m_ui.m_cbAddAnyDateArticles->isChecked(); setup.m_addAnyArticlesToDb = m_ui.m_cbAddAnyDateArticles->isChecked();
@ -121,29 +122,31 @@ ArticleAmountControl::Setup ArticleAmountControl::save() const {
return setup; return setup;
} }
bool isChangeAllowed(MultiFeedEditCheckBox* mcb) { bool isChangeAllowed(MultiFeedEditCheckBox* mcb, bool batch_edit) {
return mcb->isChecked(); return !batch_edit || mcb->isChecked();
} }
void ArticleAmountControl::saveFeed(Feed* fd) const { void ArticleAmountControl::saveFeed(Feed* fd, bool batch_edit) const {
if (isChangeAllowed(m_ui.m_mcbAddAnyDateArticles)) { Feed::ArticleIgnoreLimit& art = fd->articleIgnoreLimit();
fd->setAddAnyDatetimeArticles(m_ui.m_cbAddAnyDateArticles->isChecked());
if (isChangeAllowed(m_ui.m_mcbAddAnyDateArticles, batch_edit)) {
art.m_addAnyArticlesToDb = m_ui.m_cbAddAnyDateArticles->isChecked();
} }
if (isChangeAllowed(m_ui.m_mcbAvoidOldArticles)) { if (isChangeAllowed(m_ui.m_mcbAvoidOldArticles, batch_edit)) {
if (m_ui.m_gbAvoidOldArticles->isChecked()) { if (m_ui.m_gbAvoidOldArticles->isChecked()) {
if (m_ui.m_rbAvoidAbsolute->isChecked()) { if (m_ui.m_rbAvoidAbsolute->isChecked()) {
fd->setDatetimeToAvoid(m_ui.m_dtDateTimeToAvoid->dateTime()); art.m_dtToAvoid = m_ui.m_dtDateTimeToAvoid->dateTime();
fd->setHoursToAvoid(0); art.m_hoursToAvoid = 0;
} }
else { else {
fd->setDatetimeToAvoid({}); art.m_dtToAvoid = {};
fd->setHoursToAvoid(m_ui.m_spinHoursAvoid->value()); art.m_hoursToAvoid = m_ui.m_spinHoursAvoid->value();
} }
} }
else { else {
fd->setDatetimeToAvoid({}); art.m_dtToAvoid = {};
fd->setHoursToAvoid(0); art.m_hoursToAvoid = 0;
} }
} }
} }

View file

@ -7,7 +7,7 @@
#include "ui_articleamountcontrol.h" #include "ui_articleamountcontrol.h"
class Feed; #include "services/abstract/feed.h"
class ArticleAmountControl : public QWidget { class ArticleAmountControl : public QWidget {
Q_OBJECT Q_OBJECT
@ -15,28 +15,14 @@ class ArticleAmountControl : public QWidget {
friend class FormFeedDetails; friend class FormFeedDetails;
public: public:
struct Setup {
// Ignoring articles.
bool m_avoidOldArticles = false;
bool m_addAnyArticlesToDb = false;
QDateTime m_dtToAvoid = QDateTime();
int m_hoursToAvoid = 0;
// Limitting articles.
int m_keepCountOfArticles = 0;
bool m_doNotRemoveStarred = true;
bool m_doNotRemoveUnread = true;
bool m_moveToBinDontPurge = false;
};
explicit ArticleAmountControl(QWidget* parent = nullptr); explicit ArticleAmountControl(QWidget* parent = nullptr);
void setForAppWideFeatures(bool app_wide, bool batch_edit); void setForAppWideFeatures(bool app_wide, bool batch_edit);
void load(const Setup& setup); void load(const Feed::ArticleIgnoreLimit& setup);
Setup save() const; Feed::ArticleIgnoreLimit save() const;
void saveFeed(Feed* fd) const; void saveFeed(Feed* fd, bool batch_edit) const;
private slots: private slots:
void updateArticleCountSuffix(int count); void updateArticleCountSuffix(int count);

View file

@ -29,7 +29,7 @@
<item> <item>
<widget class="QTabWidget" name="tabWidget"> <widget class="QTabWidget" name="tabWidget">
<property name="currentIndex"> <property name="currentIndex">
<number>1</number> <number>0</number>
</property> </property>
<widget class="QWidget" name="m_tabIgnore"> <widget class="QWidget" name="m_tabIgnore">
<attribute name="title"> <attribute name="title">
@ -72,9 +72,6 @@
</property> </property>
<item> <item>
<widget class="QGroupBox" name="m_gbAvoidOldArticles"> <widget class="QGroupBox" name="m_gbAvoidOldArticles">
<property name="enabled">
<bool>true</bool>
</property>
<property name="title"> <property name="title">
<string>Avoid adding articles before this date/time into the database</string> <string>Avoid adding articles before this date/time into the database</string>
</property> </property>

View file

@ -283,7 +283,7 @@ void SettingsFeedsMessages::loadSettings() {
->setChecked(settings()->value(GROUP(Messages), SETTING(Messages::UseLegacyArticleFormat)).toBool()); ->setChecked(settings()->value(GROUP(Messages), SETTING(Messages::UseLegacyArticleFormat)).toBool());
} }
ArticleAmountControl::Setup art_limit; Feed::ArticleIgnoreLimit art_limit;
art_limit.m_avoidOldArticles = settings()->value(GROUP(Messages), SETTING(Messages::AvoidOldArticles)).toBool(); art_limit.m_avoidOldArticles = settings()->value(GROUP(Messages), SETTING(Messages::AvoidOldArticles)).toBool();
art_limit.m_dtToAvoid = settings()->value(GROUP(Messages), SETTING(Messages::DateTimeToAvoidArticle)).toDateTime(); art_limit.m_dtToAvoid = settings()->value(GROUP(Messages), SETTING(Messages::DateTimeToAvoidArticle)).toDateTime();
art_limit.m_hoursToAvoid = settings()->value(GROUP(Messages), SETTING(Messages::HoursToAvoidArticle)).toInt(); art_limit.m_hoursToAvoid = settings()->value(GROUP(Messages), SETTING(Messages::HoursToAvoidArticle)).toInt();
@ -413,7 +413,7 @@ void SettingsFeedsMessages::saveSettings() {
m_ui->m_cbLegacyArticleFormatting->isChecked()); m_ui->m_cbLegacyArticleFormatting->isChecked());
} }
ArticleAmountControl::Setup art_limit = m_ui->m_wdgArticleLimiting->save(); Feed::ArticleIgnoreLimit art_limit = m_ui->m_wdgArticleLimiting->save();
settings()->setValue(GROUP(Messages), Messages::AvoidOldArticles, art_limit.m_avoidOldArticles); settings()->setValue(GROUP(Messages), Messages::AvoidOldArticles, art_limit.m_avoidOldArticles);
settings()->setValue(GROUP(Messages), Messages::DateTimeToAvoidArticle, art_limit.m_dtToAvoid); settings()->setValue(GROUP(Messages), Messages::DateTimeToAvoidArticle, art_limit.m_dtToAvoid);

View file

@ -16,8 +16,7 @@ Feed::Feed(RootItem* parent)
: RootItem(parent), m_source(QString()), m_status(Status::Normal), m_statusString(QString()), : RootItem(parent), m_source(QString()), m_status(Status::Normal), m_statusString(QString()),
m_autoUpdateType(AutoUpdateType::DefaultAutoUpdate), m_autoUpdateInterval(DEFAULT_AUTO_UPDATE_INTERVAL), m_autoUpdateType(AutoUpdateType::DefaultAutoUpdate), m_autoUpdateInterval(DEFAULT_AUTO_UPDATE_INTERVAL),
m_lastUpdated(QDateTime::currentDateTimeUtc()), m_isSwitchedOff(false), m_isQuiet(false), m_lastUpdated(QDateTime::currentDateTimeUtc()), m_isSwitchedOff(false), m_isQuiet(false),
m_openArticlesDirectly(false), m_isRtl(false), m_addAnyDatetimeArticles(false), m_datetimeToAvoid(QDateTime()), m_openArticlesDirectly(false), m_isRtl(false), m_messageFilters(QList<QPointer<MessageFilter>>()) {
m_hoursToAvoid(0), m_messageFilters(QList<QPointer<MessageFilter>>()) {
setKind(RootItem::Kind::Feed); setKind(RootItem::Kind::Feed);
} }
@ -39,9 +38,7 @@ Feed::Feed(const Feed& other) : RootItem(other) {
setLastUpdated(other.lastUpdated()); setLastUpdated(other.lastUpdated());
setMessageFilters(other.messageFilters()); setMessageFilters(other.messageFilters());
setOpenArticlesDirectly(other.openArticlesDirectly()); setOpenArticlesDirectly(other.openArticlesDirectly());
setAddAnyDatetimeArticles(other.addAnyDatetimeArticles()); setArticleIgnoreLimit(Feed::ArticleIgnoreLimit(other.articleIgnoreLimit()));
setDatetimeToAvoid(other.datetimeToAvoid());
setHoursToAvoid(other.hoursToAvoid());
setIsRtl(other.isRtl()); setIsRtl(other.isRtl());
setIsSwitchedOff(other.isSwitchedOff()); setIsSwitchedOff(other.isSwitchedOff());
setIsQuiet(other.isQuiet()); setIsQuiet(other.isQuiet());
@ -203,22 +200,6 @@ void Feed::setIsRtl(bool rtl) {
m_isRtl = rtl; m_isRtl = rtl;
} }
bool Feed::addAnyDatetimeArticles() const {
return m_addAnyDatetimeArticles;
}
void Feed::setAddAnyDatetimeArticles(bool add_any_articles) {
m_addAnyDatetimeArticles = add_any_articles;
}
QDateTime Feed::datetimeToAvoid() const {
return m_datetimeToAvoid;
}
void Feed::setDatetimeToAvoid(const QDateTime& dt) {
m_datetimeToAvoid = dt;
}
void Feed::appendMessageFilter(MessageFilter* filter) { void Feed::appendMessageFilter(MessageFilter* filter) {
m_messageFilters.append(QPointer<MessageFilter>(filter)); m_messageFilters.append(QPointer<MessageFilter>(filter));
} }
@ -313,12 +294,16 @@ QString Feed::getStatusDescription() const {
} }
} }
int Feed::hoursToAvoid() const { Feed::ArticleIgnoreLimit& Feed::articleIgnoreLimit() {
return m_hoursToAvoid; return m_articleIgnoreLimit;
} }
void Feed::setHoursToAvoid(int hours_to_avoid) { const Feed::ArticleIgnoreLimit& Feed::articleIgnoreLimit() const {
m_hoursToAvoid = hours_to_avoid; return m_articleIgnoreLimit;
}
void Feed::setArticleIgnoreLimit(const ArticleIgnoreLimit& ignore_limit) {
m_articleIgnoreLimit = ignore_limit;
} }
bool Feed::isQuiet() const { bool Feed::isQuiet() const {

View file

@ -16,6 +16,20 @@ class Feed : public RootItem {
Q_OBJECT Q_OBJECT
public: public:
struct ArticleIgnoreLimit {
// Ignoring articles.
bool m_avoidOldArticles = false;
bool m_addAnyArticlesToDb = false;
QDateTime m_dtToAvoid = QDateTime();
int m_hoursToAvoid = 0;
// Limitting articles.
int m_keepCountOfArticles = 0;
bool m_doNotRemoveStarred = true;
bool m_doNotRemoveUnread = true;
bool m_moveToBinDontPurge = false;
};
// Specifies the auto-download strategy for the feed. // Specifies the auto-download strategy for the feed.
enum class AutoUpdateType { enum class AutoUpdateType {
DontAutoUpdate = 0, DontAutoUpdate = 0,
@ -91,14 +105,9 @@ class Feed : public RootItem {
bool isRtl() const; bool isRtl() const;
void setIsRtl(bool rtl); void setIsRtl(bool rtl);
bool addAnyDatetimeArticles() const; ArticleIgnoreLimit& articleIgnoreLimit();
void setAddAnyDatetimeArticles(bool add_any_articles); const ArticleIgnoreLimit& articleIgnoreLimit() const;
void setArticleIgnoreLimit(const ArticleIgnoreLimit& ignore_limit);
QDateTime datetimeToAvoid() const;
void setDatetimeToAvoid(const QDateTime& dt);
int hoursToAvoid() const;
void setHoursToAvoid(int hours_to_avoid);
public slots: public slots:
virtual void updateCounts(bool including_total_count); virtual void updateCounts(bool including_total_count);
@ -122,9 +131,8 @@ class Feed : public RootItem {
// NOTE: These are used to filter out older articles // NOTE: These are used to filter out older articles
// than needed. Either absolute value is given (date/time) // than needed. Either absolute value is given (date/time)
// or relative value given in minutes. // or relative value given in minutes.
bool m_addAnyDatetimeArticles; // Amount
QDateTime m_datetimeToAvoid; ArticleIgnoreLimit m_articleIgnoreLimit;
int m_hoursToAvoid;
int m_totalCount{}; int m_totalCount{};
int m_unreadCount{}; int m_unreadCount{};
@ -133,5 +141,6 @@ class Feed : public RootItem {
Q_DECLARE_METATYPE(Feed::AutoUpdateType) Q_DECLARE_METATYPE(Feed::AutoUpdateType)
Q_DECLARE_METATYPE(Feed::Status) Q_DECLARE_METATYPE(Feed::Status)
Q_DECLARE_METATYPE(Feed::ArticleIgnoreLimit)
#endif // FEED_H #endif // FEED_H

View file

@ -55,7 +55,7 @@ void FormFeedDetails::apply() {
fd->setIsRtl(m_ui.m_cbFeedRTL->isChecked()); fd->setIsRtl(m_ui.m_cbFeedRTL->isChecked());
} }
m_ui.m_wdgArticleLimiting->saveFeed(fd); m_ui.m_wdgArticleLimiting->saveFeed(fd, m_isBatchEdit);
if (isChangeAllowed(m_ui.m_mcbDisableFeed)) { if (isChangeAllowed(m_ui.m_mcbDisableFeed)) {
fd->setIsSwitchedOff(m_ui.m_cbDisableFeed->isChecked()); fd->setIsSwitchedOff(m_ui.m_cbDisableFeed->isChecked());
@ -149,8 +149,9 @@ void FormFeedDetails::loadFeedData() {
m_ui.m_cbDisableFeed->setChecked(fd->isSwitchedOff()); m_ui.m_cbDisableFeed->setChecked(fd->isSwitchedOff());
m_ui.m_cbSuppressFeed->setChecked(fd->isQuiet()); m_ui.m_cbSuppressFeed->setChecked(fd->isQuiet());
ArticleAmountControl::Setup art_limit; Feed::ArticleIgnoreLimit art_limit = Feed::ArticleIgnoreLimit(fd->articleIgnoreLimit());
/*
art_limit.m_addAnyArticlesToDb = fd->addAnyDatetimeArticles(); art_limit.m_addAnyArticlesToDb = fd->addAnyDatetimeArticles();
art_limit.m_avoidOldArticles = art_limit.m_avoidOldArticles =
(fd->datetimeToAvoid().isValid() && fd->datetimeToAvoid().toMSecsSinceEpoch() > 0) || fd->hoursToAvoid() > 0; (fd->datetimeToAvoid().isValid() && fd->datetimeToAvoid().toMSecsSinceEpoch() > 0) || fd->hoursToAvoid() > 0;
@ -161,6 +162,7 @@ void FormFeedDetails::loadFeedData() {
art_limit.m_doNotRemoveUnread = false; art_limit.m_doNotRemoveUnread = false;
art_limit.m_keepCountOfArticles = 4; art_limit.m_keepCountOfArticles = 4;
art_limit.m_moveToBinDontPurge = false; art_limit.m_moveToBinDontPurge = false;
*/
m_ui.m_wdgArticleLimiting->load(art_limit); m_ui.m_wdgArticleLimiting->load(art_limit);
} }

View file

@ -492,11 +492,15 @@ QMap<QString, QVariantMap> ServiceRoot::storeCustomFeedsData() {
feed_custom_data.insert(QSL("is_quiet"), feed->isQuiet()); feed_custom_data.insert(QSL("is_quiet"), feed->isQuiet());
feed_custom_data.insert(QSL("open_articles_directly"), feed->openArticlesDirectly()); feed_custom_data.insert(QSL("open_articles_directly"), feed->openArticlesDirectly());
feed_custom_data.insert(QSL("is_rtl"), feed->isRtl()); feed_custom_data.insert(QSL("is_rtl"), feed->isRtl());
feed_custom_data.insert(QSL("add_any_datetime_articles"), feed->addAnyDatetimeArticles());
feed_custom_data.insert(QSL("article_limit_ignore"), QVariant::fromValue(feed->articleIgnoreLimit()));
/*
feed_custom_data.insert(QSL("datetime_to_avoid"), feed_custom_data.insert(QSL("datetime_to_avoid"),
(feed->datetimeToAvoid().isValid() && feed->datetimeToAvoid().toMSecsSinceEpoch() > 0) (feed->datetimeToAvoid().isValid() && feed->datetimeToAvoid().toMSecsSinceEpoch() > 0)
? feed->datetimeToAvoid().toMSecsSinceEpoch() ? feed->datetimeToAvoid().toMSecsSinceEpoch()
: feed->hoursToAvoid()); : feed->hoursToAvoid());
*/
// NOTE: This is here specifically to be able to restore custom sort order. // NOTE: This is here specifically to be able to restore custom sort order.
// Otherwise the information is lost when list of feeds/folders is refreshed from remote // Otherwise the information is lost when list of feeds/folders is refreshed from remote
@ -547,6 +551,11 @@ void ServiceRoot::restoreCustomFeedsData(const QMap<QString, QVariantMap>& data,
feed->setIsQuiet(feed_custom_data.value(QSL("is_quiet")).toBool()); feed->setIsQuiet(feed_custom_data.value(QSL("is_quiet")).toBool());
feed->setOpenArticlesDirectly(feed_custom_data.value(QSL("open_articles_directly")).toBool()); feed->setOpenArticlesDirectly(feed_custom_data.value(QSL("open_articles_directly")).toBool());
feed->setIsRtl(feed_custom_data.value(QSL("is_rtl")).toBool()); feed->setIsRtl(feed_custom_data.value(QSL("is_rtl")).toBool());
feed
->setArticleIgnoreLimit(feed_custom_data.value(QSL("article_limit_ignore")).value<Feed::ArticleIgnoreLimit>());
/*
feed->setAddAnyDatetimeArticles(feed_custom_data.value(QSL("add_any_datetime_articles")).toBool()); feed->setAddAnyDatetimeArticles(feed_custom_data.value(QSL("add_any_datetime_articles")).toBool());
qint64 time_to_avoid = feed_custom_data.value(QSL("datetime_to_avoid")).value<qint64>(); qint64 time_to_avoid = feed_custom_data.value(QSL("datetime_to_avoid")).value<qint64>();
@ -557,6 +566,7 @@ void ServiceRoot::restoreCustomFeedsData(const QMap<QString, QVariantMap>& data,
else { else {
feed->setHoursToAvoid(time_to_avoid); feed->setHoursToAvoid(time_to_avoid);
} }
*/
} }
} }
} }