From 29846c929e742f875983db249f54d882560ecf74 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 27 Nov 2017 14:56:49 +0100 Subject: Disable encryption buttons if keys are missing --- components/kube/contents/ui/ComposerView.qml | 8 ++++++++ framework/src/domain/composercontroller.cpp | 1 + framework/src/domain/composercontroller.h | 1 + 3 files changed, 10 insertions(+) diff --git a/components/kube/contents/ui/ComposerView.qml b/components/kube/contents/ui/ComposerView.qml index 520b8113..0b81ab2a 100644 --- a/components/kube/contents/ui/ComposerView.qml +++ b/components/kube/contents/ui/ComposerView.qml @@ -445,6 +445,7 @@ Kube.View { } RowLayout { + enabled: composerController.encryptionAvailable Kube.CheckBox { id: encryptCheckbox checked: composerController.encrypt @@ -455,6 +456,7 @@ Kube.View { } RowLayout { + enabled: composerController.encryptionAvailable Kube.CheckBox { id: signCheckbox checked: composerController.sign @@ -463,6 +465,12 @@ Kube.View { text: qsTr("sign") } } + Kube.Label { + visible: !composerController.encryptionAvailable + Layout.maximumWidth: parent.width + text: qsTr("Encryption is not available because your personal key has not been found.") + wrapMode: Text.Wrap + } RowLayout { Layout.maximumWidth: parent.width diff --git a/framework/src/domain/composercontroller.cpp b/framework/src/domain/composercontroller.cpp index 01aba8c7..4ec1a72c 100644 --- a/framework/src/domain/composercontroller.cpp +++ b/framework/src/domain/composercontroller.cpp @@ -297,6 +297,7 @@ void ComposerController::findPersonalKey() SinkLog() << "Found personal key: " << mPersonalKeys.front().primaryFingerprint(); } updateSendAction(); + setEncryptionAvailable(!mPersonalKeys.empty()); }); } diff --git a/framework/src/domain/composercontroller.h b/framework/src/domain/composercontroller.h index 00386c5c..995f4a2e 100644 --- a/framework/src/domain/composercontroller.h +++ b/framework/src/domain/composercontroller.h @@ -57,6 +57,7 @@ class ComposerController : public Kube::Controller KUBE_CONTROLLER_PROPERTY(bool, HtmlBody, htmlBody) KUBE_CONTROLLER_PROPERTY(bool, Encrypt, encrypt) KUBE_CONTROLLER_PROPERTY(bool, Sign, sign) + KUBE_CONTROLLER_PROPERTY(bool, EncryptionAvailable, encryptionAvailable) //Set by identitySelector KUBE_CONTROLLER_PROPERTY(KMime::Types::Mailbox, Identity, identity) -- cgit v1.2.3