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:
<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>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>

View File

@ -49,6 +49,12 @@ MessagesView::~MessagesView() {
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() {
// Make sure that source message is opened
// in new tab on double click.
@ -56,6 +62,7 @@ void MessagesView::createConnections() {
// Adjust columns when layout gets changed.
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) {
@ -231,7 +238,13 @@ void MessagesView::loadFeeds(const QList<int> &feed_ids) {
// Make sure that initial sorting is that unread messages are visible
// 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
// active message is not shown in browser.
@ -503,3 +516,8 @@ void MessagesView::adjustColumns() {
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);
virtual ~MessagesView();
inline void setSortingEnabled(bool enable) {
QTreeView::setSortingEnabled(enable);
header()->setSortIndicatorShown(false);
}
void setSortingEnabled(bool enable);
// Model accessors.
inline MessagesProxyModel *model() {
@ -83,13 +80,15 @@ class MessagesView : public QTreeView {
void searchMessages(const QString &pattern);
void filterMessages(MessagesModel::MessageFilter filter);
protected slots:
private slots:
// Marks given indexes as selected.
void reselectIndexes(const QModelIndexList &indexes);
// Changes resize mode for all columns.
void adjustColumns();
void saveSortState(int column, Qt::SortOrder order);
protected:
// Initializes context menu.
void initializeContextMenu();

View File

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