From 07429f3ef27ac464d69c045ef33bfeac147e0246 Mon Sep 17 00:00:00 2001 From: Michael Bohlender Date: Thu, 10 Mar 2016 09:58:59 +0100 Subject: enable ugly add_attachments in composer --- components/package/contents/ui/Composer.qml | 39 +++++++++++++++++++++++++++++ framework/domain/composercontroller.cpp | 11 ++++++++ framework/domain/composercontroller.h | 6 +++++ 3 files changed, 56 insertions(+) diff --git a/components/package/contents/ui/Composer.qml b/components/package/contents/ui/Composer.qml index 8c7aa36b..01991b67 100644 --- a/components/package/contents/ui/Composer.qml +++ b/components/package/contents/ui/Composer.qml @@ -18,6 +18,7 @@ import QtQuick 2.4 import QtQuick.Controls 1.4 import QtQuick.Layouts 1.1 +import QtQuick.Dialogs 1.0 import org.kde.plasma.components 2.0 as PlasmaComponents import org.kube.framework.domain 1.0 as KubeFramework @@ -201,6 +202,33 @@ Item { } text: "Attach" + + onClicked: { + fileDialog.open(); + } + } + } + + RowLayout { + + Layout.fillWidth: true + + Repeater { + + model: composer.attachments + + delegate: PlasmaComponents.Label { + id: name + + text: modelData + + Rectangle { + + anchors.fill: parent + + color: "lightsteelblue" + } + } } } @@ -215,7 +243,18 @@ Item { Layout.fillWidth: true Layout.fillHeight: true + } + } + + FileDialog { + id: fileDialog + + title: "Please choose a file" + folder: shortcuts.home + onAccepted: { + console.log("You chose: " + fileDialog.fileUrl) + composer.addAttachment(fileDialog.fileUrl); } } } diff --git a/framework/domain/composercontroller.cpp b/framework/domain/composercontroller.cpp index 78c20246..4ab4ac21 100644 --- a/framework/domain/composercontroller.cpp +++ b/framework/domain/composercontroller.cpp @@ -117,11 +117,22 @@ void ComposerController::setFromIndex(int fromIndex) } } +QStringList ComposerController::attachemts() const +{ + return m_attachments; +} + QVariant ComposerController::originalMessage() const { return m_originalMessage; } +void ComposerController::addAttachment(const QUrl &fileUrl) +{ + m_attachments.append(fileUrl.toString()); + emit attachmentsChanged(); +} + void ComposerController::setOriginalMessage(const QVariant &originalMessage) { const auto mailData = KMime::CRLFtoLF(originalMessage.toByteArray()); diff --git a/framework/domain/composercontroller.h b/framework/domain/composercontroller.h index 711a74e1..b410ce9b 100644 --- a/framework/domain/composercontroller.h +++ b/framework/domain/composercontroller.h @@ -39,6 +39,7 @@ class ComposerController : public QObject Q_PROPERTY (QString body READ body WRITE setBody NOTIFY bodyChanged) Q_PROPERTY (QStringList identityModel READ identityModel) Q_PROPERTY (int fromIndex READ fromIndex WRITE setFromIndex NOTIFY fromIndexChanged) + Q_PROPERTY (QStringList attachments READ attachemts NOTIFY attachmentsChanged) public: explicit ComposerController(QObject *parent = Q_NULLPTR); @@ -63,6 +64,8 @@ public: int fromIndex() const; void setFromIndex(int fromIndex); + QStringList attachemts() const; + QVariant originalMessage() const; void setOriginalMessage(const QVariant &originalMessage); @@ -73,11 +76,13 @@ signals: void ccChanged(); void bccChanged(); void fromIndexChanged(); + void attachmentsChanged(); public slots: void send(); void saveAsDraft(); void clear(); + void addAttachment(const QUrl &fileUrl); private: QSharedPointer assembleMessage(); @@ -88,6 +93,7 @@ private: QString m_body; QStringList m_identityModel; int m_fromIndex; + QStringList m_attachments; QVariant m_originalMessage; QVariant m_msg; }; -- cgit v1.2.3