diff --git a/src/librssguard/gui/dialogs/formmain.cpp b/src/librssguard/gui/dialogs/formmain.cpp index b821e72f0..9a67497a5 100755 --- a/src/librssguard/gui/dialogs/formmain.cpp +++ b/src/librssguard/gui/dialogs/formmain.cpp @@ -159,6 +159,7 @@ QList FormMain::allActions() const { actions << m_ui->m_actionClearAllItems; actions << m_ui->m_actionShowOnlyUnreadItems; actions << m_ui->m_actionShowTreeBranches; + actions << m_ui->m_actionAutoExpandItemsWhenSelected; actions << m_ui->m_actionShowOnlyUnreadMessages; actions << m_ui->m_actionMarkSelectedMessagesAsRead; actions << m_ui->m_actionMarkSelectedMessagesAsUnread; @@ -596,6 +597,8 @@ void FormMain::loadSize() { SETTING(Feeds::ShowOnlyUnreadFeeds)).toBool()); m_ui->m_actionShowTreeBranches->setChecked(settings->value(GROUP(Feeds), SETTING(Feeds::ShowTreeBranches)).toBool()); + m_ui->m_actionAutoExpandItemsWhenSelected->setChecked(settings->value(GROUP(Feeds), + SETTING(Feeds::AutoExpandOnSelection)).toBool()); m_ui->m_actionShowOnlyUnreadMessages->setChecked(settings->value(GROUP(Messages), SETTING(Messages::ShowOnlyUnreadMessages)).toBool()); m_ui->m_actionAlternateColorsInLists->setChecked(settings->value(GROUP(GUI), @@ -763,6 +766,8 @@ void FormMain::createConnections() { tabWidget()->feedMessageViewer(), &FeedMessageViewer::toggleShowOnlyUnreadFeeds); connect(m_ui->m_actionShowTreeBranches, &QAction::toggled, tabWidget()->feedMessageViewer(), &FeedMessageViewer::toggleShowFeedTreeBranches); + connect(m_ui->m_actionAutoExpandItemsWhenSelected, &QAction::toggled, + tabWidget()->feedMessageViewer(), &FeedMessageViewer::toggleItemsAutoExpandingOnSelection); connect(m_ui->m_actionAlternateColorsInLists, &QAction::toggled, tabWidget()->feedMessageViewer(), &FeedMessageViewer::alternateRowColorsInLists); connect(m_ui->m_actionShowOnlyUnreadMessages, &QAction::toggled, diff --git a/src/librssguard/gui/dialogs/formmain.ui b/src/librssguard/gui/dialogs/formmain.ui index f4cda084b..9db597b8b 100755 --- a/src/librssguard/gui/dialogs/formmain.ui +++ b/src/librssguard/gui/dialogs/formmain.ui @@ -116,6 +116,7 @@ + @@ -784,6 +785,14 @@ Alternate row colors in lists + + + true + + + Automatically &expand items when selected + + diff --git a/src/librssguard/gui/feedmessageviewer.cpp b/src/librssguard/gui/feedmessageviewer.cpp index 320f18539..4ae294661 100644 --- a/src/librssguard/gui/feedmessageviewer.cpp +++ b/src/librssguard/gui/feedmessageviewer.cpp @@ -188,6 +188,12 @@ void FeedMessageViewer::toggleShowFeedTreeBranches() { qApp->settings()->setValue(GROUP(Feeds), Feeds::ShowTreeBranches, origin->isChecked()); } +void FeedMessageViewer::toggleItemsAutoExpandingOnSelection() { + const QAction* origin = qobject_cast(sender()); + + qApp->settings()->setValue(GROUP(Feeds), Feeds::AutoExpandOnSelection, origin->isChecked()); +} + void FeedMessageViewer::alternateRowColorsInLists() { const QAction* origin = qobject_cast(sender()); diff --git a/src/librssguard/gui/feedmessageviewer.h b/src/librssguard/gui/feedmessageviewer.h index 2b19749fb..822f0fb2a 100644 --- a/src/librssguard/gui/feedmessageviewer.h +++ b/src/librssguard/gui/feedmessageviewer.h @@ -66,6 +66,7 @@ class RSSGUARD_DLLSPEC FeedMessageViewer : public TabContent { void toggleShowOnlyUnreadMessages(); void toggleShowOnlyUnreadFeeds(); void toggleShowFeedTreeBranches(); + void toggleItemsAutoExpandingOnSelection(); void alternateRowColorsInLists(); private slots: diff --git a/src/librssguard/gui/feedsview.cpp b/src/librssguard/gui/feedsview.cpp index 2b232fd1d..84fd28876 100755 --- a/src/librssguard/gui/feedsview.cpp +++ b/src/librssguard/gui/feedsview.cpp @@ -713,6 +713,11 @@ void FeedsView::selectionChanged(const QItemSelection& selected, const QItemSele emit itemSelected(selected_item); m_proxyModel->invalidateReadFeedsFilter(); + + if (!selectedIndexes().isEmpty() && + qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::AutoExpandOnSelection)).toBool()) { + expand(selectedIndexes().first()); + } } void FeedsView::keyPressEvent(QKeyEvent* event) { diff --git a/src/librssguard/miscellaneous/settings.cpp b/src/librssguard/miscellaneous/settings.cpp index ac60b38b0..6ac33b8a6 100755 --- a/src/librssguard/miscellaneous/settings.cpp +++ b/src/librssguard/miscellaneous/settings.cpp @@ -60,6 +60,9 @@ DVALUE(bool) Feeds::ShowOnlyUnreadFeedsDef = false; DKEY Feeds::ShowTreeBranches = "show_tree_branches"; DVALUE(bool) Feeds::ShowTreeBranchesDef = true; +DKEY Feeds::AutoExpandOnSelection = "auto_expand_on_selection"; +DVALUE(bool) Feeds::AutoExpandOnSelectionDef = false; + DKEY Feeds::ListFont = "list_font"; // Messages. diff --git a/src/librssguard/miscellaneous/settings.h b/src/librssguard/miscellaneous/settings.h index f10bd7bc7..18bbd939d 100644 --- a/src/librssguard/miscellaneous/settings.h +++ b/src/librssguard/miscellaneous/settings.h @@ -79,6 +79,9 @@ namespace Feeds { KEY ShowTreeBranches; VALUE(bool) ShowTreeBranchesDef; + KEY AutoExpandOnSelection; + VALUE(bool) AutoExpandOnSelectionDef; + KEY ListFont; }