From 552f6d4c02f0d760368a1f345068b469ee3af36a Mon Sep 17 00:00:00 2001 From: Michael Bohlender Date: Mon, 7 Dec 2015 00:27:36 +0100 Subject: add folderlistcontroller --- framework/mail/CMakeLists.txt | 1 + framework/mail/folderlistcontroller.cpp | 44 +++++++++++++++++++++++++++++++++ framework/mail/folderlistcontroller.h | 35 ++++++++++++++++++++++++++ framework/mail/mailplugin.cpp | 8 ++++++ 4 files changed, 88 insertions(+) create mode 100644 framework/mail/folderlistcontroller.cpp create mode 100644 framework/mail/folderlistcontroller.h (limited to 'framework/mail') diff --git a/framework/mail/CMakeLists.txt b/framework/mail/CMakeLists.txt index f1c14470..7d7569a7 100644 --- a/framework/mail/CMakeLists.txt +++ b/framework/mail/CMakeLists.txt @@ -4,6 +4,7 @@ set(mailplugin_SRCS maillistmodel.cpp singlemailcontroller.cpp folderlistmodel.cpp + folderlistcontroller.cpp ) add_library(mailplugin SHARED ${mailplugin_SRCS}) diff --git a/framework/mail/folderlistcontroller.cpp b/framework/mail/folderlistcontroller.cpp new file mode 100644 index 00000000..900e378d --- /dev/null +++ b/framework/mail/folderlistcontroller.cpp @@ -0,0 +1,44 @@ +#include "folderlistcontroller.h" + +#include "folderlistmodel.h" + +#include + +FolderListController::FolderListController(QObject *parent) : QObject(parent), m_model(new FolderListModel) +{ + +} + +QString FolderListController::accountId() const +{ + return m_accountId; +} + +void FolderListController::setAccountId(const QString &id) +{ + if(m_accountId != id) { + m_accountId = id; + + loadFolders(id); + + emit accountIdChanged(); + } +} + +void FolderListController::loadFolders(const QString &id) +{ + //load foldermodel from akonadi + +} + + +void FolderListController::addFolder(const QString &name) +{ + qDebug() << "User Action: add folder " << name; +} + +void FolderListController::deleteFolder(const QString &id) +{ + qDebug() << "User Action: delete folder " << id; +} + diff --git a/framework/mail/folderlistcontroller.h b/framework/mail/folderlistcontroller.h new file mode 100644 index 00000000..18f5624d --- /dev/null +++ b/framework/mail/folderlistcontroller.h @@ -0,0 +1,35 @@ +#pragma once + +#include +#include +#include +#include + +class FolderListController : public QObject +{ + Q_OBJECT + Q_PROPERTY (QString accountId READ accountId WRITE setAccountId NOTIFY accountIdChanged) + Q_PROPERTY (QAbstractItemModel *model READ model CONSTANT) + +public: + explicit FolderListController(QObject *parent = Q_NULLPTR); + + QString accountId() const; + void setAccountId(const QString &id); + + QAbstractItemModel *model() const; + + void loadFolders(const QString &id); + +signals: + void accountIdChanged(); + +public slots: + void deleteFolder(const QString &id); + void addFolder(const QString &name); + + +private: + QString m_accountId; + QScopedPointer m_model; +}; diff --git a/framework/mail/mailplugin.cpp b/framework/mail/mailplugin.cpp index 36c75e7f..e5988591 100644 --- a/framework/mail/mailplugin.cpp +++ b/framework/mail/mailplugin.cpp @@ -3,6 +3,8 @@ #include "maillistcontroller.h" #include "maillistmodel.h" #include "singlemailcontroller.h" +#include "folderlistcontroller.h" +#include "folderlistmodel.h" #include #include @@ -11,6 +13,12 @@ void MailPlugin::registerTypes (const char *uri) { Q_ASSERT(uri == QLatin1String("org.kde.akonadi2.mail")); qmlRegisterType(); + + qmlRegisterType(); + qmlRegisterType(uri, 1, 0, "FolderList"); + + qmlRegisterType(); qmlRegisterType(uri, 1, 0, "MailList"); + qmlRegisterType(uri, 1, 0, "SingleMail"); } -- cgit v1.2.3