This commit is contained in:
Martin Rotter 2014-11-04 20:09:16 +01:00
parent 7c7e6b4e76
commit d2d23bda7f
4 changed files with 26 additions and 6 deletions

View File

@ -9,6 +9,7 @@ Fixed:
Added: Added:
<ul> <ul>
<li>Sort order/column in message list is now persistent (bug #97).</li>
<li>Inline searching in feed/message list is now case insensitive and more polished (bug report #84).</li> <li>Inline searching in feed/message list is now case insensitive and more polished (bug report #84).</li>
<li>Items in feed list (categories and feeds) now can be re-arranged via drag-drop functionality (issue report #91).</li> <li>Items in feed list (categories and feeds) now can be re-arranged via drag-drop functionality (issue report #91).</li>
<li>Tray icon now displays blue number of unread messages if any of those messages is newly downloaded from online feed (enhancement #87).</li> <li>Tray icon now displays blue number of unread messages if any of those messages is newly downloaded from online feed (enhancement #87).</li>

View File

@ -49,6 +49,12 @@ MessagesView::~MessagesView() {
qDebug("Destroying MessagesView instance."); qDebug("Destroying MessagesView instance.");
} }
void MessagesView::setSortingEnabled(bool enable) {
disconnect(header(), SIGNAL(sortIndicatorChanged(int,Qt::SortOrder)), this, SLOT(saveSortState(int,Qt::SortOrder)));
QTreeView::setSortingEnabled(enable);
connect(header(), SIGNAL(sortIndicatorChanged(int,Qt::SortOrder)), this, SLOT(saveSortState(int,Qt::SortOrder)));
}
void MessagesView::createConnections() { void MessagesView::createConnections() {
// Make sure that source message is opened // Make sure that source message is opened
// in new tab on double click. // in new tab on double click.
@ -56,6 +62,7 @@ void MessagesView::createConnections() {
// Adjust columns when layout gets changed. // Adjust columns when layout gets changed.
connect(header(), SIGNAL(geometriesChanged()), this, SLOT(adjustColumns())); connect(header(), SIGNAL(geometriesChanged()), this, SLOT(adjustColumns()));
connect(header(), SIGNAL(sortIndicatorChanged(int,Qt::SortOrder)), this, SLOT(saveSortState(int,Qt::SortOrder)));
} }
void MessagesView::keyboardSearch(const QString &search) { void MessagesView::keyboardSearch(const QString &search) {
@ -231,7 +238,13 @@ void MessagesView::loadFeeds(const QList<int> &feed_ids) {
// Make sure that initial sorting is that unread messages are visible // Make sure that initial sorting is that unread messages are visible
// first. // first.
sortByColumn(MSG_DB_DCREATED_INDEX, Qt::DescendingOrder); // TODO: pokračovat, při stortovani uložit column a order
int col = qApp->settings()->value(APP_CFG_GUI, "default_sort_column_messages", MSG_DB_DCREATED_INDEX).toInt();
Qt::SortOrder ord = static_cast<Qt::SortOrder>(qApp->settings()->value(APP_CFG_GUI,
"default_sort_order_messages", Qt::DescendingOrder).toInt());
sortByColumn(col,
ord);
// Messages are loaded, make sure that previously // Messages are loaded, make sure that previously
// active message is not shown in browser. // active message is not shown in browser.
@ -503,3 +516,8 @@ void MessagesView::adjustColumns() {
qDebug("Adjusting column resize modes for MessagesView."); qDebug("Adjusting column resize modes for MessagesView.");
} }
} }
void MessagesView::saveSortState(int column, Qt::SortOrder order) {
qApp->settings()->setValue(APP_CFG_GUI, "default_sort_column_messages", column);
qApp->settings()->setValue(APP_CFG_GUI, "default_sort_order_messages", order);
}

View File

@ -34,10 +34,7 @@ class MessagesView : public QTreeView {
explicit MessagesView(QWidget *parent = 0); explicit MessagesView(QWidget *parent = 0);
virtual ~MessagesView(); virtual ~MessagesView();
inline void setSortingEnabled(bool enable) { void setSortingEnabled(bool enable);
QTreeView::setSortingEnabled(enable);
header()->setSortIndicatorShown(false);
}
// Model accessors. // Model accessors.
inline MessagesProxyModel *model() { inline MessagesProxyModel *model() {
@ -83,13 +80,15 @@ class MessagesView : public QTreeView {
void searchMessages(const QString &pattern); void searchMessages(const QString &pattern);
void filterMessages(MessagesModel::MessageFilter filter); void filterMessages(MessagesModel::MessageFilter filter);
protected slots: private slots:
// Marks given indexes as selected. // Marks given indexes as selected.
void reselectIndexes(const QModelIndexList &indexes); void reselectIndexes(const QModelIndexList &indexes);
// Changes resize mode for all columns. // Changes resize mode for all columns.
void adjustColumns(); void adjustColumns();
void saveSortState(int column, Qt::SortOrder order);
protected: protected:
// Initializes context menu. // Initializes context menu.
void initializeContextMenu(); void initializeContextMenu();

View File

@ -44,5 +44,7 @@ bool WebPage::acceptNavigationRequest(QWebFrame *frame,
emit linkClicked(request.url()); emit linkClicked(request.url());
} }
qDebug("Accepting request '%s'.", qPrintable(request.url().toString()));
return QWebPage::acceptNavigationRequest(frame, request, type); return QWebPage::acceptNavigationRequest(frame, request, type);
} }