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] |
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: |