From a77c342e699f4b8ddd8e48236274f006441167a7 Mon Sep 17 00:00:00 2001
From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr>
Date: Fri, 6 Oct 2023 16:21:23 +0200
Subject: [PATCH] doc: Fix window display for version PyQt5 > 5.5

---
 requirements.txt       |  3 ++-
 src/View/Doc/Window.py | 26 ++++++++++++++------------
 src/View/ui/WebView.ui | 15 +--------------
 3 files changed, 17 insertions(+), 27 deletions(-)

diff --git a/requirements.txt b/requirements.txt
index 729dbbe4..01d9a29a 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,6 +1,7 @@
 PyQt5==5.15.4
 PyQt5-Qt5==5.15.2
-PyQt5-sip==12.8.1
+PyQt5-sip==12.12.2
+PyQtWebEngine==5.15.6
 pyqtgraph>=0.12.1
 matplotlib>=3.4.1
 numpy>=1.24.2
diff --git a/src/View/Doc/Window.py b/src/View/Doc/Window.py
index 73416322..fec3b3aa 100644
--- a/src/View/Doc/Window.py
+++ b/src/View/Doc/Window.py
@@ -27,10 +27,9 @@ _translate = QCoreApplication.translate
 logger = logging.getLogger()
 
 
-from PyQt5.QtWidgets import QApplication, QWidget
+from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout
 from PyQt5.QtCore import QUrl
-from PyQt5.QtWebKitWidgets import QWebView
-from PyQt5.QtWebKit import QWebSettings
+from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEngineSettings
 
 class DocWindow(PamhyrWindow):
     _pamhyr_ui = "WebView"
@@ -56,15 +55,18 @@ class DocWindow(PamhyrWindow):
 
         )
 
-        self.setup_setting()
+        self.setup_web_engine()
         self.setup_url(filename)
 
+    def setup_web_engine(self):
+        vl = self.find(QVBoxLayout, "verticalLayout")
+        self._web_view = QWebEngineView()
+
+        settings = self._web_view.settings()
+        settings.setAttribute(QWebEngineSettings.PluginsEnabled, True)
+        settings.setAttribute(QWebEngineSettings.JavascriptEnabled, False)
+
+        vl.addWidget(self._web_view)
+
     def setup_url(self, filename):
-        webView = self.find(QWebView, "webView")
-        webView.setUrl(QUrl(f"file://{self._path_file(filename)}"))
-
-    def setup_setting(self):
-        webView = self.find(QWebView, "webView")
-        settings = webView.settings()
-        settings.setAttribute(QWebSettings.PluginsEnabled, True)
-        settings.setAttribute(QWebSettings.JavascriptEnabled, False)
+        self._web_view.setUrl(QUrl(f"file://{self._path_file(filename)}"))
diff --git a/src/View/ui/WebView.ui b/src/View/ui/WebView.ui
index d29a0c89..0576f1a3 100644
--- a/src/View/ui/WebView.ui
+++ b/src/View/ui/WebView.ui
@@ -16,13 +16,7 @@
   <widget class="QWidget" name="centralwidget">
    <layout class="QGridLayout" name="gridLayout">
     <item row="0" column="0">
-     <widget class="QWebView" name="webView">
-      <property name="url">
-       <url>
-        <string>about:blank</string>
-       </url>
-      </property>
-     </widget>
+     <layout class="QVBoxLayout" name="verticalLayout"/>
     </item>
    </layout>
   </widget>
@@ -38,13 +32,6 @@
   </widget>
   <widget class="QStatusBar" name="statusbar"/>
  </widget>
- <customwidgets>
-  <customwidget>
-   <class>QWebView</class>
-   <extends>QWidget</extends>
-   <header location="global">QtWebKitWidgets/QWebView</header>
-  </customwidget>
- </customwidgets>
  <resources/>
  <connections/>
 </ui>
-- 
GitLab