Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.1:kernel-2.6.32
kdepim4
r891012.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File r891012.diff of Package kdepim4
Subject: akregator: improve prev/next unread article behavior when a filter is set From: wstephenson@suse.de Bug: kde#138935 Patch-upstream: 891012 --- akregator/src/articlelistview.cpp (revision 891011) +++ akregator/src/articlelistview.cpp (revision 891012) @@ -437,12 +437,15 @@ void ArticleListView::slotNextArticle() selectIndex( newIdx ); } -void ArticleListView::slotNextUnreadArticle() +bool ArticleListView::selectNextUnreadArticle() { if (!model()) - return; + return false; const int rowCount = model()->rowCount(); + if ( rowCount == 0 ) + return false; + const int startRow = qMin( rowCount - 1, ( currentIndex().isValid() ? currentIndex().row() + 1 : 0 ) ); int i = startRow; @@ -461,6 +464,7 @@ void ArticleListView::slotNextUnreadArti { selectIndex( model()->index( i, 0 ) ); } + return foundUnread; } void ArticleListView::selectIndex( const QModelIndex& idx ) @@ -476,12 +480,15 @@ void ArticleListView::selectIndex( const } } -void ArticleListView::slotPreviousUnreadArticle() +bool ArticleListView::selectPreviousUnreadArticle() { if ( !model() ) - return; + return false; const int rowCount = model()->rowCount(); + if ( rowCount == 0 ) + return false; + const int startRow = qMax( 0, ( currentIndex().isValid() ? currentIndex().row() : rowCount ) - 1 ); int i = startRow; @@ -500,6 +507,7 @@ void ArticleListView::slotPreviousUnread { selectIndex( model()->index( i, 0 ) ); } + return foundUnread; } --- akregator/src/articlelistview.h (revision 891011) +++ akregator/src/articlelistview.h (revision 891012) @@ -121,6 +121,10 @@ public: void saveHeaderSettings(); + bool selectPreviousUnreadArticle(); + + bool selectNextUnreadArticle(); + protected: void mousePressEvent( QMouseEvent *ev ); @@ -135,9 +139,6 @@ public Q_SLOTS: void slotNextArticle(); - void slotPreviousUnreadArticle(); - - void slotNextUnreadArticle(); private: void loadHeaderSettings(); --- akregator/src/mainwidget.cpp (revision 891011) +++ akregator/src/mainwidget.cpp (revision 891012) @@ -756,10 +756,8 @@ void Akregator::MainWidget::slotNextUnre m_feedListView->slotNextUnreadFeed(); return; } - TreeNode* sel = m_selectionController->selectedSubscription(); - if (sel && sel->unread() > 0) - m_articleListView->slotNextUnreadArticle(); - else + + if (!m_articleListView->selectNextUnreadArticle()) m_feedListView->slotNextUnreadFeed(); } @@ -770,10 +768,7 @@ void Akregator::MainWidget::slotPrevUnre m_feedListView->slotPrevUnreadFeed(); return; } - TreeNode* sel = m_selectionController->selectedSubscription(); - if (sel && sel->unread() > 0) - m_articleListView->slotPreviousUnreadArticle(); - else + if (!m_articleListView->selectPreviousUnreadArticle()) m_feedListView->slotPrevUnreadFeed(); } Index: akregator/src/articlelistview.cpp =================================================================== Index: akregator/src/articlelistview.h =================================================================== Index: akregator/src/mainwidget.cpp ===================================================================
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor