summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-02-09 12:31:02 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-02-09 12:31:02 +0100
commita6c557b0d9873014cda4e3bcfedd82b50416ea23 (patch)
tree3922b24de26adaad7d638a3cca811e3844508512
parent207be0e03b18ca2af4949f44b6f8bcadd6220695 (diff)
downloadkube-a6c557b0d9873014cda4e3bcfedd82b50416ea23.tar.gz
kube-a6c557b0d9873014cda4e3bcfedd82b50416ea23.zip
Sort mails by date
-rw-r--r--framework/mail/maillistmodel.cpp14
-rw-r--r--framework/mail/maillistmodel.h8
2 files changed, 16 insertions, 6 deletions
diff --git a/framework/mail/maillistmodel.cpp b/framework/mail/maillistmodel.cpp
index 3ff8efc4..9a55e265 100644
--- a/framework/mail/maillistmodel.cpp
+++ b/framework/mail/maillistmodel.cpp
@@ -30,9 +30,10 @@
30 30
31 31
32MailListModel::MailListModel(QObject *parent) 32MailListModel::MailListModel(QObject *parent)
33 : QIdentityProxyModel() 33 : QSortFilterProxyModel()
34{ 34{
35 35 setDynamicSortFilter(true);
36 sort(0, Qt::DescendingOrder);
36} 37}
37 38
38MailListModel::~MailListModel() 39MailListModel::~MailListModel()
@@ -121,7 +122,14 @@ QVariant MailListModel::data(const QModelIndex &idx, int role) const
121 return "Failed to read mail."; 122 return "Failed to read mail.";
122 } 123 }
123 } 124 }
124 return QIdentityProxyModel::data(idx, role); 125 return QSortFilterProxyModel::data(idx, role);
126}
127
128bool MailListModel::lessThan(const QModelIndex &left, const QModelIndex &right) const
129{
130 const QVariant leftData = left.sibling(left.row(), 3).data(Qt::DisplayRole);
131 const QVariant rightData = right.sibling(right.row(), 3).data(Qt::DisplayRole);
132 return leftData.toDateTime() < rightData.toDateTime();
125} 133}
126 134
127void MailListModel::runQuery(const Sink::Query &query) 135void MailListModel::runQuery(const Sink::Query &query)
diff --git a/framework/mail/maillistmodel.h b/framework/mail/maillistmodel.h
index 6593a59c..f15c3e77 100644
--- a/framework/mail/maillistmodel.h
+++ b/framework/mail/maillistmodel.h
@@ -22,11 +22,11 @@
22 22
23#include <sinkcommon/clientapi.h> 23#include <sinkcommon/clientapi.h>
24 24
25#include <QIdentityProxyModel> 25#include <QSortFilterProxyModel>
26#include <QSharedPointer> 26#include <QSharedPointer>
27#include <QStringList> 27#include <QStringList>
28 28
29class MailListModel : public QIdentityProxyModel 29class MailListModel : public QSortFilterProxyModel
30{ 30{
31 Q_OBJECT 31 Q_OBJECT
32 Q_PROPERTY (QVariant parentFolder READ parentFolder WRITE setParentFolder) 32 Q_PROPERTY (QVariant parentFolder READ parentFolder WRITE setParentFolder)
@@ -36,7 +36,9 @@ public:
36 MailListModel(QObject *parent = Q_NULLPTR); 36 MailListModel(QObject *parent = Q_NULLPTR);
37 ~MailListModel(); 37 ~MailListModel();
38 38
39 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; 39 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
40
41 bool lessThan(const QModelIndex &left, const QModelIndex &right) const Q_DECL_OVERRIDE;
40 42
41 enum Roles { 43 enum Roles {
42 Subject = Qt::UserRole + 1, 44 Subject = Qt::UserRole + 1,