UI/Previewers/PreviewerHTML.py

changeset 6372
ae44c83fccab
parent 6287
9a193ff6d24a
child 6395
613e37fabd96
child 6645
ad476851d7e0
equal deleted inserted replaced
6371:bc834bbc0251 6372:ae44c83fccab
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.
159 """ 171 """
160 Public slot to process an editor's text. 172 Public slot to process an editor's text.
161 173
162 @param editor editor to be processed (Editor) 174 @param editor editor to be processed (Editor)
163 """ 175 """
176 if not self.__previewAvailable:
177 return
178
164 if editor is None: 179 if editor is None:
165 editor = self.__previewedEditor 180 editor = self.__previewedEditor
166 else: 181 else:
167 self.__previewedEditor = editor 182 self.__previewedEditor = editor
168 183

eric ide

mercurial