64 QWebEngineView, |
64 QWebEngineView, |
65 ) |
65 ) |
66 |
66 |
67 self.previewView = QWebEngineView(self) |
67 self.previewView = QWebEngineView(self) |
68 self.previewView.page().linkHovered.connect(self.__showLink) |
68 self.previewView.page().linkHovered.connect(self.__showLink) |
|
69 |
|
70 settings = self.previewView.settings() |
|
71 settings.setAttribute(settings.WebAttribute.JavascriptEnabled, True) |
|
72 # JavaScript needs to be enabled. |
69 except ImportError: |
73 except ImportError: |
70 self.__previewAvailable = False |
74 self.__previewAvailable = False |
71 self.titleLabel.setText( |
75 self.titleLabel.setText( |
72 self.tr( |
76 self.tr( |
73 "<b>HTML Preview is not available!<br/>" |
77 "<b>HTML Preview is not available!<br/>" |
91 |
95 |
92 self.__footerLayout = QGridLayout() |
96 self.__footerLayout = QGridLayout() |
93 sizePolicy = QSizePolicy( |
97 sizePolicy = QSizePolicy( |
94 QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred |
98 QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred |
95 ) |
99 ) |
96 self.jsCheckBox = QCheckBox(self.tr("Enable JavaScript"), self) |
|
97 self.jsCheckBox.setToolTip( |
|
98 self.tr("Select to enable JavaScript for HTML previews") |
|
99 ) |
|
100 self.jsCheckBox.setSizePolicy(sizePolicy) |
|
101 self.__footerLayout.addWidget(self.jsCheckBox, 0, 0) |
|
102 |
100 |
103 self.ssiCheckBox = QCheckBox(self.tr("Enable Server Side Includes"), self) |
101 self.ssiCheckBox = QCheckBox(self.tr("Enable Server Side Includes"), self) |
104 self.ssiCheckBox.setToolTip( |
102 self.ssiCheckBox.setToolTip( |
105 self.tr("Select to enable support for Server Side Includes") |
103 self.tr("Select to enable support for Server Side Includes") |
106 ) |
104 ) |
112 ) |
110 ) |
113 self.__htmlButton.setEnabled(False) |
111 self.__htmlButton.setEnabled(False) |
114 self.__footerLayout.addWidget(self.__htmlButton, 1, 1) |
112 self.__footerLayout.addWidget(self.__htmlButton, 1, 1) |
115 self.__layout.addLayout(self.__footerLayout) |
113 self.__layout.addLayout(self.__footerLayout) |
116 |
114 |
117 self.jsCheckBox.clicked[bool].connect(self.on_jsCheckBox_clicked) |
|
118 self.ssiCheckBox.clicked[bool].connect(self.on_ssiCheckBox_clicked) |
115 self.ssiCheckBox.clicked[bool].connect(self.on_ssiCheckBox_clicked) |
119 self.previewView.titleChanged.connect(self.on_previewView_titleChanged) |
116 self.previewView.titleChanged.connect(self.on_previewView_titleChanged) |
120 self.__htmlButton.clicked.connect(self.on_htmlButton_clicked) |
117 self.__htmlButton.clicked.connect(self.on_htmlButton_clicked) |
121 |
118 |
122 self.jsCheckBox.setChecked(Preferences.getUI("ShowFilePreviewJS")) |
|
123 self.ssiCheckBox.setChecked(Preferences.getUI("ShowFilePreviewSSI")) |
119 self.ssiCheckBox.setChecked(Preferences.getUI("ShowFilePreviewSSI")) |
124 |
120 |
125 self.__scrollBarPositions = {} |
121 self.__scrollBarPositions = {} |
126 self.__vScrollBarAtEnd = {} |
122 self.__vScrollBarAtEnd = {} |
127 self.__hScrollBarAtEnd = {} |
123 self.__hScrollBarAtEnd = {} |
137 """ |
133 """ |
138 Public method to perform shutdown actions. |
134 Public method to perform shutdown actions. |
139 """ |
135 """ |
140 if self.__previewAvailable: |
136 if self.__previewAvailable: |
141 self.__processingThread.wait() |
137 self.__processingThread.wait() |
142 |
|
143 @pyqtSlot(bool) |
|
144 def on_jsCheckBox_clicked(self, checked): |
|
145 """ |
|
146 Private slot to enable/disable JavaScript. |
|
147 |
|
148 @param checked state of the checkbox |
|
149 @type bool |
|
150 """ |
|
151 Preferences.setUI("ShowFilePreviewJS", checked) |
|
152 self.__setJavaScriptEnabled(checked) |
|
153 |
|
154 def __setJavaScriptEnabled(self, enable): |
|
155 """ |
|
156 Private method to enable/disable JavaScript. |
|
157 |
|
158 @param enable flag indicating the enable state |
|
159 @type bool |
|
160 """ |
|
161 self.jsCheckBox.setChecked(enable) |
|
162 |
|
163 settings = self.previewView.settings() |
|
164 settings.setAttribute(settings.WebAttribute.JavascriptEnabled, enable) |
|
165 |
|
166 self.processEditor() |
|
167 |
138 |
168 @pyqtSlot(bool) |
139 @pyqtSlot(bool) |
169 def on_ssiCheckBox_clicked(self, checked): |
140 def on_ssiCheckBox_clicked(self, checked): |
170 """ |
141 """ |
171 Private slot to enable/disable SSI. |
142 Private slot to enable/disable SSI. |