diff --git a/src/gui/feedsview.cpp b/src/gui/feedsview.cpp index 87efcd56a..682c29ec7 100755 --- a/src/gui/feedsview.cpp +++ b/src/gui/feedsview.cpp @@ -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(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); diff --git a/src/gui/feedsview.h b/src/gui/feedsview.h index cfa377873..c5a5f153e 100644 --- a/src/gui/feedsview.h +++ b/src/gui/feedsview.h @@ -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: diff --git a/src/miscellaneous/settings.cpp b/src/miscellaneous/settings.cpp index 7245157a6..d380ca299 100755 --- a/src/miscellaneous/settings.cpp +++ b/src/miscellaneous/settings.cpp @@ -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; diff --git a/src/miscellaneous/settings.h b/src/miscellaneous/settings.h index 7818f4609..63b590fe5 100755 --- a/src/miscellaneous/settings.h +++ b/src/miscellaneous/settings.h @@ -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;