9 |
9 |
10 from __future__ import unicode_literals |
10 from __future__ import unicode_literals |
11 |
11 |
12 from PyQt5.QtCore import pyqtSignal, QByteArray, QBuffer, QIODevice, \ |
12 from PyQt5.QtCore import pyqtSignal, QByteArray, QBuffer, QIODevice, \ |
13 QTextStream, QUrlQuery |
13 QTextStream, QUrlQuery |
|
14 from PyQt5.QtWidgets import qApp |
14 from PyQt5.QtWebEngineCore import QWebEngineUrlSchemeHandler |
15 from PyQt5.QtWebEngineCore import QWebEngineUrlSchemeHandler |
15 |
16 |
16 from ..Tools.WebBrowserTools import readAllFileContents |
17 from ..Tools.WebBrowserTools import readAllFileContents |
17 |
18 |
18 class EricSchemeHandler(QWebEngineUrlSchemeHandler): |
19 class EricSchemeHandler(QWebEngineUrlSchemeHandler): |
19 """ |
20 """ |
20 Class implementing a scheme handler for the eric: scheme. |
21 Class implementing a scheme handler for the eric: scheme. |
21 """ |
22 """ |
22 SupportedPages = [ |
23 SupportedPages = [ |
23 "adblock", # error page for URLs blocked by AdBlock |
24 "adblock", # error page for URLs blocked by AdBlock |
|
25 "home", "start", "startpage", # eric home page |
24 ] |
26 ] |
25 |
27 |
26 def __init__(self, parent=None): |
28 def __init__(self, parent=None): |
27 """ |
29 """ |
28 Constructor |
30 Constructor |
99 stream = QTextStream(self.__buffer) |
101 stream = QTextStream(self.__buffer) |
100 stream.setCodec("utf-8") |
102 stream.setCodec("utf-8") |
101 |
103 |
102 if self.__pageName == "adblock": |
104 if self.__pageName == "adblock": |
103 stream << self.__adBlockPage() |
105 stream << self.__adBlockPage() |
|
106 elif self.__pageName in ["home", "start", "startpage"]: |
|
107 stream << self.__startPage() |
104 |
108 |
105 stream.flush() |
109 stream.flush() |
106 self.__buffer.reset() |
110 self.__buffer.reset() |
107 self.__loaded = True |
111 self.__loaded = True |
108 |
112 |
152 "@IMAGE@", "qrc:icons/adBlockPlus64.png") |
156 "@IMAGE@", "qrc:icons/adBlockPlus64.png") |
153 page = page.replace("@TITLE@", title) |
157 page = page.replace("@TITLE@", title) |
154 page = page.replace("@MESSAGE@", message) |
158 page = page.replace("@MESSAGE@", message) |
155 |
159 |
156 return page |
160 return page |
|
161 |
|
162 def __startPage(self): |
|
163 """ |
|
164 Private method to build the Start page. |
|
165 |
|
166 @return built Start page |
|
167 @rtype str |
|
168 """ |
|
169 page = readAllFileContents(":/html/startPage.html") |
|
170 page = page.replace("@FAVICON@", "qrc:icons/ericWeb16.png") |
|
171 page = page.replace("@IMAGE@", "qrc:icons/ericWeb32.png") |
|
172 page = page.replace("@TITLE@", |
|
173 self.tr("Welcome to eric6 Web Browser!")) |
|
174 page = page.replace("@ERIC_LINK@", self.tr("About eric6")) |
|
175 page = page.replace("@HEADER_TITLE@", self.tr("eric6 Web Browser")) |
|
176 page = page.replace("@SUBMIT@", self.tr("Search!")) |
|
177 if qApp.isLeftToRight(): |
|
178 ltr = "LTR" |
|
179 else: |
|
180 ltr = "RTL" |
|
181 page = page.replace("@QT_LAYOUT_DIRECTION@", ltr) |
|
182 |
|
183 return page |