From df10583b42f49a58d27dd6dd322f22fd88ce1418 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 10 May 2016 15:53:06 +0200 Subject: Support for loading drafts --- components/mail/contents/ui/main.qml | 29 ++++++++++++++++++++++++ components/package/contents/ui/Composer.qml | 15 +++++++++--- components/package/contents/ui/FocusComposer.qml | 2 ++ components/package/contents/ui/MailListView.qml | 7 ++++++ 4 files changed, 50 insertions(+), 3 deletions(-) (limited to 'components') diff --git a/components/mail/contents/ui/main.qml b/components/mail/contents/ui/main.qml index 15a2b0b8..c2569cdc 100644 --- a/components/mail/contents/ui/main.qml +++ b/components/mail/contents/ui/main.qml @@ -38,7 +38,9 @@ ApplicationWindow { KubeAction.Context { id: maillistcontext property variant mail + property bool isDraft mail: mailListView.currentMail + isDraft: mailListView.isDraft } KubeAction.Context { @@ -53,6 +55,12 @@ ApplicationWindow { context: maillistcontext } + KubeAction.Action { + id: editAction + actionId: "org.kde.kube.actions.edit" + context: maillistcontext + } + KubeAction.Action { id: markAsReadAction actionId: "org.kde.kube.actions.mark-as-read" @@ -180,6 +188,17 @@ ApplicationWindow { } } + KubeAction.ActionHandler { + actionId: "org.kde.kube.actions.edit" + function isReady(context) { + return context.mail && context.isDraft; + } + + function handler(context) { + composerComponent.createObject(app, {"draftMessage": context.mail}) + } + } + ToolButton { id: newMailButton @@ -202,6 +221,16 @@ ApplicationWindow { } } + ToolButton { + Layout.fillHeight: true + iconName: "mail-message-edit" + text: "Edit" + enabled: editAction.ready + onClicked: { + editAction.execute() + } + } + Item { Layout.fillWidth: true } diff --git a/components/package/contents/ui/Composer.qml b/components/package/contents/ui/Composer.qml index 8c6f9c77..ed8fb2f2 100644 --- a/components/package/contents/ui/Composer.qml +++ b/components/package/contents/ui/Composer.qml @@ -26,6 +26,7 @@ import org.kube.framework.domain 1.0 as KubeFramework Item { id: root property variant originalMessage + property variant draftMessage function send() { composer.send() @@ -40,17 +41,25 @@ Item { } KubeFramework.Retriever { - id: retriever + id: originalMessageRetriever propertyName: "mimeMessage" model: KubeFramework.MailListModel { - id: mailListModel mail: root.originalMessage } } + KubeFramework.Retriever { + id: draftMessageRetriever + propertyName: "mimeMessage" + model: KubeFramework.MailListModel { + mail: root.draftMessage + } + } + KubeFramework.ComposerController { id: composer - originalMessage: retriever.value + originalMessage: originalMessageRetriever.value + draftMessage: draftMessageRetriever.value } ColumnLayout { diff --git a/components/package/contents/ui/FocusComposer.qml b/components/package/contents/ui/FocusComposer.qml index 1cd3cb32..4e61b6c1 100644 --- a/components/package/contents/ui/FocusComposer.qml +++ b/components/package/contents/ui/FocusComposer.qml @@ -24,6 +24,7 @@ import org.kube.framework.theme 1.0 Rectangle { id: root property variant originalMessage + property variant draftMessage color: ColorPalette.border @@ -62,6 +63,7 @@ Rectangle { Layout.fillWidth: true Layout.fillHeight: true originalMessage: root.originalMessage + draftMessage: root.draftMessage } RowLayout { diff --git a/components/package/contents/ui/MailListView.qml b/components/package/contents/ui/MailListView.qml index 12d6c705..9caaa9ce 100644 --- a/components/package/contents/ui/MailListView.qml +++ b/components/package/contents/ui/MailListView.qml @@ -29,6 +29,7 @@ Controls.ScrollView { id: root property variant parentFolder property variant currentMail + property bool isDraft : false ListView { id: listView @@ -69,6 +70,12 @@ Controls.ScrollView { when: listView.currentIndex == index value: model.domainObject } + QtQml.Binding { + target: root + property: "isDraft" + when: listView.currentIndex == index + value: model.draft + } RowLayout { -- cgit v1.2.3