From b474ef00248365ea4824b3cb4490fb9e5c804b0f Mon Sep 17 00:00:00 2001 From: MishkaRogachev Date: Wed, 18 Jan 2023 17:55:23 +0400 Subject: [PATCH] feat(appMain): Hide mailserver banner on SIGNAL_MAILSERVER_AVAILABLE --- src/app/modules/main/controller.nim | 3 ++- src/app/modules/main/io_interface.nim | 3 +++ src/app/modules/main/module.nim | 3 +++ src/app/modules/main/view.nim | 7 ++++++- ui/app/mainui/AppMain.qml | 4 ++++ 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/app/modules/main/controller.nim b/src/app/modules/main/controller.nim index 09322fdd64..fdd6b7d231 100644 --- a/src/app/modules/main/controller.nim +++ b/src/app/modules/main/controller.nim @@ -90,7 +90,8 @@ proc init*(self: Controller) = let d9 = 9*86400 # 9 days discard self.settingsService.setDefaultSyncPeriod(d9) - self.events.on("mailserverAvailable") do(e:Args): + self.events.on(SIGNAL_MAILSERVER_AVAILABLE) do(e:Args): + self.delegate.emitMailserverWorking() echo "MAILSERVER AVAILABLE: ", repr(e) # We need to take some actions here. This is the only pace where "mailserverAvailable" signal should be handled. # Do the following, if we really need that. diff --git a/src/app/modules/main/io_interface.nim b/src/app/modules/main/io_interface.nim index 7b16f8b062..9478890ee1 100644 --- a/src/app/modules/main/io_interface.nim +++ b/src/app/modules/main/io_interface.nim @@ -87,6 +87,9 @@ method emitStoringPasswordError*(self: AccessInterface, errorDescription: string method emitStoringPasswordSuccess*(self: AccessInterface) {.base.} = raise newException(ValueError, "No implementation available") +method emitMailserverWorking*(self: AccessInterface) {.base.} = + raise newException(ValueError, "No implementation available") + method emitMailserverNotWorking*(self: AccessInterface) {.base.} = raise newException(ValueError, "No implementation available") diff --git a/src/app/modules/main/module.nim b/src/app/modules/main/module.nim index 62ed6869ec..55463b83e6 100644 --- a/src/app/modules/main/module.nim +++ b/src/app/modules/main/module.nim @@ -576,6 +576,9 @@ method emitStoringPasswordError*[T](self: Module[T], errorDescription: string) = method emitStoringPasswordSuccess*[T](self: Module[T]) = self.view.emitStoringPasswordSuccess() +method emitMailserverWorking*[T](self: Module[T]) = + self.view.emitMailserverWorking() + method emitMailserverNotWorking*[T](self: Module[T]) = self.view.emitMailserverNotWorking() diff --git a/src/app/modules/main/view.nim b/src/app/modules/main/view.nim index c27be0efff..aeddcc8604 100644 --- a/src/app/modules/main/view.nim +++ b/src/app/modules/main/view.nim @@ -123,11 +123,16 @@ QtObject: proc emitStoringPasswordSuccess*(self: View) = self.storingPasswordSuccess() + proc mailserverWorking*(self:View) {.signal.} + proc mailserverNotWorking*(self:View) {.signal.} proc displayWindowsOsNotification*(self:View, title: string, message: string) {.signal.} - proc emitMailservernotWorking*(self: View) = + proc emitMailserverWorking*(self: View) = + self.mailserverWorking() + + proc emitMailserverNotWorking*(self: View) = self.mailserverNotWorking() proc activeSection*(self: View): ActiveSection = diff --git a/ui/app/mainui/AppMain.qml b/ui/app/mainui/AppMain.qml index 8f7ad2bae3..9690d5c140 100644 --- a/ui/app/mainui/AppMain.qml +++ b/ui/app/mainui/AppMain.qml @@ -68,6 +68,10 @@ Item { keycardPopup.active = false } + onMailserverWorking: { + mailserverConnectionBanner.hide() + } + onMailserverNotWorking: { mailserverConnectionBanner.show() }