diff --git a/src/librssguard/core/feedsmodel.cpp b/src/librssguard/core/feedsmodel.cpp index 58c90cf87..b64f39cb2 100644 --- a/src/librssguard/core/feedsmodel.cpp +++ b/src/librssguard/core/feedsmodel.cpp @@ -554,14 +554,12 @@ QVariant FeedsModel::data(const QModelIndex& index, int role) const { case Qt::ItemDataRole::FontRole: { RootItem* it = itemForIndex(index); bool is_bold = it->countOfUnreadMessages() > 0; - bool is_striked = it->kind() == RootItem::Kind::Feed ? it->toFeed()->isSwitchedOff() : false; + bool is_striked = it->kind() == RootItem::Kind::Feed && + qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::StrikethroughDisabledFeeds)).toBool() && + qobject_cast(it)->isSwitchedOff(); - if (is_bold) { - return is_striked ? m_boldStrikedFont : m_boldFont; - } - else { - return is_striked ? m_normalStrikedFont : m_normalFont; - } + return is_bold ? (is_striked ? m_boldStrikedFont : m_boldFont) + : (is_striked ? m_normalStrikedFont : m_normalFont); } case Qt::ItemDataRole::DecorationRole: { diff --git a/src/librssguard/gui/settings/settingsfeedsmessages.cpp b/src/librssguard/gui/settings/settingsfeedsmessages.cpp index 9487523d4..afa51cabc 100644 --- a/src/librssguard/gui/settings/settingsfeedsmessages.cpp +++ b/src/librssguard/gui/settings/settingsfeedsmessages.cpp @@ -207,6 +207,7 @@ SettingsFeedsMessages::SettingsFeedsMessages(Settings* settings, QWidget* parent this, &SettingsFeedsMessages::dirtifySettings); connect(m_ui->m_checkShowTooltips, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings); + connect(m_ui->m_cbStrikethroughDisabledFeeds, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings); connect(m_ui->m_checkMultilineArticleList, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings); connect(m_ui->m_checkMultilineArticleList, &QCheckBox::toggled, this, &SettingsFeedsMessages::requireRestart); @@ -352,6 +353,8 @@ void SettingsFeedsMessages::loadSettings() { m_ui->m_cmbCountsFeedList->setEditText(settings()->value(GROUP(Feeds), SETTING(Feeds::CountFormat)).toString()); m_ui->m_checkShowTooltips ->setChecked(settings()->value(GROUP(Feeds), SETTING(Feeds::EnableTooltipsFeedsMessages)).toBool()); + m_ui->m_cbStrikethroughDisabledFeeds + ->setChecked(settings()->value(GROUP(Feeds), SETTING(Feeds::StrikethroughDisabledFeeds)).toBool()); m_ui->m_cmbIgnoreContentsChanges ->setChecked(settings()->value(GROUP(Messages), SETTING(Messages::IgnoreContentsChanges)).toBool()); m_ui->m_checkMultilineArticleList @@ -489,6 +492,7 @@ void SettingsFeedsMessages::saveSettings() { settings()->setValue(GROUP(Feeds), Feeds::FeedsUpdateStartupDelay, m_ui->m_spinStartupUpdateDelay->value()); settings()->setValue(GROUP(Feeds), Feeds::CountFormat, m_ui->m_cmbCountsFeedList->currentText()); settings()->setValue(GROUP(Feeds), Feeds::EnableTooltipsFeedsMessages, m_ui->m_checkShowTooltips->isChecked()); + settings()->setValue(GROUP(Feeds), Feeds::StrikethroughDisabledFeeds, m_ui->m_cbStrikethroughDisabledFeeds->isChecked()); settings()->setValue(GROUP(Messages), Messages::IgnoreContentsChanges, m_ui->m_cmbIgnoreContentsChanges->isChecked()); settings()->setValue(GROUP(Messages), Messages::MultilineArticleList, m_ui->m_checkMultilineArticleList->isChecked()); settings()->setValue(GROUP(Messages), diff --git a/src/librssguard/gui/settings/settingsfeedsmessages.ui b/src/librssguard/gui/settings/settingsfeedsmessages.ui index 65a04b0e0..ea7a0048d 100644 --- a/src/librssguard/gui/settings/settingsfeedsmessages.ui +++ b/src/librssguard/gui/settings/settingsfeedsmessages.ui @@ -266,6 +266,13 @@ + + + + Strikethrough disabled feed titles + + + @@ -727,6 +734,7 @@ m_cbUpdateFeedListDuringFetching m_cbListsRestrictedShortcuts m_checkShowTooltips + m_cbStrikethroughDisabledFeeds m_checkRemoveReadMessagesOnExit m_cbArticleViewerAlwaysVisible m_cmbIgnoreContentsChanges diff --git a/src/librssguard/miscellaneous/settings.cpp b/src/librssguard/miscellaneous/settings.cpp index cc2233307..4853aafd7 100644 --- a/src/librssguard/miscellaneous/settings.cpp +++ b/src/librssguard/miscellaneous/settings.cpp @@ -100,6 +100,9 @@ DVALUE(char*) Feeds::CountFormatDef = "(%unread)"; DKEY Feeds::EnableTooltipsFeedsMessages = "show_tooltips"; DVALUE(bool) Feeds::EnableTooltipsFeedsMessagesDef = true; +DKEY Feeds::StrikethroughDisabledFeeds = "strikethrough_disabled_feeds"; +DVALUE(bool) Feeds::StrikethroughDisabledFeedsDef = false; + DKEY Feeds::PauseFeedFetching = "pause_feed_fetching"; DVALUE(bool) Feeds::PauseFeedFetchingDef = false; diff --git a/src/librssguard/miscellaneous/settings.h b/src/librssguard/miscellaneous/settings.h index af0766df0..c4fda3793 100644 --- a/src/librssguard/miscellaneous/settings.h +++ b/src/librssguard/miscellaneous/settings.h @@ -98,6 +98,9 @@ namespace Feeds { KEY EnableTooltipsFeedsMessages; VALUE(bool) EnableTooltipsFeedsMessagesDef; + KEY StrikethroughDisabledFeeds; + VALUE(bool) StrikethroughDisabledFeedsDef; + KEY PauseFeedFetching; VALUE(bool) PauseFeedFetchingDef;