diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-02-09 12:31:02 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-02-09 12:31:02 +0100 |
commit | a6c557b0d9873014cda4e3bcfedd82b50416ea23 (patch) | |
tree | 3922b24de26adaad7d638a3cca811e3844508512 | |
parent | 207be0e03b18ca2af4949f44b6f8bcadd6220695 (diff) | |
download | kube-a6c557b0d9873014cda4e3bcfedd82b50416ea23.tar.gz kube-a6c557b0d9873014cda4e3bcfedd82b50416ea23.zip |
Sort mails by date
-rw-r--r-- | framework/mail/maillistmodel.cpp | 14 | ||||
-rw-r--r-- | framework/mail/maillistmodel.h | 8 |
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 | ||
32 | MailListModel::MailListModel(QObject *parent) | 32 | MailListModel::MailListModel(QObject *parent) |
33 | : QIdentityProxyModel() | 33 | : QSortFilterProxyModel() |
34 | { | 34 | { |
35 | 35 | setDynamicSortFilter(true); | |
36 | sort(0, Qt::DescendingOrder); | ||
36 | } | 37 | } |
37 | 38 | ||
38 | MailListModel::~MailListModel() | 39 | MailListModel::~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 | |||
128 | bool 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 | ||
127 | void MailListModel::runQuery(const Sink::Query &query) | 135 | void 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 | ||
29 | class MailListModel : public QIdentityProxyModel | 29 | class 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, |