UI/Previewers/PreviewerHTML.py

branch
maintenance
changeset 6395
613e37fabd96
parent 6319
df201b9fbad4
parent 6372
ae44c83fccab
child 6646
51eefa621de4
--- a/UI/Previewers/PreviewerHTML.py	Sat Jun 02 12:46:57 2018 +0200
+++ b/UI/Previewers/PreviewerHTML.py	Mon Jul 02 18:59:30 2018 +0200
@@ -51,17 +51,28 @@
         self.titleLabel.setTextInteractionFlags(Qt.NoTextInteraction)
         self.__layout.addWidget(self.titleLabel)
         
+        self.__previewAvailable = True
+        
         try:
             from PyQt5.QtWebEngineWidgets import QWebEngineView
             self.previewView = QWebEngineView(self)
             self.previewView.page().linkHovered.connect(self.__showLink)
             self.__usesWebKit = False
         except ImportError:
-            from PyQt5.QtWebKitWidgets import QWebPage, QWebView
-            self.previewView = QWebView(self)
-            self.previewView.page().setLinkDelegationPolicy(
-                QWebPage.DelegateAllLinks)
-            self.__usesWebKit = True
+            try:
+                from PyQt5.QtWebKitWidgets import QWebPage, QWebView
+                self.previewView = QWebView(self)
+                self.previewView.page().setLinkDelegationPolicy(
+                    QWebPage.DelegateAllLinks)
+                self.__usesWebKit = True
+            except ImportError:
+                self.__previewAvailable = False
+                self.titleLabel.setText(self.tr(
+                    "<b>HTML Preview is not available!<br/>"
+                    "Install QtWebEngine or QtWebKit.</b>"))
+                self.titleLabel.setAlignment(Qt.AlignHCenter)
+                self.__layout.addStretch()
+                return
         
         sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)
         sizePolicy.setHorizontalStretch(0)
@@ -110,7 +121,8 @@
         """
         Public method to perform shutdown actions.
         """
-        self.__processingThread.wait()
+        if self.__previewAvailable:
+            self.__processingThread.wait()
     
     @pyqtSlot(bool)
     def on_jsCheckBox_clicked(self, checked):
@@ -161,6 +173,9 @@
         
         @param editor editor to be processed (Editor)
         """
+        if not self.__previewAvailable:
+            return
+        
         if editor is None:
             editor = self.__previewedEditor
         else:

eric ide

mercurial