<table><tr><td style="">sagara created this revision.<br />Restricted Application added a project: KDE PIM.<br />Restricted Application added a subscriber: KDE PIM.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D8091" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>This patch adds a new option, to hide feeds with zero unread count from the feed list. You can access the setting via either the View menubar item or via the General configuration panel, it defaults to being turned off. This is useful if you have many feeds, as it makes the feed list less crowded by hiding those with no new items.</p>

<p>subscriptionlistmodel:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">filter models are present in articlelistview, but controller only includes listmodel.h, so I put FilterUnreadProxyModel here</li>
<li class="remarkup-list-item">added FilterUnreadProxyModel, a QSortFilerProxyModel subclass to filter out feeds with zero unread count</li>
<li class="remarkup-list-item">uint nodeIdForIndex(const QModelIndex&) is now a file-specific method</li>
<li class="remarkup-list-item">changed FolderExpansionHandler::m_model to be of type QAbstractItemModel* (since it no longer needs SubscriptionListModel::nodeIdForIndex)</li>
</ul>

<p>selectioncontroller:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">hooked filter's selectionmodel's selectionChanged signal in SelectionController::setFeedSelector to the FilterUnreadProxyModel instance</li>
<li class="remarkup-list-item">m_subscriptionModel is now a FilterUnreadProxyModel*</li>
<li class="remarkup-list-item">added SelectionController::settingsChanged slot</li>
<li class="remarkup-list-item">changed SelectionController::setFeedList to set the proxy's source</li>
<li class="remarkup-list-item">model</li>
</ul>

<p>actionmanagerimpl:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">added slotSettingsChanged slot for receiving MainWidget::signalSettingsChange signal and updating action state</li>
<li class="remarkup-list-item">added a KAction to ActionManagerImpl:initSubscriptionListView, connected to SubscriptionListView::slotSetHideReadFeeds</li>
</ul>

<p>subscriptionlistview:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">added a public slot to connect the added action to (slotSetHideReadFeeds)</li>
</ul>

<p>mainwidget:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">hooked m_part's signalSettingsChanged() to m_selectionController::settingsChanged, m_actionManager::slotSettingsChanged</li>
</ul>

<p>interfaces/akregator.kcfg:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">added View/HideReadFeeds entry</li>
</ul>

<p>akregator_part.rc:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">add a separator and an action to <Menu name="view"> (name=feed_hide_read)</li>
</ul>

<p>settings_general.ui:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">add kcfg_HideReadFeeds field under General->Global</li>
</ul></div></div><br /><div><strong>REPOSITORY</strong><div><div>R201 Akregator</div></div></div><br /><div><strong>BRANCH</strong><div><div>read-feeds-hide-patch</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D8091" rel="noreferrer">https://phabricator.kde.org/D8091</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>configuration/ui/settings_general.ui<br />
interfaces/akregator.kcfg<br />
src/abstractselectioncontroller.h<br />
src/actions/actionmanagerimpl.cpp<br />
src/actions/actionmanagerimpl.h<br />
src/data/akregator_part.rc<br />
src/mainwidget.cpp<br />
src/selectioncontroller.cpp<br />
src/selectioncontroller.h<br />
src/subscription/subscriptionlistmodel.cpp<br />
src/subscription/subscriptionlistmodel.h<br />
src/subscription/subscriptionlistview.cpp<br />
src/subscription/subscriptionlistview.h</div></div></div><br /><div><strong>To: </strong>sagara<br /><strong>Cc: </strong>KDE PIM, dvasin, winterz, vkrause, mlaurent, knauss, dvratil<br /></div>