summaryrefslogtreecommitdiffstats
path: root/framework/src/domain/maillistmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/domain/maillistmodel.cpp')
-rw-r--r--framework/src/domain/maillistmodel.cpp27
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
203void MailListModel::runQuery(const Sink::Query &query) 218void 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
210bool MailListModel::isThreaded() const 231bool MailListModel::isThreaded() const