From 6c36613da14106801e1e15996b03f7a270f08e12 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Tue, 25 Aug 2015 07:09:10 +0200 Subject: [PATCH] Probably fixed #121. --- .../icons/mini-kfaenza/expand-collapse.png | Bin 0 -> 1787 bytes resources/text/CHANGELOG | 1 + src/gui/dialogs/formmain.cpp | 1 + src/gui/dialogs/formmain.ui | 9 +++++++++ src/gui/feedmessageviewer.cpp | 3 +++ src/gui/feedsview.cpp | 17 ++++++++++++++--- src/gui/feedsview.h | 4 ++-- 7 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 resources/graphics/icons/mini-kfaenza/expand-collapse.png diff --git a/resources/graphics/icons/mini-kfaenza/expand-collapse.png b/resources/graphics/icons/mini-kfaenza/expand-collapse.png new file mode 100644 index 0000000000000000000000000000000000000000..7e257e4bc519ca8dd41234804d4079a922c53d44 GIT binary patch literal 1787 zcmV3aTCRZrFPJPlje+z@5*q@Q1|Ofx|HNrh#G2^Rt4ezHoG zX(njE1@eA!%*>_2#ef|^hm`W~Qp!DA>+P%3%?3dTF|U;RuTp9RcmrerJIJ?;vQc0s z&}~`PKY$Lcb#zsG+W`17{6R|DueJUkkOd0(QzGJ*6Tm0Hr&7wlYOUi+g-)5Kg_JTb zrTj)IHH$X_96(Dy-@+qcw-BOdqX`e7ltKv61MJ3=)dFv&$G=GcNv(Axyou(AKOJ`P z+XBBxfbbtQ{hY4=QM{=y;5Pz--!iPm21AjYroe*DLx3=EOf>tZrxFy&xEcQOve+WP z_`MMhK9!(I&aDyPUjtS)10hAn{H-alh8+H}rXpDAEF}efAFsuDJKE>k={pRzg5%hgJiz8#ito#xqD%{9e~}LsKIN zXp|NZ?d|P5M@L6bo<4p0<vtN>GY`uxU|ge<-sLs5b$T6DLmeJbLu#yN-^IwoE2d zO+QI-QnU*V32TVB0ps!^7|KoSfC7M;Dxo9)1U;A`N^8X8Oh$z(FQ`~3Oy z2aX&$(iV@$Lkk}}cI=;3wy*Jo4Ptz9c*NI=AAui$pMm+Mi(oCQnZ^q{aWk2WbM@-g zg=f#6^`1F%W=~sNTUdMZeyT=oC_mLh_ZK-w>vxNXbf*IuT>z@2jEv=3a}e#4=CWR*6#iL_wAQ2 zU#8EVJ^Mui-&YeFH39-?JR+P_Dzz{=Iyz_Dc7{zd0s<^*iMhGC0%hWM*80TvTcRQ1z1MFY8p3I8@_B? zae^kcrhxI#i<**h!;)agRx(OVvOaWmqo63E1_P^$qm;^rg`_k)qS2^ON(EnyE&FE3 z!8^I7T-S{z5(yoRMy2nD*5;g0{v<}3+kBLim*BXwBcAVx2wTprPQ+gusWuH zBIvtiSpX`R%SC}1Je!4M5|H-^__tE(vs^BBAQp>d6N!WrLReBtgb+eXiDg;Byca?U z%d(JC3L%7f#j-5n1GA2lam(zQnL d?Qp0?_WzK}X1=D3M*si-002ovPDHLkV1mndX8r&G literal 0 HcmV?d00001 diff --git a/resources/text/CHANGELOG b/resources/text/CHANGELOG index e13676290..7fdc87c42 100644 --- a/resources/text/CHANGELOG +++ b/resources/text/CHANGELOG @@ -24,6 +24,7 @@ Fixed:
  • Categories are now not expanded when selected using "Go to next/previous item" in feeds list. (bug #122)
  • +
  • Added action to expand/collapse currently selected item in feeds list. (enhancement #121)

    • diff --git a/src/gui/dialogs/formmain.cpp b/src/gui/dialogs/formmain.cpp index 5a19130f3..00a30fe3d 100755 --- a/src/gui/dialogs/formmain.cpp +++ b/src/gui/dialogs/formmain.cpp @@ -278,6 +278,7 @@ void FormMain::setupIcons() { m_ui->m_actionSelectPreviousMessage->setIcon(icon_theme_factory->fromTheme(QSL("go-up"))); m_ui->m_actionShowOnlyUnreadFeeds->setIcon(icon_theme_factory->fromTheme(QSL("mail-mark-unread"))); m_ui->m_actionFetchFeedMetadata->setIcon(icon_theme_factory->fromTheme(QSL("download-manager"))); + m_ui->m_actionExpandCollapseFeedCategory->setIcon(icon_theme_factory->fromTheme(QSL("expand-collapse"))); // Setup icons for underlying components: opened web browsers... foreach (WebBrowser *browser, WebBrowser::runningWebBrowsers()) { diff --git a/src/gui/dialogs/formmain.ui b/src/gui/dialogs/formmain.ui index 297fd1763..9aeaa3567 100755 --- a/src/gui/dialogs/formmain.ui +++ b/src/gui/dialogs/formmain.ui @@ -146,6 +146,7 @@ + @@ -671,6 +672,14 @@ Ctrl+Shift+F + + + &Expand/collapse selected feed/category + + + E + + diff --git a/src/gui/feedmessageviewer.cpp b/src/gui/feedmessageviewer.cpp index 0f52c7ac5..5f460b12c 100755 --- a/src/gui/feedmessageviewer.cpp +++ b/src/gui/feedmessageviewer.cpp @@ -317,6 +317,7 @@ void FeedMessageViewer::updateFeedButtonsAvailability() { form_main->m_ui->m_actionUpdateSelectedFeeds->setEnabled(!critical_action_running && feed_selected); form_main->m_ui->m_actionViewSelectedItemsNewspaperMode->setEnabled(feed_selected); form_main->m_ui->m_actionFetchFeedMetadata->setEnabled(feed_selected); + form_main->m_ui->m_actionExpandCollapseFeedCategory->setEnabled(feed_selected); form_main->m_ui->m_menuAddItem->setEnabled(!critical_action_running); } @@ -388,6 +389,8 @@ void FeedMessageViewer::createConnections() { SIGNAL(triggered()), m_feedsView, SLOT(markAllFeedsRead())); connect(form_main->m_ui->m_actionMarkSelectedFeedsAsRead, SIGNAL(triggered()), m_feedsView, SLOT(markSelectedFeedsRead())); + connect(form_main->m_ui->m_actionExpandCollapseFeedCategory, + SIGNAL(triggered()), m_feedsView, SLOT(expandCollapseCurrentItem())); connect(form_main->m_ui->m_actionFetchFeedMetadata, SIGNAL(triggered()), m_feedsView, SLOT(fetchMetadataForSelectedFeed())); connect(form_main->m_ui->m_actionMarkSelectedFeedsAsUnread, diff --git a/src/gui/feedsview.cpp b/src/gui/feedsview.cpp index 70d4022f7..89f634c06 100755 --- a/src/gui/feedsview.cpp +++ b/src/gui/feedsview.cpp @@ -143,6 +143,19 @@ void FeedsView::invalidateReadFeedsFilter(bool set_new_value, bool show_unread_o QTimer::singleShot(0, m_proxyModel, SLOT(invalidateFilter())); } +void FeedsView::expandCollapseCurrentItem() { + if (selectionModel()->selectedRows().size() == 1) { + QModelIndex index = selectionModel()->selectedRows().at(0); + + if (!index.child(0, 0).isValid() && index.parent().isValid()) { + setCurrentIndex(index.parent()); + index = index.parent(); + } + + isExpanded(index) ? collapse(index) : expand(index); + } +} + void FeedsView::updateAllFeeds() { emit feedsUpdateRequested(allFeeds()); } @@ -480,7 +493,6 @@ void FeedsView::selectNextItem() { if (index_next.isValid()) { setCurrentIndex(index_next); - selectionModel()->select(index_next, QItemSelectionModel::Select | QItemSelectionModel::Rows); setFocus(); } } @@ -498,7 +510,6 @@ void FeedsView::selectPreviousItem() { if (index_previous.isValid()) { setCurrentIndex(index_previous); - selectionModel()->select(index_previous, QItemSelectionModel::Select | QItemSelectionModel::Rows); setFocus(); } } @@ -651,7 +662,7 @@ void FeedsView::validateItemAfterDragDrop(const QModelIndex &source_index) { QModelIndex mapped = m_proxyModel->mapFromSource(source_index); if (mapped.isValid()) { - setExpanded(mapped, true); + expand(mapped); setCurrentIndex(mapped); } } diff --git a/src/gui/feedsview.h b/src/gui/feedsview.h index c295644fc..61c249175 100755 --- a/src/gui/feedsview.h +++ b/src/gui/feedsview.h @@ -69,6 +69,8 @@ class FeedsView : public QTreeView { public slots: void invalidateReadFeedsFilter(bool set_new_value = false, bool show_unread_only = false); + void expandCollapseCurrentItem(); + void fetchMetadataForSelectedFeed(); // Feed updating. void updateAllFeeds(); @@ -82,8 +84,6 @@ class FeedsView : public QTreeView { void markAllFeedsReadStatus(int read); void markAllFeedsRead(); - void fetchMetadataForSelectedFeed(); - // Newspaper accessors. void openSelectedFeedsInNewspaperMode();