summaryrefslogtreecommitdiffstats
path: root/framework
diff options
context:
space:
mode:
Diffstat (limited to 'framework')
-rw-r--r--framework/domain/CMakeLists.txt1
-rw-r--r--framework/domain/contactcontroller.cpp59
-rw-r--r--framework/domain/contactcontroller.h56
-rw-r--r--framework/domain/mailplugin.cpp2
4 files changed, 118 insertions, 0 deletions
diff --git a/framework/domain/CMakeLists.txt b/framework/domain/CMakeLists.txt
index 01d55de2..31ca5df9 100644
--- a/framework/domain/CMakeLists.txt
+++ b/framework/domain/CMakeLists.txt
@@ -24,6 +24,7 @@ set(mailplugin_SRCS
24 mailcontroller.cpp 24 mailcontroller.cpp
25 foldercontroller.cpp 25 foldercontroller.cpp
26 mouseproxy.cpp 26 mouseproxy.cpp
27 contactcontroller.cpp
27) 28)
28find_package(KF5 REQUIRED COMPONENTS Package) 29find_package(KF5 REQUIRED COMPONENTS Package)
29 30
diff --git a/framework/domain/contactcontroller.cpp b/framework/domain/contactcontroller.cpp
new file mode 100644
index 00000000..0be90e77
--- /dev/null
+++ b/framework/domain/contactcontroller.cpp
@@ -0,0 +1,59 @@
1/*
2 * Copyright (C) 2017 Michael Bohlender, <michael.bohlender@kdemail.net>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 */
18
19#include "contactcontroller.h"
20
21ContactController::ContactController()
22 : Kube::Controller(),
23 action_save{new Kube::ControllerAction{this, &ContactController::save}}
24{
25 loadContact("test");
26 updateSaveAction();
27}
28
29void ContactController::save() {
30 //TODO
31}
32
33void ContactController::updateSaveAction()
34{
35 saveAction()->setEnabled(!getName().isEmpty());
36}
37
38void ContactController::loadContact(const QVariant &contact)
39{
40 setName("Anita Rosenzweig");
41 m_emails << "rosenzweig@kolabnow.com" << "wolfi@kolabnow.com";
42}
43
44void ContactController::removeEmail(const QString &email)
45{
46 m_emails.removeOne(email);
47 emit emailsChanged();
48}
49
50void ContactController::addEmail(const QString &email)
51{
52 m_emails << email;
53 emit emailsChanged();
54}
55
56QStringList ContactController::emails() const
57{
58 return m_emails;
59}
diff --git a/framework/domain/contactcontroller.h b/framework/domain/contactcontroller.h
new file mode 100644
index 00000000..d9bca563
--- /dev/null
+++ b/framework/domain/contactcontroller.h
@@ -0,0 +1,56 @@
1/*
2 * Copyright (C) 2017 Michael Bohlender, <michael.bohlender@kdemail.net>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 */
18
19
20#pragma once
21
22#include <QObject>
23#include <QString>
24#include <QStringList>
25
26#include "controller.h"
27
28class ContactController : public Kube::Controller
29{
30 Q_OBJECT
31
32 Q_PROPERTY(QStringList emails READ emails NOTIFY emailsChanged)
33
34 //Interface properties
35 KUBE_CONTROLLER_PROPERTY(QString, Name, name)
36
37 KUBE_CONTROLLER_ACTION(save)
38
39public:
40 explicit ContactController();
41
42 QStringList emails() const;
43
44 Q_INVOKABLE void loadContact(const QVariant &contact);
45 Q_INVOKABLE void removeEmail(const QString &email);
46 Q_INVOKABLE void addEmail(const QString &email);
47
48signals:
49 void emailsChanged();
50
51private slots:
52 void updateSaveAction();
53
54private:
55 QStringList m_emails;
56};
diff --git a/framework/domain/mailplugin.cpp b/framework/domain/mailplugin.cpp
index 2ec73644..fba6c458 100644
--- a/framework/domain/mailplugin.cpp
+++ b/framework/domain/mailplugin.cpp
@@ -30,6 +30,7 @@
30#include "mailcontroller.h" 30#include "mailcontroller.h"
31#include "foldercontroller.h" 31#include "foldercontroller.h"
32#include "mouseproxy.h" 32#include "mouseproxy.h"
33#include "contactcontroller.h"
33 34
34#include <QtQml> 35#include <QtQml>
35 36
@@ -47,4 +48,5 @@ void MailPlugin::registerTypes (const char *uri)
47 qmlRegisterType<MailController>(uri, 1, 0, "MailController"); 48 qmlRegisterType<MailController>(uri, 1, 0, "MailController");
48 qmlRegisterType<FolderController>(uri, 1, 0, "FolderController"); 49 qmlRegisterType<FolderController>(uri, 1, 0, "FolderController");
49 qmlRegisterType<MouseProxy>(uri, 1, 0, "MouseProxy"); 50 qmlRegisterType<MouseProxy>(uri, 1, 0, "MouseProxy");
51 qmlRegisterType<ContactController>(uri, 1, 0,"ContactController");
50} 52}