--- 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: