summaryrefslogtreecommitdiffstats
path: root/framework/domain/mailcontroller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'framework/domain/mailcontroller.cpp')
-rw-r--r--framework/domain/mailcontroller.cpp66
1 files changed, 66 insertions, 0 deletions
diff --git a/framework/domain/mailcontroller.cpp b/framework/domain/mailcontroller.cpp
new file mode 100644
index 00000000..4c5ae5c6
--- /dev/null
+++ b/framework/domain/mailcontroller.cpp
@@ -0,0 +1,66 @@
1/*
2 Copyright (c) 2016 Christian Mollekopf <mollekopf@kolabsys.com>
3
4 This library is free software; you can redistribute it and/or modify it
5 under the terms of the GNU Library General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or (at your
7 option) any later version.
8
9 This library is distributed in the hope that it will be useful, but WITHOUT
10 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
12 License for more details.
13
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to the
16 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17 02110-1301, USA.
18*/
19#include "mailcontroller.h"
20
21#include <sink/store.h>
22#include <sink/log.h>
23
24SINK_DEBUG_AREA("mailcontroller");
25
26MailController::MailController()
27 : Kube::Controller(),
28 action_markAsRead{new Kube::ControllerAction},
29 action_moveToTrash{new Kube::ControllerAction},
30 action_remove{new Kube::ControllerAction}
31{
32 QObject::connect(markAsReadAction(), &Kube::ControllerAction::triggered, this, &MailController::markAsRead);
33 QObject::connect(moveToTrashAction(), &Kube::ControllerAction::triggered, this, &MailController::moveToTrash);
34 QObject::connect(removeAction(), &Kube::ControllerAction::triggered, this, &MailController::remove);
35}
36
37void MailController::markAsRead()
38{
39 using namespace Sink;
40 using namespace Sink::ApplicationDomain;
41 auto mail = getMail();
42 mail->setUnread(false);
43 SinkLog() << "Mark as read " << mail->identifier();
44 run(Store::modify(*mail));
45}
46
47void MailController::moveToTrash()
48{
49 using namespace Sink;
50 using namespace Sink::ApplicationDomain;
51 auto mail = getMail();
52 mail->setTrash(true);
53 SinkLog() << "Move to trash " << mail->identifier();
54 run(Store::modify(*mail));
55}
56
57void MailController::remove()
58{
59 using namespace Sink;
60 using namespace Sink::ApplicationDomain;
61 auto mail = getMail();
62 mail->setTrash(true);
63 SinkLog() << "Remove " << mail->identifier();
64 run(Store::remove(*mail));
65}
66