From a8b0adbef715ce930f8f06af47b473b11dcda05c Mon Sep 17 00:00:00 2001 From: Ming Rui Zhang <mingrui.zhang@savoirfairelinux.com> Date: Thu, 24 Sep 2020 16:33:26 -0400 Subject: [PATCH] mainview: code optimization for page on stack view checking Change-Id: I8ff7122a430b73f1c5626ae931f13f5a4ffe242a --- src/mainview/MainView.qml | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/src/mainview/MainView.qml b/src/mainview/MainView.qml index c6b4ad733..44997f645 100644 --- a/src/mainview/MainView.qml +++ b/src/mainview/MainView.qml @@ -70,13 +70,22 @@ Window { } } + function isPageInStack(objectName, stackView) { + var foundItem = stackView.find(function (item, index) { + return item.objectName === objectName + }) + + return foundItem ? true : false + } + function showWelcomeView() { mainViewWindowSidePanel.deselectConversationSmartList() - if (communicationPageMessageWebView.visible || callStackView.visible) { + if (isPageInStack("callStackViewObject", sidePanelViewStack) || + isPageInStack("communicationPageMessageWebView", sidePanelViewStack) || + isPageInStack("communicationPageMessageWebView", mainViewStack) || + isPageInStack("callStackViewObject", mainViewStack)) { sidePanelViewStack.pop(StackView.Immediate) - if (!sidePanelOnly) { - mainViewStack.pop(welcomePage, StackView.Immediate) - } + mainViewStack.pop(welcomePage, StackView.Immediate) } recordBox.visible = false } @@ -112,7 +121,6 @@ Window { callStackView.updateCorrespondingUI() } - function pushCallStackView() { if (sidePanelOnly) { sidePanelViewStack.push(callStackView, StackView.Immediate) @@ -153,7 +161,6 @@ Window { } function toggleSettingsView() { - inSettingsView = !inSettingsView if (inSettingsView) { @@ -210,11 +217,8 @@ Window { // Check if call stack view is on any of the stackview. if (callStackView.responsibleAccountId === accountId && callStackView.responsibleConvUid === convUid) { - if (mainViewStack.find(function (item, index) { - return item.objectName === "callStackViewObject" - }) || sidePanelViewStack.find(function (item, index) { - return item.objectName === "callStackViewObject" - })) { + if (isPageInStack("callStackViewObject", sidePanelViewStack) || + isPageInStack("callStackViewObject", mainViewStack)) { if (!inSettingsView) { callStackView.needToCloseInCallConversationAndPotentialWindow() pushCommunicationMessageWebView() @@ -224,7 +228,6 @@ Window { } function onIncomingCallNeedToSetupMainView(accountId, convUid, fromNotification) { - // Set up the call stack view that is needed by call overlay. if (!inSettingsView) { mainViewStack.pop(welcomePage, StackView.Immediate) @@ -478,15 +481,10 @@ Window { MessagesAdapter.setupChatView(currentUID) callStackView.setLinkedWebview(communicationPageMessageWebView) - if (mainViewStack.find(function (item, index) { - return item.objectName === "communicationPageMessageWebView" - }) || sidePanelViewStack.find(function (item, index) { - return item.objectName === "communicationPageMessageWebView" - })) { - if (!callStackViewShouldShow) { - communicationPageMessageWebView.focusMessageWebView() + if (isPageInStack("communicationPageMessageWebView", sidePanelViewStack) || + isPageInStack("communicationPageMessageWebView", mainViewStack)) { + if (!callStackViewShouldShow) return - } } // Push messageWebView or callStackView onto the correct stackview @@ -541,7 +539,6 @@ Window { WelcomePage { id: welcomePage - visible: false } -- GitLab