From 54093e5c96e09403f920603cea872f4bab1d058e Mon Sep 17 00:00:00 2001
From: Ming Rui Zhang <mingrui.zhang@savoirfairelinux.com>
Date: Tue, 6 Oct 2020 14:19:28 -0400
Subject: [PATCH] messagewebview: reload mainview if webengineview does not
 finish loading js

Gitlab: #134
Change-Id: I0d6406b80ad80cc7278e395bd51d0d7b02538aa0
---
 src/mainview/MainView.qml                  | 13 +++++++++++++
 src/mainview/components/MessageWebView.qml |  4 +++-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/mainview/MainView.qml b/src/mainview/MainView.qml
index 4f830d2e0..d393508dc 100644
--- a/src/mainview/MainView.qml
+++ b/src/mainview/MainView.qml
@@ -177,6 +177,19 @@ Window {
     // ConversationSmartListViewItemDelegate provides UI information
     function setMainView(currentUserDisplayName, currentUserAlias, currentUID,
                                callStackViewShouldShow, isAudioOnly, callState) {
+        if (!(communicationPageMessageWebView.jsLoaded)) {
+            communicationPageMessageWebView.jsLoadedChanged.connect(
+                        function(currentUserDisplayName, currentUserAlias, currentUID,
+                                 callStackViewShouldShow, isAudioOnly, callState) {
+                            return function() {
+                                setMainView(currentUserDisplayName, currentUserAlias, currentUID,
+                                            callStackViewShouldShow, isAudioOnly, callState)
+                            }
+                        }(currentUserDisplayName, currentUserAlias, currentUID,
+                          callStackViewShouldShow, isAudioOnly, callState))
+            return
+        }
+
         if (callStackViewShouldShow) {
             if (inSettingsView) {
                 toggleSettingsView()
diff --git a/src/mainview/components/MessageWebView.qml b/src/mainview/components/MessageWebView.qml
index 1b9dd3636..6b9515548 100644
--- a/src/mainview/components/MessageWebView.qml
+++ b/src/mainview/components/MessageWebView.qml
@@ -32,6 +32,7 @@ Rectangle {
     property int messageWebViewHeaderPreferredHeight: 64
     property string headerUserAliasLabelText: ""
     property string headerUserUserNameLabelText: ""
+    property bool jsLoaded: false
 
     signal needToHideConversationInCall
 
@@ -256,7 +257,8 @@ Rectangle {
                 messageWebView.runJavaScript(UtilsAdapter.qStringFromFile(
                                                  ":/qwebchannel.js"))
                 messageWebView.runJavaScript(UtilsAdapter.qStringFromFile(
-                                                 ":/chatview.js"))
+                                                 ":/chatview.js"),
+                                             function(){jsLoaded = true})
                 messageWebView.runJavaScript("init_i18n();")
                 messageWebView.runJavaScript("displayNavbar(false);")
             }
-- 
GitLab