49 self.titleLabel = QLabel(self) |
49 self.titleLabel = QLabel(self) |
50 self.titleLabel.setWordWrap(True) |
50 self.titleLabel.setWordWrap(True) |
51 self.titleLabel.setTextInteractionFlags(Qt.NoTextInteraction) |
51 self.titleLabel.setTextInteractionFlags(Qt.NoTextInteraction) |
52 self.__layout.addWidget(self.titleLabel) |
52 self.__layout.addWidget(self.titleLabel) |
53 |
53 |
|
54 self.__previewAvailable = True |
|
55 |
54 try: |
56 try: |
55 from PyQt5.QtWebEngineWidgets import QWebEngineView |
57 from PyQt5.QtWebEngineWidgets import QWebEngineView |
56 self.previewView = QWebEngineView(self) |
58 self.previewView = QWebEngineView(self) |
57 self.previewView.page().linkHovered.connect(self.__showLink) |
59 self.previewView.page().linkHovered.connect(self.__showLink) |
58 self.__usesWebKit = False |
60 self.__usesWebKit = False |
59 except ImportError: |
61 except ImportError: |
60 from PyQt5.QtWebKitWidgets import QWebPage, QWebView |
62 try: |
61 self.previewView = QWebView(self) |
63 from PyQt5.QtWebKitWidgets import QWebPage, QWebView |
62 self.previewView.page().setLinkDelegationPolicy( |
64 self.previewView = QWebView(self) |
63 QWebPage.DelegateAllLinks) |
65 self.previewView.page().setLinkDelegationPolicy( |
64 self.__usesWebKit = True |
66 QWebPage.DelegateAllLinks) |
|
67 self.__usesWebKit = True |
|
68 except ImportError: |
|
69 self.__previewAvailable = False |
|
70 self.titleLabel.setText(self.tr( |
|
71 "<b>HTML Preview is not available!<br/>" |
|
72 "Install QtWebEngine or QtWebKit.</b>")) |
|
73 self.titleLabel.setAlignment(Qt.AlignHCenter) |
|
74 self.__layout.addStretch() |
|
75 return |
65 |
76 |
66 sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding) |
77 sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding) |
67 sizePolicy.setHorizontalStretch(0) |
78 sizePolicy.setHorizontalStretch(0) |
68 sizePolicy.setVerticalStretch(0) |
79 sizePolicy.setVerticalStretch(0) |
69 sizePolicy.setHeightForWidth( |
80 sizePolicy.setHeightForWidth( |
108 |
119 |
109 def shutdown(self): |
120 def shutdown(self): |
110 """ |
121 """ |
111 Public method to perform shutdown actions. |
122 Public method to perform shutdown actions. |
112 """ |
123 """ |
113 self.__processingThread.wait() |
124 if self.__previewAvailable: |
|
125 self.__processingThread.wait() |
114 |
126 |
115 @pyqtSlot(bool) |
127 @pyqtSlot(bool) |
116 def on_jsCheckBox_clicked(self, checked): |
128 def on_jsCheckBox_clicked(self, checked): |
117 """ |
129 """ |
118 Private slot to enable/disable JavaScript. |
130 Private slot to enable/disable JavaScript. |