diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2018-02-12 21:34:40 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2018-02-12 22:35:31 +0100 |
commit | 0365646737a1894ca6de94e8a9ad9dd6f28e0493 (patch) | |
tree | a51b0155275b835a56991f16d48021b798fd4d19 /framework/src | |
parent | 1026c329afed70f5ab3b8db32756ea926049dbe9 (diff) | |
download | kube-0365646737a1894ca6de94e8a9ad9dd6f28e0493.tar.gz kube-0365646737a1894ca6de94e8a9ad9dd6f28e0493.zip |
A basic but working searchview
Diffstat (limited to 'framework/src')
-rw-r--r-- | framework/src/domain/maillistmodel.cpp | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/framework/src/domain/maillistmodel.cpp b/framework/src/domain/maillistmodel.cpp index e3ef04d6..dcebedbc 100644 --- a/framework/src/domain/maillistmodel.cpp +++ b/framework/src/domain/maillistmodel.cpp | |||
@@ -48,6 +48,21 @@ void MailListModel::setFilter(const QString &filter) | |||
48 | f = "\"" + filter + "\""; | 48 | f = "\"" + filter + "\""; |
49 | } | 49 | } |
50 | f.append('*'); | 50 | f.append('*'); |
51 | if (mCurrentQueryItem.isEmpty()) { | ||
52 | using namespace Sink::ApplicationDomain; | ||
53 | query.request<Mail::Subject>(); | ||
54 | query.request<Mail::Sender>(); | ||
55 | query.request<Mail::To>(); | ||
56 | query.request<Mail::Cc>(); | ||
57 | query.request<Mail::Bcc>(); | ||
58 | query.request<Mail::Date>(); | ||
59 | query.request<Mail::Unread>(); | ||
60 | query.request<Mail::Important>(); | ||
61 | query.request<Mail::Draft>(); | ||
62 | query.request<Mail::Sent>(); | ||
63 | query.request<Mail::Trash>(); | ||
64 | query.request<Mail::Folder>(); | ||
65 | } | ||
51 | query.filter<Sink::ApplicationDomain::Mail::Subject>(Sink::QueryBase::Comparator(f, Sink::QueryBase::Comparator::Fulltext)); | 66 | query.filter<Sink::ApplicationDomain::Mail::Subject>(Sink::QueryBase::Comparator(f, Sink::QueryBase::Comparator::Fulltext)); |
52 | } | 67 | } |
53 | runQuery(query); | 68 | runQuery(query); |
@@ -202,9 +217,15 @@ bool MailListModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourcePar | |||
202 | 217 | ||
203 | void MailListModel::runQuery(const Sink::Query &query) | 218 | void MailListModel::runQuery(const Sink::Query &query) |
204 | { | 219 | { |
205 | mQuery = query; | 220 | if (query.getBaseFilters().isEmpty() && query.ids().isEmpty()) { |
206 | m_model = Sink::Store::loadModel<Sink::ApplicationDomain::Mail>(query); | 221 | mQuery = {}; |
207 | setSourceModel(m_model.data()); | 222 | m_model.clear(); |
223 | setSourceModel(nullptr); | ||
224 | } else { | ||
225 | mQuery = query; | ||
226 | m_model = Sink::Store::loadModel<Sink::ApplicationDomain::Mail>(query); | ||
227 | setSourceModel(m_model.data()); | ||
228 | } | ||
208 | } | 229 | } |
209 | 230 | ||
210 | bool MailListModel::isThreaded() const | 231 | bool MailListModel::isThreaded() const |