OMG -> Better now.

This commit is contained in:
Martin Rotter 2014-04-09 08:42:26 +02:00
parent 72ace2fe43
commit e86d98fb37
6 changed files with 39 additions and 7 deletions

View File

@ -79,6 +79,12 @@ void MessagesModel::loadMessages(const QList<int> feed_ids) {
qDebug("Loading messages from feeds: %s.", qPrintable(assembled_ids));
}
void MessagesModel::filterMessages(MessagesModel::DisplayFilter filter) {
m_filter = filter;
emit layoutAboutToBeChanged();
emit layoutChanged();
}
QStringList MessagesModel::textualFeeds() const {
QStringList stringy_ids;
stringy_ids.reserve(m_currentFeeds.size());
@ -171,6 +177,25 @@ QVariant MessagesModel::data(const QModelIndex &idx, int role) const {
m_normalFont :
m_boldFont;
case Qt::ForegroundRole:
switch (m_filter) {
case DisplayImportant:
return QSqlTableModel::data(index(idx.row(),
MSG_DB_IMPORTANT_INDEX)).toInt() == 1 ?
QColor(Qt::blue) :
QVariant();
case DisplayUnread:
return QSqlTableModel::data(index(idx.row(),
MSG_DB_READ_INDEX)).toInt() == 0 ?
QColor(Qt::blue) :
QVariant();
case DisplayAll:
default:
return QVariant();
}
case Qt::DecorationRole: {
int index_column = idx.column();

View File

@ -104,6 +104,8 @@ class MessagesModel : public QSqlTableModel {
// Loads messages of given feeds.
void loadMessages(const QList<int> feed_ids);
void filterMessages(DisplayFilter filter);
signals:
// Emitted if some persistent change is made which affects
// count of "unread/all" messages.

View File

@ -197,8 +197,8 @@ void FeedMessageViewer::createConnections() {
// Filtering & searching.
connect(m_toolBarMessages, SIGNAL(messageSearchPatternChanged(QString)),
m_messagesView, SLOT(searchMessages(QString)));
/*connect(m_toolBarMessages, SIGNAL(messageFilterChanged(MessagesModel::DisplayFilter)),
m_messagesView, SLOT(filterMessages(MessagesModel::DisplayFilter)));*/
connect(m_toolBarMessages, SIGNAL(messageFilterChanged(MessagesModel::DisplayFilter)),
m_messagesView, SLOT(filterMessages(MessagesModel::DisplayFilter)));
// Message changers.
connect(m_messagesView, SIGNAL(currentMessagesRemoved()),

View File

@ -25,13 +25,13 @@ MessagesToolBar::MessagesToolBar(const QString &title, QWidget *parent)
m_actionSearchMessages->setProperty("type", SEACRH_MESSAGES_ACTION_NAME);
m_actionSearchMessages->setProperty("name", tr("Message search box"));
m_menuFilterMessages = new QMenu(tr("Menu for filtering messages"), this);
m_menuFilterMessages = new QMenu(tr("Menu for highlighting messages"), this);
m_menuFilterMessages->addAction(IconFactory::instance()->fromTheme("mail-mark-read"),
tr("Display all messages"))->setData(QVariant::fromValue(MessagesModel::DisplayAll));
tr("No extra highlighting"))->setData(QVariant::fromValue(MessagesModel::DisplayAll));
m_menuFilterMessages->addAction(IconFactory::instance()->fromTheme("mail-mark-unread"),
tr("Display unread messages"))->setData(QVariant::fromValue(MessagesModel::DisplayUnread));
tr("Highlight unread messages"))->setData(QVariant::fromValue(MessagesModel::DisplayUnread));
m_menuFilterMessages->addAction(IconFactory::instance()->fromTheme("mail-mark-favorite"),
tr("Display important messages"))->setData(QVariant::fromValue(MessagesModel::DisplayImportant));
tr("Highlight important messages"))->setData(QVariant::fromValue(MessagesModel::DisplayImportant));
m_btnFilterMessages = new QToolButton(this);
m_btnFilterMessages->setToolTip(tr("Display all messages"));
@ -42,7 +42,7 @@ MessagesToolBar::MessagesToolBar(const QString &title, QWidget *parent)
m_actionFilterMessages = new QWidgetAction(this);
m_actionFilterMessages->setDefaultWidget(m_btnFilterMessages);
m_actionFilterMessages->setProperty("type", FILTER_ACTION_NAME);
m_actionFilterMessages->setProperty("name", tr("Message filter"));
m_actionFilterMessages->setProperty("name", tr("Message highlighter"));
// Update right margin of filter textbox.
QMargins margins = contentsMargins();

View File

@ -411,6 +411,10 @@ void MessagesView::searchMessages(const QString &pattern) {
}
}
void MessagesView::filterMessages(MessagesModel::DisplayFilter filter) {
m_sourceModel->filterMessages(filter);
}
void MessagesView::adjustColumns() {
if (header()->count() > 0 && !m_columnsAdjusted) {
m_columnsAdjusted = true;

View File

@ -78,6 +78,7 @@ class MessagesView : public QTreeView {
// Searchs the visible message according to given pattern.
void searchMessages(const QString &pattern);
void filterMessages(MessagesModel::DisplayFilter filter);
protected slots:
// Marks given indexes as selected.