summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/package/contents/ui/Composer.qml39
-rw-r--r--framework/domain/composercontroller.cpp11
-rw-r--r--framework/domain/composercontroller.h6
3 files changed, 56 insertions, 0 deletions
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 @@
18import QtQuick 2.4 18import QtQuick 2.4
19import QtQuick.Controls 1.4 19import QtQuick.Controls 1.4
20import QtQuick.Layouts 1.1 20import QtQuick.Layouts 1.1
21import QtQuick.Dialogs 1.0
21import org.kde.plasma.components 2.0 as PlasmaComponents 22import org.kde.plasma.components 2.0 as PlasmaComponents
22 23
23import org.kube.framework.domain 1.0 as KubeFramework 24import org.kube.framework.domain 1.0 as KubeFramework
@@ -201,6 +202,33 @@ Item {
201 } 202 }
202 203
203 text: "Attach" 204 text: "Attach"
205
206 onClicked: {
207 fileDialog.open();
208 }
209 }
210 }
211
212 RowLayout {
213
214 Layout.fillWidth: true
215
216 Repeater {
217
218 model: composer.attachments
219
220 delegate: PlasmaComponents.Label {
221 id: name
222
223 text: modelData
224
225 Rectangle {
226
227 anchors.fill: parent
228
229 color: "lightsteelblue"
230 }
231 }
204 } 232 }
205 } 233 }
206 234
@@ -215,7 +243,18 @@ Item {
215 243
216 Layout.fillWidth: true 244 Layout.fillWidth: true
217 Layout.fillHeight: true 245 Layout.fillHeight: true
246 }
247 }
248
249 FileDialog {
250 id: fileDialog
251
252 title: "Please choose a file"
253 folder: shortcuts.home
218 254
255 onAccepted: {
256 console.log("You chose: " + fileDialog.fileUrl)
257 composer.addAttachment(fileDialog.fileUrl);
219 } 258 }
220 } 259 }
221} 260}
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)
117 } 117 }
118} 118}
119 119
120QStringList ComposerController::attachemts() const
121{
122 return m_attachments;
123}
124
120QVariant ComposerController::originalMessage() const 125QVariant ComposerController::originalMessage() const
121{ 126{
122 return m_originalMessage; 127 return m_originalMessage;
123} 128}
124 129
130void ComposerController::addAttachment(const QUrl &fileUrl)
131{
132 m_attachments.append(fileUrl.toString());
133 emit attachmentsChanged();
134}
135
125void ComposerController::setOriginalMessage(const QVariant &originalMessage) 136void ComposerController::setOriginalMessage(const QVariant &originalMessage)
126{ 137{
127 const auto mailData = KMime::CRLFtoLF(originalMessage.toByteArray()); 138 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
39 Q_PROPERTY (QString body READ body WRITE setBody NOTIFY bodyChanged) 39 Q_PROPERTY (QString body READ body WRITE setBody NOTIFY bodyChanged)
40 Q_PROPERTY (QStringList identityModel READ identityModel) 40 Q_PROPERTY (QStringList identityModel READ identityModel)
41 Q_PROPERTY (int fromIndex READ fromIndex WRITE setFromIndex NOTIFY fromIndexChanged) 41 Q_PROPERTY (int fromIndex READ fromIndex WRITE setFromIndex NOTIFY fromIndexChanged)
42 Q_PROPERTY (QStringList attachments READ attachemts NOTIFY attachmentsChanged)
42 43
43public: 44public:
44 explicit ComposerController(QObject *parent = Q_NULLPTR); 45 explicit ComposerController(QObject *parent = Q_NULLPTR);
@@ -63,6 +64,8 @@ public:
63 int fromIndex() const; 64 int fromIndex() const;
64 void setFromIndex(int fromIndex); 65 void setFromIndex(int fromIndex);
65 66
67 QStringList attachemts() const;
68
66 QVariant originalMessage() const; 69 QVariant originalMessage() const;
67 void setOriginalMessage(const QVariant &originalMessage); 70 void setOriginalMessage(const QVariant &originalMessage);
68 71
@@ -73,11 +76,13 @@ signals:
73 void ccChanged(); 76 void ccChanged();
74 void bccChanged(); 77 void bccChanged();
75 void fromIndexChanged(); 78 void fromIndexChanged();
79 void attachmentsChanged();
76 80
77public slots: 81public slots:
78 void send(); 82 void send();
79 void saveAsDraft(); 83 void saveAsDraft();
80 void clear(); 84 void clear();
85 void addAttachment(const QUrl &fileUrl);
81 86
82private: 87private:
83 QSharedPointer<KMime::Message> assembleMessage(); 88 QSharedPointer<KMime::Message> assembleMessage();
@@ -88,6 +93,7 @@ private:
88 QString m_body; 93 QString m_body;
89 QStringList m_identityModel; 94 QStringList m_identityModel;
90 int m_fromIndex; 95 int m_fromIndex;
96 QStringList m_attachments;
91 QVariant m_originalMessage; 97 QVariant m_originalMessage;
92 QVariant m_msg; 98 QVariant m_msg;
93}; 99};