4 # |
4 # |
5 |
5 |
6 """ |
6 """ |
7 Module implementing a scheme handler for the eric: scheme. |
7 Module implementing a scheme handler for the eric: scheme. |
8 """ |
8 """ |
9 |
|
10 |
9 |
11 from PyQt5.QtCore import ( |
10 from PyQt5.QtCore import ( |
12 pyqtSignal, QByteArray, QBuffer, QIODevice, QUrlQuery, QMutex, QMutexLocker |
11 pyqtSignal, QByteArray, QBuffer, QIODevice, QUrlQuery, QMutex, QMutexLocker |
13 ) |
12 ) |
14 from PyQt5.QtWidgets import qApp |
13 from PyQt5.QtWidgets import qApp |
15 from PyQt5.QtWebEngineCore import QWebEngineUrlSchemeHandler |
14 from PyQt5.QtWebEngineCore import QWebEngineUrlSchemeHandler |
16 |
15 |
17 from ..Tools.WebBrowserTools import readAllFileContents |
16 from ..Tools.WebBrowserTools import ( |
|
17 getHtmlPage, getJavascript, pixmapFileToDataUrl |
|
18 ) |
18 |
19 |
19 |
20 |
20 class EricSchemeHandler(QWebEngineUrlSchemeHandler): |
21 class EricSchemeHandler(QWebEngineUrlSchemeHandler): |
21 """ |
22 """ |
22 Class implementing a scheme handler for the eric: scheme. |
23 Class implementing a scheme handler for the eric: scheme. |
161 subscription = query.queryItemValue("subscription") |
162 subscription = query.queryItemValue("subscription") |
162 title = self.tr("Content blocked by AdBlock Plus") |
163 title = self.tr("Content blocked by AdBlock Plus") |
163 message = self.tr( |
164 message = self.tr( |
164 "Blocked by rule: <i>{0} ({1})</i>").format(rule, subscription) |
165 "Blocked by rule: <i>{0} ({1})</i>").format(rule, subscription) |
165 |
166 |
166 # TODO: convert this to not use .qrc |
167 page = getHtmlPage("adblockPage.html") |
167 page = readAllFileContents(":/html/adblockPage.html") |
168 page = page.replace( |
168 page = page.replace( |
169 "@FAVICON@", pixmapFileToDataUrl("adBlockPlus16.png", True)) |
169 "@FAVICON@", "qrc:icons/adBlockPlus16.png") |
170 page = page.replace( |
170 page = page.replace( |
171 "@IMAGE@", pixmapFileToDataUrl("adBlockPlus64.png", True)) |
171 "@IMAGE@", "qrc:icons/adBlockPlus64.png") |
|
172 page = page.replace("@TITLE@", title) |
172 page = page.replace("@TITLE@", title) |
173 page = page.replace("@MESSAGE@", message) |
173 page = page.replace("@MESSAGE@", message) |
174 |
174 |
175 return page |
175 return page |
176 |
176 |
179 Private method to build the Start page. |
179 Private method to build the Start page. |
180 |
180 |
181 @return built Start page |
181 @return built Start page |
182 @rtype str |
182 @rtype str |
183 """ |
183 """ |
184 # TODO: convert this to not use .qrc |
184 page = getHtmlPage("startPage.html") |
185 page = readAllFileContents(":/html/startPage.html") |
185 page = page.replace( |
186 page = page.replace("@FAVICON@", "qrc:icons/ericWeb16.png") |
186 "@FAVICON@", pixmapFileToDataUrl("ericWeb16.png", True)) |
187 page = page.replace("@IMAGE@", "qrc:icons/ericWeb32.png") |
187 page = page.replace( |
188 page = page.replace("@TITLE@", |
188 "@IMAGE@", pixmapFileToDataUrl("ericWeb32.png", True)) |
189 self.tr("Welcome to eric6 Web Browser!")) |
189 page = page.replace( |
|
190 "@TITLE@", self.tr("Welcome to eric6 Web Browser!")) |
190 page = page.replace("@ERIC_LINK@", self.tr("About eric6")) |
191 page = page.replace("@ERIC_LINK@", self.tr("About eric6")) |
191 page = page.replace("@HEADER_TITLE@", self.tr("eric6 Web Browser")) |
192 page = page.replace("@HEADER_TITLE@", self.tr("eric6 Web Browser")) |
192 page = page.replace("@SUBMIT@", self.tr("Search!")) |
193 page = page.replace("@SUBMIT@", self.tr("Search!")) |
193 if qApp.isLeftToRight(): |
194 if qApp.isLeftToRight(): |
194 ltr = "LTR" |
195 ltr = "LTR" |
200 |
201 |
201 def __speedDialPage(self): |
202 def __speedDialPage(self): |
202 """ |
203 """ |
203 Private method to create the Speeddial page. |
204 Private method to create the Speeddial page. |
204 |
205 |
205 @return prepared speeddial page (QByteArray) |
206 @return prepared speeddial page |
206 """ |
207 @rtype str |
207 # TODO: convert this to not use .qrc |
208 """ |
208 if not self._speedDialPage: |
209 if not self._speedDialPage: |
209 page = readAllFileContents(":/html/speeddialPage.html") |
210 page = getHtmlPage("speeddialPage.html") |
210 page = page.replace("@FAVICON@", "qrc:icons/ericWeb16.png") |
211 page = page.replace( |
211 page = page.replace("@IMG_PLUS@", "qrc:icons/plus.png") |
212 "@FAVICON@", pixmapFileToDataUrl("ericWeb16.png", True)) |
212 page = page.replace("@IMG_CLOSE@", "qrc:icons/close.png") |
213 page = page.replace( |
213 page = page.replace("@IMG_EDIT@", "qrc:icons/edit.png") |
214 "@IMG_PLUS@", pixmapFileToDataUrl("plus.png", True)) |
214 page = page.replace("@IMG_RELOAD@", "qrc:icons/reload.png") |
215 page = page.replace( |
215 page = page.replace("@IMG_SETTINGS@", "qrc:icons/setting.png") |
216 "@IMG_CLOSE@", pixmapFileToDataUrl("close.png", True)) |
216 page = page.replace("@LOADING-IMG@", "qrc:icons/loading.gif") |
217 page = page.replace( |
217 page = page.replace("@BOX-BORDER@", |
218 "@IMG_EDIT@", pixmapFileToDataUrl("edit.png", True)) |
218 "qrc:icons/box-border-small.png") |
219 page = page.replace( |
|
220 "@IMG_RELOAD@", pixmapFileToDataUrl("reload.png", True)) |
|
221 page = page.replace( |
|
222 "@IMG_SETTINGS@", pixmapFileToDataUrl("setting.png", True)) |
|
223 page = page.replace( |
|
224 "@LOADING-IMG@", pixmapFileToDataUrl("loading.gif", True)) |
|
225 page = page.replace( |
|
226 "@BOX-BORDER@", |
|
227 pixmapFileToDataUrl("box-border-small.png", True)) |
219 |
228 |
220 page = page.replace("@JQUERY@", "qrc:javascript/jquery.js") |
229 page = page.replace("@JQUERY@", getJavascript("jquery.js")) |
221 page = page.replace("@JQUERY-UI@", "qrc:javascript/jquery-ui.js") |
230 page = page.replace("@JQUERY-UI@", getJavascript("jquery-ui.js")) |
222 |
231 |
223 page = page.replace("@SITE-TITLE@", self.tr("Speed Dial")) |
232 page = page.replace("@SITE-TITLE@", self.tr("Speed Dial")) |
224 page = page.replace("@URL@", self.tr("URL")) |
233 page = page.replace("@URL@", self.tr("URL")) |
225 page = page.replace("@TITLE@", self.tr("Title")) |
234 page = page.replace("@TITLE@", self.tr("Title")) |
226 page = page.replace("@APPLY@", self.tr("Apply")) |
235 page = page.replace("@APPLY@", self.tr("Apply")) |