Helpviewer/HelpBrowserWV.py

changeset 2403
e3d7a861547c
parent 2359
ef81d2d0a031
child 2432
b1a2f9054b28
equal deleted inserted replaced
2402:304fcefd3b04 2403:e3d7a861547c
25 from E5Gui import E5MessageBox, E5FileDialog 25 from E5Gui import E5MessageBox, E5FileDialog
26 26
27 import Preferences 27 import Preferences
28 import UI.PixmapCache 28 import UI.PixmapCache
29 29
30 from .Bookmarks.AddBookmarkDialog import AddBookmarkDialog
31 from .Bookmarks.BookmarkNode import BookmarkNode
32 try: 30 try:
33 from PyQt4.QtNetwork import QSslCertificate 31 from PyQt4.QtNetwork import QSslCertificate
34 from E5Network.E5SslInfoDialog import E5SslInfoDialog 32 from E5Network.E5SslInfoDialog import E5SslInfoDialog
35 SSL_AVAILABLE = True 33 SSL_AVAILABLE = True
36 except ImportError: 34 except ImportError:
37 SSL_AVAILABLE = False 35 SSL_AVAILABLE = False
38 import Helpviewer.HelpWindow
39 from .HelpLanguagesDialog import HelpLanguagesDialog
40
41 from .Network.NetworkAccessManagerProxy import NetworkAccessManagerProxy
42
43 from .OpenSearch.OpenSearchEngineAction import OpenSearchEngineAction
44 from .OpenSearch.OpenSearchEngine import OpenSearchEngine
45
46 from .WebPlugins.WebPluginFactory import WebPluginFactory
47
48 from .AdBlock.AdBlockPage import AdBlockedPageEntry
49 36
50 ########################################################################################## 37 ##########################################################################################
51 38
52 39
53 class JavaScriptExternalObject(QObject): 40 class JavaScriptExternalObject(QObject):
173 self.setPluginFactory(self.webPluginFactory()) 160 self.setPluginFactory(self.webPluginFactory())
174 161
175 self.__lastRequest = None 162 self.__lastRequest = None
176 self.__lastRequestType = QWebPage.NavigationTypeOther 163 self.__lastRequestType = QWebPage.NavigationTypeOther
177 164
165 import Helpviewer.HelpWindow
166 from .Network.NetworkAccessManagerProxy import NetworkAccessManagerProxy
178 self.__proxy = NetworkAccessManagerProxy(self) 167 self.__proxy = NetworkAccessManagerProxy(self)
179 self.__proxy.setWebPage(self) 168 self.__proxy.setWebPage(self)
180 self.__proxy.setPrimaryNetworkAccessManager( 169 self.__proxy.setPrimaryNetworkAccessManager(
181 Helpviewer.HelpWindow.HelpWindow.networkAccessManager()) 170 Helpviewer.HelpWindow.HelpWindow.networkAccessManager())
182 self.setNetworkAccessManager(self.__proxy) 171 self.setNetworkAccessManager(self.__proxy)
377 Public slot to add an AdBlock rule to the page. 366 Public slot to add an AdBlock rule to the page.
378 367
379 @param rule AdBlock rule to add (AdBlockRule) 368 @param rule AdBlock rule to add (AdBlockRule)
380 @param url URL that matched the rule (QUrl) 369 @param url URL that matched the rule (QUrl)
381 """ 370 """
371 from .AdBlock.AdBlockPage import AdBlockedPageEntry
382 entry = AdBlockedPageEntry(rule, url) 372 entry = AdBlockedPageEntry(rule, url)
383 if entry not in self.__adBlockedEntries: 373 if entry not in self.__adBlockedEntries:
384 self.__adBlockedEntries.append(entry) 374 self.__adBlockedEntries.append(entry)
385 375
386 def getAdBlockedPageEntries(self): 376 def getAdBlockedPageEntries(self):
425 Protected method to determine the user agent for the given URL. 415 Protected method to determine the user agent for the given URL.
426 416
427 @param url URL to determine user agent for (QUrl) 417 @param url URL to determine user agent for (QUrl)
428 @return user agent string (string) 418 @return user agent string (string)
429 """ 419 """
420 import Helpviewer.HelpWindow
430 agent = Helpviewer.HelpWindow.HelpWindow.userAgentsManager().userAgentForUrl(url) 421 agent = Helpviewer.HelpWindow.HelpWindow.userAgentsManager().userAgentForUrl(url)
431 if agent == "": 422 if agent == "":
432 # no agent string specified for the given host -> use global one 423 # no agent string specified for the given host -> use global one
433 agent = Preferences.getHelp("UserAgent") 424 agent = Preferences.getHelp("UserAgent")
434 if agent == "": 425 if agent == "":
467 if reply.error() == QNetworkReply.NoError and \ 458 if reply.error() == QNetworkReply.NoError and \
468 mainFrameRequest and \ 459 mainFrameRequest and \
469 reply.url() == self.mainFrame().url(): 460 reply.url() == self.mainFrame().url():
470 modified = reply.header(QNetworkRequest.LastModifiedHeader) 461 modified = reply.header(QNetworkRequest.LastModifiedHeader)
471 if modified and modified.isValid(): 462 if modified and modified.isValid():
463 import Helpviewer.HelpWindow
472 manager = Helpviewer.HelpWindow.HelpWindow.bookmarksManager() 464 manager = Helpviewer.HelpWindow.HelpWindow.bookmarksManager()
465 from .Bookmarks.BookmarkNode import BookmarkNode
473 for bookmark in manager.bookmarksForUrl(reply.url()): 466 for bookmark in manager.bookmarksForUrl(reply.url()):
474 manager.setTimestamp(bookmark, BookmarkNode.TsModified, modified) 467 manager.setTimestamp(bookmark, BookmarkNode.TsModified, modified)
475 468
476 def getSslInfo(self): 469 def getSslInfo(self):
477 """ 470 """
536 Class method to get a reference to the web plug-in factory instance. 529 Class method to get a reference to the web plug-in factory instance.
537 530
538 @return reference to the web plug-in factory instance (WebPluginFactory 531 @return reference to the web plug-in factory instance (WebPluginFactory
539 """ 532 """
540 if cls._webPluginFactory is None: 533 if cls._webPluginFactory is None:
534 from .WebPlugins.WebPluginFactory import WebPluginFactory
541 cls._webPluginFactory = WebPluginFactory() 535 cls._webPluginFactory = WebPluginFactory()
542 536
543 return cls._webPluginFactory 537 return cls._webPluginFactory
544 538
545 def event(self, evt): 539 def event(self, evt):
603 self.setWhatsThis(self.trUtf8( 597 self.setWhatsThis(self.trUtf8(
604 """<b>Help Window</b>""" 598 """<b>Help Window</b>"""
605 """<p>This window displays the selected help information.</p>""" 599 """<p>This window displays the selected help information.</p>"""
606 )) 600 ))
607 601
602 import Helpviewer.HelpWindow
608 self.__speedDial = Helpviewer.HelpWindow.HelpWindow.speedDial() 603 self.__speedDial = Helpviewer.HelpWindow.HelpWindow.speedDial()
609 604
610 self.__page = HelpWebPage(self) 605 self.__page = HelpWebPage(self)
611 self.setPage(self.__page) 606 self.setPage(self.__page)
612 607
1174 menu.addAction(self.mw.findAct) 1169 menu.addAction(self.mw.findAct)
1175 menu.addSeparator() 1170 menu.addSeparator()
1176 if self.selectedText(): 1171 if self.selectedText():
1177 self.__searchMenu = menu.addMenu(self.trUtf8("Search with...")) 1172 self.__searchMenu = menu.addMenu(self.trUtf8("Search with..."))
1178 1173
1174 from .OpenSearch.OpenSearchEngineAction import OpenSearchEngineAction
1179 engineNames = self.mw.openSearchManager().allEnginesNames() 1175 engineNames = self.mw.openSearchManager().allEnginesNames()
1180 for engineName in engineNames: 1176 for engineName in engineNames:
1181 engine = self.mw.openSearchManager().engine(engineName) 1177 engine = self.mw.openSearchManager().engine(engineName)
1182 act = OpenSearchEngineAction(engine, self.__searchMenu) 1178 act = OpenSearchEngineAction(engine, self.__searchMenu)
1183 act.setData(engineName) 1179 act.setData(engineName)
1184 self.__searchMenu.addAction(act) 1180 self.__searchMenu.addAction(act)
1185 self.__searchMenu.triggered.connect(self.__searchRequested) 1181 self.__searchMenu.triggered.connect(self.__searchRequested)
1186 1182
1187 menu.addSeparator() 1183 menu.addSeparator()
1188 1184
1185 from .HelpLanguagesDialog import HelpLanguagesDialog
1189 languages = Preferences.toList( 1186 languages = Preferences.toList(
1190 Preferences.Prefs.settings.value("Help/AcceptLanguages", 1187 Preferences.Prefs.settings.value("Help/AcceptLanguages",
1191 HelpLanguagesDialog.defaultAcceptLanguages())) 1188 HelpLanguagesDialog.defaultAcceptLanguages()))
1192 if languages: 1189 if languages:
1193 language = languages[0] 1190 language = languages[0]
1257 act = self.sender() 1254 act = self.sender()
1258 url = act.data() 1255 url = act.data()
1259 if url.isEmpty(): 1256 if url.isEmpty():
1260 return 1257 return
1261 1258
1259 from .Bookmarks.AddBookmarkDialog import AddBookmarkDialog
1262 dlg = AddBookmarkDialog() 1260 dlg = AddBookmarkDialog()
1263 dlg.setUrl(bytes(url.toEncoded()).decode()) 1261 dlg.setUrl(bytes(url.toEncoded()).decode())
1264 dlg.exec_() 1262 dlg.exec_()
1265 1263
1266 def __sendLink(self): 1264 def __sendLink(self):
1310 1308
1311 def __blockImage(self): 1309 def __blockImage(self):
1312 """ 1310 """
1313 Private slot to add a block rule for an image URL. 1311 Private slot to add a block rule for an image URL.
1314 """ 1312 """
1313 import Helpviewer.HelpWindow
1315 act = self.sender() 1314 act = self.sender()
1316 url = act.data() 1315 url = act.data()
1317 dlg = Helpviewer.HelpWindow.HelpWindow.adBlockManager().showDialog() 1316 dlg = Helpviewer.HelpWindow.HelpWindow.adBlockManager().showDialog()
1318 dlg.addCustomRule(url) 1317 dlg.addCustomRule(url)
1319 1318
1457 QLineEdit.Normal, 1456 QLineEdit.Normal,
1458 engineName) 1457 engineName)
1459 if not ok: 1458 if not ok:
1460 return 1459 return
1461 1460
1461 from .OpenSearch.OpenSearchEngine import OpenSearchEngine
1462 engine = OpenSearchEngine() 1462 engine = OpenSearchEngine()
1463 engine.setName(engineName) 1463 engine.setName(engineName)
1464 engine.setDescription(engineName) 1464 engine.setDescription(engineName)
1465 engine.setSearchUrlTemplate(searchUrl.toString()) 1465 engine.setSearchUrlTemplate(searchUrl.toString())
1466 engine.setImage(self.icon().pixmap(16, 16).toImage()) 1466 engine.setImage(self.icon().pixmap(16, 16).toImage())
1475 1475
1476 def addBookmark(self): 1476 def addBookmark(self):
1477 """ 1477 """
1478 Public slot to bookmark the current page. 1478 Public slot to bookmark the current page.
1479 """ 1479 """
1480 from .Bookmarks.AddBookmarkDialog import AddBookmarkDialog
1480 dlg = AddBookmarkDialog() 1481 dlg = AddBookmarkDialog()
1481 dlg.setUrl(bytes(self.url().toEncoded()).decode()) 1482 dlg.setUrl(bytes(self.url().toEncoded()).decode())
1482 dlg.setTitle(self.title()) 1483 dlg.setTitle(self.title())
1483 meta = self.page().mainFrame().metaData() 1484 meta = self.page().mainFrame().metaData()
1484 if "description" in meta: 1485 if "description" in meta:

eric ide

mercurial