Sort order/column in feed list is now persistent.

This commit is contained in:
Martin Rotter 2014-11-12 18:07:27 +01:00
parent 2404a9ed08
commit 99ef00a98b
4 changed files with 21 additions and 3 deletions

View File

@ -56,6 +56,7 @@ FeedsView::FeedsView(QWidget *parent)
// Connections.
connect(m_sourceModel, SIGNAL(requireItemValidationAfterDragDrop(QModelIndex)), this, SLOT(validateItemAfterDragDrop(QModelIndex)));
connect(m_autoUpdateTimer, SIGNAL(timeout()), this, SLOT(executeNextAutoUpdate()));
connect(header(), SIGNAL(sortIndicatorChanged(int,Qt::SortOrder)), this, SLOT(saveSortState(int,Qt::SortOrder)));
setModel(m_proxyModel);
setupAppearance();
@ -616,9 +617,8 @@ void FeedsView::setupAppearance() {
header()->setStretchLastSection(false);
header()->setSortIndicatorShown(false);
// Sort in ascending order, that is categories are
// "bigger" than feeds.
sortByColumn(FDS_MODEL_TITLE_INDEX, Qt::AscendingOrder);
sortByColumn(qApp->settings()->value(GROUP(GUI), SETTING(GUI::DefaultSortColumnFeeds)).toInt(),
static_cast<Qt::SortOrder>(qApp->settings()->value(GROUP(GUI), SETTING(GUI::DefaultSortOrderFeeds)).toInt()));
}
void FeedsView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) {
@ -689,6 +689,11 @@ void FeedsView::contextMenuEvent(QContextMenuEvent *event) {
}
}
void FeedsView::saveSortState(int column, Qt::SortOrder order) {
qApp->settings()->setValue(GROUP(GUI), GUI::DefaultSortColumnFeeds, column);
qApp->settings()->setValue(GROUP(GUI), GUI::DefaultSortOrderFeeds, order);
}
void FeedsView::validateItemAfterDragDrop(const QModelIndex &source_index) {
QModelIndex mapped = m_proxyModel->mapFromSource(source_index);

View File

@ -162,6 +162,7 @@ class FeedsView : public QTreeView {
void contextMenuEvent(QContextMenuEvent *event);
private slots:
void saveSortState(int column, Qt::SortOrder order);
void validateItemAfterDragDrop(const QModelIndex &source_index);
signals:

View File

@ -123,6 +123,12 @@ DVALUE(int) GUI::DefaultSortColumnMessagesDef = MSG_DB_DCREATED_INDEX;
DKEY GUI::DefaultSortOrderMessages = "default_sort_order_messages";
DVALUE(Qt::SortOrder) GUI::DefaultSortOrderMessagesDef = Qt::DescendingOrder;
DKEY GUI::DefaultSortColumnFeeds = "default_sort_column_feeds";
DVALUE(int) GUI::DefaultSortColumnFeedsDef = FDS_MODEL_TITLE_INDEX;
DKEY GUI::DefaultSortOrderFeeds = "default_sort_order_feeds";
DVALUE(Qt::SortOrder) GUI::DefaultSortOrderFeedsDef = Qt::AscendingOrder;
DKEY GUI::IconTheme = "icon_theme";
DVALUE(char*) GUI::IconThemeDef = APP_THEME_DEFAULT;

View File

@ -134,6 +134,12 @@ namespace GUI {
KEY DefaultSortOrderMessages;
VALUE(Qt::SortOrder) DefaultSortOrderMessagesDef;
KEY DefaultSortColumnFeeds;
VALUE(int) DefaultSortColumnFeedsDef;
KEY DefaultSortOrderFeeds;
VALUE(Qt::SortOrder) DefaultSortOrderFeedsDef;
KEY IconTheme;
VALUE(char*) IconThemeDef;