From b4c08c7ed8dcaf46e0966f5d940b75a6e1d8f165 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Thu, 5 Jul 2018 00:22:10 +0200 Subject: Avoid binding loop on initialText which broke html -> plain conversion --- framework/src/domain/composercontroller.cpp | 1 + framework/src/domain/composercontroller.h | 3 +++ framework/src/domain/controller.cpp | 1 + framework/src/domain/controller.h | 1 + views/composer/qml/View.qml | 3 ++- 5 files changed, 8 insertions(+), 1 deletion(-) diff --git a/framework/src/domain/composercontroller.cpp b/framework/src/domain/composercontroller.cpp index 88c0c839..80fab809 100644 --- a/framework/src/domain/composercontroller.cpp +++ b/framework/src/domain/composercontroller.cpp @@ -353,6 +353,7 @@ void ComposerController::setMessage(const KMime::Message::Ptr &msg) } setExistingMessage(msg); + emit messageLoaded(body); } void ComposerController::loadDraft(const QVariant &message) { diff --git a/framework/src/domain/composercontroller.h b/framework/src/domain/composercontroller.h index 0d12fcce..425054d8 100644 --- a/framework/src/domain/composercontroller.h +++ b/framework/src/domain/composercontroller.h @@ -96,6 +96,9 @@ public: Q_INVOKABLE void loadReply(const QVariant &message); Q_INVOKABLE void loadForward(const QVariant &message); +signals: + void messageLoaded(const QString &body); + public slots: virtual void clear() Q_DECL_OVERRIDE; diff --git a/framework/src/domain/controller.cpp b/framework/src/domain/controller.cpp index 09fe0b9d..7a2996b8 100644 --- a/framework/src/domain/controller.cpp +++ b/framework/src/domain/controller.cpp @@ -54,6 +54,7 @@ void Controller::clear() for (const auto &p : dynamicPropertyNames()) { setProperty(p, QVariant()); } + emit cleared(); } void Controller::run(const KAsync::Job &job) diff --git a/framework/src/domain/controller.h b/framework/src/domain/controller.h index d3c1075f..83dbb51f 100644 --- a/framework/src/domain/controller.h +++ b/framework/src/domain/controller.h @@ -100,6 +100,7 @@ public slots: signals: void done(); void error(); + void cleared(); protected: void run(const KAsync::Job &job); diff --git a/views/composer/qml/View.qml b/views/composer/qml/View.qml index 3b7f0bf4..c6b09a7e 100644 --- a/views/composer/qml/View.qml +++ b/views/composer/qml/View.qml @@ -44,6 +44,8 @@ Kube.View { sendAction.enabled: composerController.accountId && composerController.subject && (!composerController.encrypt || composerController.foundAllKeys) && (!composerController.sign && !composerController.encrypt || composerController.foundPersonalKeys) && !composerController.to.empty saveAsDraftAction.enabled: composerController.accountId + onMessageLoaded: { textEditor.initialText = body } + onCleared: { textEditor.initialText = "" } } ] @@ -380,7 +382,6 @@ Kube.View { onActiveFocusChanged: closeFirstSplitIfNecessary() Keys.onEscapePressed: recipients.forceActiveFocus() - initialText: composerController.body onTextChanged: { composerController.body = text; } -- cgit v1.2.3