summaryrefslogtreecommitdiffstats
path: root/framework
diff options
context:
space:
mode:
Diffstat (limited to 'framework')
-rw-r--r--framework/mail/CMakeLists.txt3
-rw-r--r--framework/mail/mailplugin.cpp4
-rw-r--r--framework/mail/singlemailcontroller.cpp71
-rw-r--r--framework/mail/singlemailcontroller.h44
4 files changed, 121 insertions, 1 deletions
diff --git a/framework/mail/CMakeLists.txt b/framework/mail/CMakeLists.txt
index 0327d457..c57ac1fe 100644
--- a/framework/mail/CMakeLists.txt
+++ b/framework/mail/CMakeLists.txt
@@ -2,12 +2,15 @@ set(mailplugin_SRCS
2 mailplugin.cpp 2 mailplugin.cpp
3 maillistcontroller.cpp 3 maillistcontroller.cpp
4 maillistmodel.cpp 4 maillistmodel.cpp
5 singlemailcontroller.cpp
5) 6)
6 7
7add_library(mailplugin SHARED ${mailplugin_SRCS}) 8add_library(mailplugin SHARED ${mailplugin_SRCS})
8 9
9qt5_use_modules(mailplugin Core Quick Qml) 10qt5_use_modules(mailplugin Core Quick Qml)
11
10target_link_libraries(mailplugin /work/install/lib64/libakonadi2common.so) 12target_link_libraries(mailplugin /work/install/lib64/libakonadi2common.so)
13#target_link_libraries(mailplugin /home/mike/projects/_install/lib/x86_64-linux-gnu/libakonadi2common.so)
11 14
12install(TARGETS mailplugin DESTINATION ${QML_INSTALL_DIR}/org/kde/akonadi2/mail) 15install(TARGETS mailplugin DESTINATION ${QML_INSTALL_DIR}/org/kde/akonadi2/mail)
13install(FILES qmldir DESTINATION ${QML_INSTALL_DIR}/org/kde/akonadi2/mail) \ No newline at end of file 16install(FILES qmldir DESTINATION ${QML_INSTALL_DIR}/org/kde/akonadi2/mail) \ No newline at end of file
diff --git a/framework/mail/mailplugin.cpp b/framework/mail/mailplugin.cpp
index ea8a5ec9..36c75e7f 100644
--- a/framework/mail/mailplugin.cpp
+++ b/framework/mail/mailplugin.cpp
@@ -2,8 +2,9 @@
2 2
3#include "maillistcontroller.h" 3#include "maillistcontroller.h"
4#include "maillistmodel.h" 4#include "maillistmodel.h"
5#include <QAbstractItemModel> 5#include "singlemailcontroller.h"
6 6
7#include <QAbstractItemModel>
7#include <QtQml> 8#include <QtQml>
8 9
9void MailPlugin::registerTypes (const char *uri) 10void MailPlugin::registerTypes (const char *uri)
@@ -11,4 +12,5 @@ void MailPlugin::registerTypes (const char *uri)
11 Q_ASSERT(uri == QLatin1String("org.kde.akonadi2.mail")); 12 Q_ASSERT(uri == QLatin1String("org.kde.akonadi2.mail"));
12 qmlRegisterType<QAbstractItemModel>(); 13 qmlRegisterType<QAbstractItemModel>();
13 qmlRegisterType<MailListController>(uri, 1, 0, "MailList"); 14 qmlRegisterType<MailListController>(uri, 1, 0, "MailList");
15 qmlRegisterType<SingleMailController>(uri, 1, 0, "SingleMail");
14} 16}
diff --git a/framework/mail/singlemailcontroller.cpp b/framework/mail/singlemailcontroller.cpp
new file mode 100644
index 00000000..68105839
--- /dev/null
+++ b/framework/mail/singlemailcontroller.cpp
@@ -0,0 +1,71 @@
1#include "singlemailcontroller.h"
2
3#include <QDebug>
4
5SingleMailController::SingleMailController(QObject *parent): QObject(parent), m_isImportant(false), m_isUnread(true)
6{
7
8}
9
10QString SingleMailController::akonadiId() const
11{
12 return m_akonadiId;
13}
14
15void SingleMailController::setAkonadiId(const QString &id)
16{
17 if(m_akonadiId != id) {
18 m_akonadiId = id;
19
20 loadMessage(m_akonadiId);
21
22 emit akonadiIdChanged();
23 }
24}
25
26QString SingleMailController::message() const
27{
28 return m_message;
29}
30
31bool SingleMailController::isImportant() const
32{
33 return m_isImportant;
34}
35
36bool SingleMailController::isUnread() const
37{
38 return m_isUnread;
39}
40
41void SingleMailController::deleteMail()
42{
43 qDebug() << "UserAction: deleteMail: " << m_akonadiId;
44}
45
46void SingleMailController::markMailImportant(bool important)
47{
48 qDebug() << "UserAction: markMailImportant: " << m_akonadiId;
49
50 if (m_isImportant != important) {
51 m_isImportant = important;
52 emit isImportantChanged();
53 }
54}
55
56void SingleMailController::markMailUnread(bool unread)
57{
58 qDebug() << "UserAction: markMailUnread: " << m_akonadiId;
59
60 if (m_isUnread != unread) {
61 m_isUnread = unread;
62 emit isUnreadChanged();
63 }
64}
65
66void SingleMailController::loadMessage(const QString &id)
67{
68 //load message from akoandi
69 m_message = "The message as HTML";
70 emit messageChanged();
71}
diff --git a/framework/mail/singlemailcontroller.h b/framework/mail/singlemailcontroller.h
new file mode 100644
index 00000000..e6ec9a22
--- /dev/null
+++ b/framework/mail/singlemailcontroller.h
@@ -0,0 +1,44 @@
1#pragma once
2
3#include "maillistmodel.h"
4
5#include <QObject>
6#include <QString>
7
8class SingleMailController : public QObject
9{
10 Q_OBJECT
11 Q_PROPERTY (QString akonadiId READ akonadiId WRITE setAkonadiId NOTIFY akonadiIdChanged)
12 Q_PROPERTY (bool isUnread READ isUnread NOTIFY isUnreadChanged)
13 Q_PROPERTY (bool isImportant READ isImportant NOTIFY isImportantChanged)
14 Q_PROPERTY (QString message READ message NOTIFY messageChanged)
15
16public:
17 explicit SingleMailController(QObject *parent = Q_NULLPTR);
18
19 QString akonadiId() const;
20 void setAkonadiId(const QString &id);
21
22 bool isUnread() const;
23 bool isImportant() const;
24 QString message() const;
25
26 void loadMessage(const QString &id);
27
28signals:
29 void akonadiIdChanged();
30 void isUnreadChanged();
31 void isImportantChanged();
32 void messageChanged();
33
34public slots:
35 void deleteMail();
36 void markMailImportant(bool important);
37 void markMailUnread(bool unread);
38
39private:
40 QString m_akonadiId;
41 bool m_isImportant;
42 bool m_isUnread;
43 QString m_message;
44};