WebBrowser/Network/EricSchemeHandler.py

branch
QtWebEngine
changeset 4861
d419f153925d
parent 4859
36c4b21c9f7b
child 4868
985d275502c8
equal deleted inserted replaced
4860:0a44aff88bfa 4861:d419f153925d
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

eric ide

mercurial