From 43cdc5f128a007c69b42ceb453940c76fd6d8ffb Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Wed, 26 Jul 2023 11:03:59 +0200 Subject: [PATCH] make feed settings consistent with database --- src/librssguard/database/databasequeries.cpp | 3 ++- src/librssguard/database/databasequeries.h | 6 +++++- src/librssguard/services/abstract/gui/formfeeddetails.cpp | 5 +++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/librssguard/database/databasequeries.cpp b/src/librssguard/database/databasequeries.cpp index ee0d5f9a3..7d4eaf8bd 100644 --- a/src/librssguard/database/databasequeries.cpp +++ b/src/librssguard/database/databasequeries.cpp @@ -2200,7 +2200,8 @@ void DatabaseQueries::createOverwriteFeed(const QSqlDatabase& db, Feed* feed, in q.bindValue(QSL(":open_articles"), feed->openArticlesDirectly()); q.bindValue(QSL(":is_rtl"), feed->isRtl()); q.bindValue(QSL(":add_any_datetime_articles"), feed->addAnyDatetimeArticles()); - q.bindValue(QSL(":datetime_to_avoid"), feed->datetimeToAvoid().toMSecsSinceEpoch()); + q.bindValue(QSL(":datetime_to_avoid"), + feed->datetimeToAvoid().isValid() ? feed->datetimeToAvoid().toMSecsSinceEpoch() : 0); auto custom_data = feed->customDatabaseData(); QString serialized_custom_data = serializeCustomData(custom_data); diff --git a/src/librssguard/database/databasequeries.h b/src/librssguard/database/databasequeries.h index b8434031d..78dc8f12b 100644 --- a/src/librssguard/database/databasequeries.h +++ b/src/librssguard/database/databasequeries.h @@ -355,7 +355,11 @@ Assignment DatabaseQueries::getFeeds(const QSqlDatabase& db, feed->setIsQuiet(query.value(FDS_DB_IS_QUIET_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->setDatetimeToAvoid(query.value(FDS_DB_DATETIME_TO_AVOID_INDEX).toDateTime()); + + auto dt_avoid = query.value(FDS_DB_DATETIME_TO_AVOID_INDEX).value(); + + feed->setDatetimeToAvoid(dt_avoid > 0 ? TextFactory::parseDateTime(dt_avoid) : QDateTime()); + 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()); diff --git a/src/librssguard/services/abstract/gui/formfeeddetails.cpp b/src/librssguard/services/abstract/gui/formfeeddetails.cpp index df691bc0b..0bf8a27aa 100644 --- a/src/librssguard/services/abstract/gui/formfeeddetails.cpp +++ b/src/librssguard/services/abstract/gui/formfeeddetails.cpp @@ -51,7 +51,8 @@ void FormFeedDetails::apply() { m_feed->setOpenArticlesDirectly(m_ui->m_cbOpenArticlesAutomatically->isChecked()); m_feed->setIsRtl(m_ui->m_cbFeedRTL->isChecked()); m_feed->setAddAnyDatetimeArticles(m_ui->m_cbAddAnyDateArticles->isChecked()); - m_feed->setDatetimeToAvoid(m_ui->m_dtDateTimeToAvoid->dateTime()); + m_feed->setDatetimeToAvoid(m_ui->m_gbAvoidOldArticles->isChecked() ? m_ui->m_dtDateTimeToAvoid->dateTime() + : QDateTime()); m_feed->setIsSwitchedOff(m_ui->m_cbDisableFeed->isChecked()); m_feed->setIsQuiet(m_ui->m_cbSuppressFeed->isChecked()); @@ -106,7 +107,7 @@ void FormFeedDetails::loadFeedData() { m_ui->m_cbOpenArticlesAutomatically->setChecked(m_feed->openArticlesDirectly()); m_ui->m_cbFeedRTL->setChecked(m_feed->isRtl()); m_ui->m_cbAddAnyDateArticles->setChecked(m_feed->addAnyDatetimeArticles()); - m_ui->m_gbAvoidOldArticles->setEnabled(!m_feed->addAnyDatetimeArticles()); + m_ui->m_gbAvoidOldArticles->setChecked(m_feed->datetimeToAvoid().isValid()); m_ui->m_dtDateTimeToAvoid->setDateTime(m_feed->datetimeToAvoid()); m_ui->m_cbDisableFeed->setChecked(m_feed->isSwitchedOff()); m_ui->m_cbSuppressFeed->setChecked(m_feed->isQuiet());