6626:9a9e485949a4 | 6627:acd62f281a99 |
---|---|
16 import os | 16 import os |
17 import shutil | 17 import shutil |
18 import sys | 18 import sys |
19 | 19 |
20 from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QByteArray, QSize, QTimer, \ | 20 from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QByteArray, QSize, QTimer, \ |
21 QUrl, QTextCodec, QProcess, QEvent | 21 QUrl, QTextCodec, QProcess, QEvent, QFileInfo |
22 from PyQt5.QtGui import QDesktopServices, QKeySequence, QFont, QFontMetrics | 22 from PyQt5.QtGui import QDesktopServices, QKeySequence, QFont, QFontMetrics |
23 from PyQt5.QtWidgets import QWidget, QVBoxLayout, QSizePolicy, QDockWidget, \ | 23 from PyQt5.QtWidgets import QWidget, QVBoxLayout, QSizePolicy, QDockWidget, \ |
24 QComboBox, QLabel, QMenu, QLineEdit, QApplication, \ | 24 QComboBox, QLabel, QMenu, QLineEdit, QApplication, \ |
25 QWhatsThis, QDialog, QHBoxLayout, QProgressBar, QInputDialog, QAction | 25 QWhatsThis, QDialog, QHBoxLayout, QProgressBar, QInputDialog, QAction |
26 from PyQt5.QtWebEngineWidgets import QWebEngineSettings, QWebEnginePage, \ | 26 from PyQt5.QtWebEngineWidgets import QWebEngineSettings, QWebEnginePage, \ |
114 _performingStartup = True | 114 _performingStartup = True |
115 _performingShutdown = False | 115 _performingShutdown = False |
116 _lastActiveWindow = None | 116 _lastActiveWindow = None |
117 | 117 |
118 def __init__(self, home, path, parent, name, | 118 def __init__(self, home, path, parent, name, |
119 initShortcutsOnly=False, searchWord=None, | 119 searchWord=None, private=False, qthelp=False, settingsDir="", |
120 private=False, qthelp=False, settingsDir="", | |
121 restoreSession=False, single=False, saname=""): | 120 restoreSession=False, single=False, saname=""): |
122 """ | 121 """ |
123 Constructor | 122 Constructor |
124 | 123 |
125 @param home the URL to be shown | 124 @param home the URL to be shown |
128 @type str | 127 @type str |
129 @param parent parent widget of this window | 128 @param parent parent widget of this window |
130 @type QWidget | 129 @type QWidget |
131 @param name name of this window | 130 @param name name of this window |
132 @type str | 131 @type str |
133 @keyparam initShortcutsOnly flag indicating to just initialize the | |
134 keyboard shortcuts | |
135 @type bool | |
136 @keyparam searchWord word to search for | 132 @keyparam searchWord word to search for |
137 @type str | 133 @type str |
138 @keyparam private flag indicating a private browsing window | 134 @keyparam private flag indicating a private browsing window |
139 @type bool | 135 @type bool |
140 @keyparam qthelp flag indicating to enable the QtHelp support | 136 @keyparam qthelp flag indicating to enable the QtHelp support |
156 self.setWindowTitle(self.tr("eric6 Web Browser (Private Mode)")) | 152 self.setWindowTitle(self.tr("eric6 Web Browser (Private Mode)")) |
157 else: | 153 else: |
158 self.setWindowTitle(self.tr("eric6 Web Browser")) | 154 self.setWindowTitle(self.tr("eric6 Web Browser")) |
159 | 155 |
160 self.__settingsDir = settingsDir | 156 self.__settingsDir = settingsDir |
161 self.__initShortcutsOnly = initShortcutsOnly | |
162 self.setWindowIcon(UI.PixmapCache.getIcon("ericWeb.png")) | 157 self.setWindowIcon(UI.PixmapCache.getIcon("ericWeb.png")) |
163 | 158 |
164 self.__mHistory = [] | 159 self.__mHistory = [] |
165 self.__lastConfigurationPageName = "" | 160 self.__lastConfigurationPageName = "" |
166 | 161 |
169 self.__shortcutsDialog = None | 164 self.__shortcutsDialog = None |
170 | 165 |
171 self.__eventMouseButtons = Qt.NoButton | 166 self.__eventMouseButtons = Qt.NoButton |
172 self.__eventKeyboardModifiers = Qt.NoModifier | 167 self.__eventKeyboardModifiers = Qt.NoModifier |
173 | 168 |
174 if self.__initShortcutsOnly: | 169 if qVersionTuple() < (5, 11, 0) and \ |
175 WebBrowserWindow.setUseQtHelp(qthelp or bool(searchWord)) | 170 Preferences.getWebBrowser("WebInspectorEnabled"): |
176 self.__initActions() | 171 os.environ["QTWEBENGINE_REMOTE_DEBUGGING"] = \ |
172 str(Preferences.getWebBrowser("WebInspectorPort")) | |
173 | |
174 WebBrowserWindow.setUseQtHelp(qthelp or bool(searchWord)) | |
175 | |
176 self.webProfile(private) | |
177 self.networkManager() | |
178 | |
179 self.__htmlFullScreen = False | |
180 self.__windowStates = Qt.WindowNoState | |
181 self.__isClosing = False | |
182 | |
183 from .SearchWidget import SearchWidget | |
184 from .QtHelp.HelpTocWidget import HelpTocWidget | |
185 from .QtHelp.HelpIndexWidget import HelpIndexWidget | |
186 from .QtHelp.HelpSearchWidget import HelpSearchWidget | |
187 from .WebBrowserView import WebBrowserView | |
188 from .WebBrowserTabWidget import WebBrowserTabWidget | |
189 from .AdBlock.AdBlockIcon import AdBlockIcon | |
190 from .StatusBar.JavaScriptIcon import JavaScriptIcon | |
191 from .StatusBar.ImagesIcon import ImagesIcon | |
192 from .VirusTotal.VirusTotalApi import VirusTotalAPI | |
193 from .Navigation.NavigationBar import NavigationBar | |
194 from .Navigation.NavigationContainer import NavigationContainer | |
195 from .Bookmarks.BookmarksToolBar import BookmarksToolBar | |
196 | |
197 self.setStyle(Preferences.getUI("Style"), | |
198 Preferences.getUI("StyleSheet")) | |
199 | |
200 # initialize some SSL stuff | |
201 from E5Network.E5SslUtilities import initSSL | |
202 initSSL() | |
203 | |
204 if WebBrowserWindow._useQtHelp: | |
205 self.__helpEngine = QHelpEngine( | |
206 WebBrowserWindow.getQtHelpCollectionFileName(), | |
207 self) | |
208 self.__removeOldDocumentation() | |
209 self.__helpEngine.warning.connect(self.__warning) | |
177 else: | 210 else: |
178 if qVersionTuple() < (5, 11, 0) and \ | 211 self.__helpEngine = None |
179 Preferences.getWebBrowser("WebInspectorEnabled"): | 212 self.__helpInstaller = None |
180 os.environ["QTWEBENGINE_REMOTE_DEBUGGING"] = \ | 213 |
181 str(Preferences.getWebBrowser("WebInspectorPort")) | 214 self.__zoomWidget = E5ZoomWidget( |
215 UI.PixmapCache.getPixmap("zoomOut.png"), | |
216 UI.PixmapCache.getPixmap("zoomIn.png"), | |
217 UI.PixmapCache.getPixmap("zoomReset.png"), self) | |
218 self.statusBar().addPermanentWidget(self.__zoomWidget) | |
219 self.__zoomWidget.setMapping( | |
220 WebBrowserView.ZoomLevels, WebBrowserView.ZoomLevelDefault) | |
221 self.__zoomWidget.valueChanged.connect(self.__zoomValueChanged) | |
222 | |
223 self.__tabWidget = WebBrowserTabWidget(self) | |
224 self.__tabWidget.currentChanged[int].connect(self.__currentChanged) | |
225 self.__tabWidget.titleChanged.connect(self.__titleChanged) | |
226 self.__tabWidget.showMessage.connect(self.statusBar().showMessage) | |
227 self.__tabWidget.browserZoomValueChanged.connect( | |
228 self.__zoomWidget.setValue) | |
229 self.__tabWidget.browserClosed.connect(self.webBrowserClosed) | |
230 self.__tabWidget.browserOpened.connect(self.webBrowserOpened) | |
231 | |
232 self.__searchWidget = SearchWidget(self, self) | |
233 | |
234 self.__setIconDatabasePath() | |
235 | |
236 bookmarksModel = self.bookmarksManager().bookmarksModel() | |
237 self.__bookmarksToolBar = BookmarksToolBar(self, bookmarksModel, | |
238 self) | |
239 self.__bookmarksToolBar.setIconSize(UI.Config.ToolBarIconSize) | |
240 self.__bookmarksToolBar.openUrl.connect(self.openUrl) | |
241 self.__bookmarksToolBar.newTab.connect(self.openUrlNewTab) | |
242 self.__bookmarksToolBar.newWindow.connect(self.openUrlNewWindow) | |
243 | |
244 self.__navigationBar = NavigationBar(self) | |
245 | |
246 self.__navigationContainer = NavigationContainer(self) | |
247 self.__navigationContainer.addWidget(self.__navigationBar) | |
248 self.__navigationContainer.addWidget(self.__bookmarksToolBar) | |
249 | |
250 centralWidget = QWidget() | |
251 layout = QVBoxLayout() | |
252 layout.setContentsMargins(1, 1, 1, 1) | |
253 layout.setSpacing(0) | |
254 layout.addWidget(self.__navigationContainer) | |
255 layout.addWidget(self.__tabWidget) | |
256 layout.addWidget(self.__searchWidget) | |
257 self.__tabWidget.setSizePolicy( | |
258 QSizePolicy.Preferred, QSizePolicy.Expanding) | |
259 centralWidget.setLayout(layout) | |
260 self.setCentralWidget(centralWidget) | |
261 self.__searchWidget.hide() | |
262 | |
263 if WebBrowserWindow._useQtHelp: | |
264 # setup the TOC widget | |
265 self.__tocWindow = HelpTocWidget(self.__helpEngine) | |
266 self.__tocDock = QDockWidget(self.tr("Contents"), self) | |
267 self.__tocDock.setObjectName("TocWindow") | |
268 self.__tocDock.setWidget(self.__tocWindow) | |
269 self.addDockWidget(Qt.LeftDockWidgetArea, self.__tocDock) | |
182 | 270 |
183 WebBrowserWindow.setUseQtHelp(qthelp or bool(searchWord)) | 271 # setup the index widget |
272 self.__indexWindow = HelpIndexWidget(self.__helpEngine) | |
273 self.__indexDock = QDockWidget(self.tr("Index"), self) | |
274 self.__indexDock.setObjectName("IndexWindow") | |
275 self.__indexDock.setWidget(self.__indexWindow) | |
276 self.addDockWidget(Qt.LeftDockWidgetArea, self.__indexDock) | |
184 | 277 |
185 self.webProfile(private) | 278 # setup the search widget |
186 self.networkManager() | 279 self.__searchWord = searchWord |
280 self.__indexing = False | |
281 self.__indexingProgress = None | |
282 self.__searchEngine = self.__helpEngine.searchEngine() | |
283 self.__searchEngine.indexingStarted.connect( | |
284 self.__indexingStarted) | |
285 self.__searchEngine.indexingFinished.connect( | |
286 self.__indexingFinished) | |
287 self.__searchWindow = HelpSearchWidget(self.__searchEngine) | |
288 self.__searchDock = QDockWidget(self.tr("Search"), self) | |
289 self.__searchDock.setObjectName("SearchWindow") | |
290 self.__searchDock.setWidget(self.__searchWindow) | |
291 self.addDockWidget(Qt.LeftDockWidgetArea, self.__searchDock) | |
292 | |
293 # JavaScript Console window | |
294 from .WebBrowserJavaScriptConsole import \ | |
295 WebBrowserJavaScriptConsole | |
296 self.__javascriptConsole = WebBrowserJavaScriptConsole(self) | |
297 self.__javascriptConsoleDock = QDockWidget( | |
298 self.tr("JavaScript Console")) | |
299 self.__javascriptConsoleDock.setObjectName("JavascriptConsole") | |
300 self.__javascriptConsoleDock.setAllowedAreas( | |
301 Qt.BottomDockWidgetArea | Qt.TopDockWidgetArea) | |
302 self.__javascriptConsoleDock.setWidget(self.__javascriptConsole) | |
303 self.addDockWidget(Qt.BottomDockWidgetArea, | |
304 self.__javascriptConsoleDock) | |
305 | |
306 if Preferences.getWebBrowser("SaveGeometry"): | |
307 g = Preferences.getGeometry("WebBrowserGeometry") | |
308 else: | |
309 g = QByteArray() | |
310 if g.isEmpty(): | |
311 s = QSize(800, 800) | |
312 self.resize(s) | |
313 else: | |
314 self.restoreGeometry(g) | |
315 | |
316 WebBrowserWindow.BrowserWindows.append(self) | |
317 | |
318 self.__initWebEngineSettings() | |
319 | |
320 # initialize some of our class objects | |
321 self.passwordManager() | |
322 self.historyManager() | |
323 self.greaseMonkeyManager() | |
324 | |
325 # initialize the actions | |
326 self.__initActions() | |
327 | |
328 # initialize the menus | |
329 self.__initMenus() | |
330 self.__initSuperMenu() | |
331 if Preferences.getWebBrowser("MenuBarVisible"): | |
332 self.__navigationBar.superMenuButton().hide() | |
333 else: | |
334 self.menuBar().hide() | |
335 | |
336 # save references to toolbars in order to hide them | |
337 # when going full screen | |
338 self.__toolbars = {} | |
339 # initialize toolbars | |
340 if Preferences.getWebBrowser("ShowToolbars"): | |
341 self.__initToolbars() | |
342 self.__bookmarksToolBar.setVisible( | |
343 Preferences.getWebBrowser("BookmarksToolBarVisible")) | |
344 | |
345 syncMgr = self.syncManager() | |
346 syncMgr.syncMessage.connect(self.statusBar().showMessage) | |
347 syncMgr.syncError.connect(self.statusBar().showMessage) | |
348 | |
349 restoreSessionData = {} | |
350 if WebBrowserWindow._performingStartup and not home and \ | |
351 not WebBrowserWindow.isPrivate(): | |
352 startupBehavior = Preferences.getWebBrowser("StartupBehavior") | |
353 if not private and startupBehavior in [3, 4]: | |
354 if startupBehavior == 3: | |
355 # restore last session | |
356 restoreSessionFile = \ | |
357 self.sessionManager().lastActiveSessionFile() | |
358 elif startupBehavior == 4: | |
359 # select session | |
360 restoreSessionFile = \ | |
361 self.sessionManager().selectSession() | |
362 sessionData = \ | |
363 self.sessionManager().readSessionFromFile( | |
364 restoreSessionFile) | |
365 if self.sessionManager().isValidSession(sessionData): | |
366 restoreSessionData = sessionData | |
367 restoreSession = True | |
368 else: | |
369 if Preferences.getWebBrowser("StartupBehavior") == 0: | |
370 home = "about:blank" | |
371 elif Preferences.getWebBrowser("StartupBehavior") == 1: | |
372 home = Preferences.getWebBrowser("HomePage") | |
373 elif Preferences.getWebBrowser("StartupBehavior") == 2: | |
374 home = "eric:speeddial" | |
375 | |
376 if not restoreSession: | |
377 self.__tabWidget.newBrowser(QUrl.fromUserInput(home)) | |
378 self.__tabWidget.currentBrowser().setFocus() | |
379 WebBrowserWindow._performingStartup = False | |
380 | |
381 self.__imagesIcon = ImagesIcon(self) | |
382 self.statusBar().addPermanentWidget(self.__imagesIcon) | |
383 self.__javaScriptIcon = JavaScriptIcon(self) | |
384 self.statusBar().addPermanentWidget(self.__javaScriptIcon) | |
385 | |
386 self.__adBlockIcon = AdBlockIcon(self) | |
387 self.statusBar().addPermanentWidget(self.__adBlockIcon) | |
388 self.__adBlockIcon.setEnabled( | |
389 Preferences.getWebBrowser("AdBlockEnabled")) | |
390 self.__tabWidget.currentChanged[int].connect( | |
391 self.__adBlockIcon.currentChanged) | |
392 self.__tabWidget.sourceChanged.connect( | |
393 self.__adBlockIcon.sourceChanged) | |
394 | |
395 self.__tabManagerIcon = self.tabManager().createStatusBarIcon() | |
396 self.statusBar().addPermanentWidget(self.__tabManagerIcon) | |
397 | |
398 self.networkIcon = E5NetworkIcon(self) | |
399 self.statusBar().addPermanentWidget(self.networkIcon) | |
400 | |
401 if not Preferences.getWebBrowser("StatusBarVisible"): | |
402 self.statusBar().hide() | |
403 | |
404 if len(WebBrowserWindow.BrowserWindows): | |
405 QDesktopServices.setUrlHandler( | |
406 "http", WebBrowserWindow.BrowserWindows[0].urlHandler) | |
407 QDesktopServices.setUrlHandler( | |
408 "https", WebBrowserWindow.BrowserWindows[0].urlHandler) | |
409 | |
410 # setup connections | |
411 self.__activating = False | |
412 if WebBrowserWindow._useQtHelp: | |
413 # TOC window | |
414 self.__tocWindow.escapePressed.connect( | |
415 self.__activateCurrentBrowser) | |
416 self.__tocWindow.openUrl.connect(self.openUrl) | |
417 self.__tocWindow.newTab.connect(self.openUrlNewTab) | |
418 self.__tocWindow.newBackgroundTab.connect( | |
419 self.openUrlNewBackgroundTab) | |
420 self.__tocWindow.newWindow.connect(self.openUrlNewWindow) | |
187 | 421 |
188 self.__htmlFullScreen = False | 422 # index window |
189 self.__windowStates = Qt.WindowNoState | 423 self.__indexWindow.escapePressed.connect( |
190 self.__isClosing = False | 424 self.__activateCurrentBrowser) |
425 self.__indexWindow.openUrl.connect(self.openUrl) | |
426 self.__indexWindow.newTab.connect(self.openUrlNewTab) | |
427 self.__indexWindow.newBackgroundTab.connect( | |
428 self.openUrlNewBackgroundTab) | |
429 self.__indexWindow.newWindow.connect(self.openUrlNewWindow) | |
191 | 430 |
192 from .SearchWidget import SearchWidget | 431 # search window |
193 from .QtHelp.HelpTocWidget import HelpTocWidget | 432 self.__searchWindow.escapePressed.connect( |
194 from .QtHelp.HelpIndexWidget import HelpIndexWidget | 433 self.__activateCurrentBrowser) |
195 from .QtHelp.HelpSearchWidget import HelpSearchWidget | 434 self.__searchWindow.openUrl.connect(self.openUrl) |
196 from .WebBrowserView import WebBrowserView | 435 self.__searchWindow.newTab.connect(self.openUrlNewTab) |
197 from .WebBrowserTabWidget import WebBrowserTabWidget | 436 self.__searchWindow.newBackgroundTab.connect( |
198 from .AdBlock.AdBlockIcon import AdBlockIcon | 437 self.openUrlNewBackgroundTab) |
199 from .StatusBar.JavaScriptIcon import JavaScriptIcon | 438 self.__searchWindow.newWindow.connect(self.openUrlNewWindow) |
200 from .StatusBar.ImagesIcon import ImagesIcon | 439 |
201 from .VirusTotal.VirusTotalApi import VirusTotalAPI | 440 state = Preferences.getWebBrowser("WebBrowserState") |
202 from .Navigation.NavigationBar import NavigationBar | 441 self.restoreState(state) |
203 from .Navigation.NavigationContainer import NavigationContainer | 442 |
204 from .Bookmarks.BookmarksToolBar import BookmarksToolBar | 443 self.__initHelpDb() |
205 | 444 |
206 self.setStyle(Preferences.getUI("Style"), | 445 self.__virusTotal = VirusTotalAPI(self) |
207 Preferences.getUI("StyleSheet")) | 446 self.__virusTotal.submitUrlError.connect( |
208 | 447 self.__virusTotalSubmitUrlError) |
209 # initialize some SSL stuff | 448 self.__virusTotal.urlScanReport.connect( |
210 from E5Network.E5SslUtilities import initSSL | 449 self.__virusTotalUrlScanReport) |
211 initSSL() | 450 self.__virusTotal.fileScanReport.connect( |
212 | 451 self.__virusTotalFileScanReport) |
213 if WebBrowserWindow._useQtHelp: | 452 |
214 self.__helpEngine = QHelpEngine( | 453 self.flashCookieManager() |
215 WebBrowserWindow.getQtHelpCollectionFileName(), | 454 |
216 self) | 455 e5App().focusChanged.connect(self.__appFocusChanged) |
217 self.__removeOldDocumentation() | 456 |
218 self.__helpEngine.warning.connect(self.__warning) | 457 self.__toolbarStates = self.saveState() |
219 else: | 458 |
220 self.__helpEngine = None | 459 if single: |
221 self.__helpInstaller = None | 460 self.SAServer = WebBrowserSingleApplicationServer(saname) |
222 | 461 self.SAServer.loadUrl.connect(self.__saLoadUrl) |
223 self.__zoomWidget = E5ZoomWidget( | 462 self.SAServer.newTab.connect(self.__saNewTab) |
224 UI.PixmapCache.getPixmap("zoomOut.png"), | 463 self.SAServer.search.connect(self.__saSearchWord) |
225 UI.PixmapCache.getPixmap("zoomIn.png"), | 464 self.SAServer.shutdown.connect(self.shutdown) |
226 UI.PixmapCache.getPixmap("zoomReset.png"), self) | 465 else: |
227 self.statusBar().addPermanentWidget(self.__zoomWidget) | 466 self.SAServer = None |
228 self.__zoomWidget.setMapping( | 467 |
229 WebBrowserView.ZoomLevels, WebBrowserView.ZoomLevelDefault) | 468 self.__hideNavigationTimer = QTimer(self) |
230 self.__zoomWidget.valueChanged.connect(self.__zoomValueChanged) | 469 self.__hideNavigationTimer.setInterval(1000) |
231 | 470 self.__hideNavigationTimer.setSingleShot(True) |
232 self.__tabWidget = WebBrowserTabWidget(self) | 471 self.__hideNavigationTimer.timeout.connect(self.__hideNavigation) |
233 self.__tabWidget.currentChanged[int].connect(self.__currentChanged) | 472 |
234 self.__tabWidget.titleChanged.connect(self.__titleChanged) | 473 self.__forcedClose = False |
235 self.__tabWidget.showMessage.connect(self.statusBar().showMessage) | 474 |
236 self.__tabWidget.browserZoomValueChanged.connect( | 475 if restoreSessionData and not WebBrowserWindow.isPrivate(): |
237 self.__zoomWidget.setValue) | 476 self.sessionManager().restoreSessionFromData( |
238 self.__tabWidget.browserClosed.connect(self.webBrowserClosed) | 477 self, restoreSessionData) |
239 self.__tabWidget.browserOpened.connect(self.webBrowserOpened) | 478 |
240 | 479 if not WebBrowserWindow.isPrivate(): |
241 self.__searchWidget = SearchWidget(self, self) | 480 self.sessionManager().activateTimer() |
242 | 481 |
243 self.__setIconDatabasePath() | 482 QTimer.singleShot(0, syncMgr.loadSettings) |
244 | 483 |
245 bookmarksModel = self.bookmarksManager().bookmarksModel() | 484 if WebBrowserWindow._useQtHelp: |
246 self.__bookmarksToolBar = BookmarksToolBar(self, bookmarksModel, | 485 QTimer.singleShot(50, self.__lookForNewDocumentation) |
247 self) | 486 if self.__searchWord is not None: |
248 self.__bookmarksToolBar.setIconSize(UI.Config.ToolBarIconSize) | 487 QTimer.singleShot(0, self.__searchForWord) |
249 self.__bookmarksToolBar.openUrl.connect(self.openUrl) | |
250 self.__bookmarksToolBar.newTab.connect(self.openUrlNewTab) | |
251 self.__bookmarksToolBar.newWindow.connect(self.openUrlNewWindow) | |
252 | |
253 self.__navigationBar = NavigationBar(self) | |
254 | |
255 self.__navigationContainer = NavigationContainer(self) | |
256 self.__navigationContainer.addWidget(self.__navigationBar) | |
257 self.__navigationContainer.addWidget(self.__bookmarksToolBar) | |
258 | |
259 centralWidget = QWidget() | |
260 layout = QVBoxLayout() | |
261 layout.setContentsMargins(1, 1, 1, 1) | |
262 layout.setSpacing(0) | |
263 layout.addWidget(self.__navigationContainer) | |
264 layout.addWidget(self.__tabWidget) | |
265 layout.addWidget(self.__searchWidget) | |
266 self.__tabWidget.setSizePolicy( | |
267 QSizePolicy.Preferred, QSizePolicy.Expanding) | |
268 centralWidget.setLayout(layout) | |
269 self.setCentralWidget(centralWidget) | |
270 self.__searchWidget.hide() | |
271 | |
272 if WebBrowserWindow._useQtHelp: | |
273 # setup the TOC widget | |
274 self.__tocWindow = HelpTocWidget(self.__helpEngine) | |
275 self.__tocDock = QDockWidget(self.tr("Contents"), self) | |
276 self.__tocDock.setObjectName("TocWindow") | |
277 self.__tocDock.setWidget(self.__tocWindow) | |
278 self.addDockWidget(Qt.LeftDockWidgetArea, self.__tocDock) | |
279 | |
280 # setup the index widget | |
281 self.__indexWindow = HelpIndexWidget(self.__helpEngine) | |
282 self.__indexDock = QDockWidget(self.tr("Index"), self) | |
283 self.__indexDock.setObjectName("IndexWindow") | |
284 self.__indexDock.setWidget(self.__indexWindow) | |
285 self.addDockWidget(Qt.LeftDockWidgetArea, self.__indexDock) | |
286 | |
287 # setup the search widget | |
288 self.__searchWord = searchWord | |
289 self.__indexing = False | |
290 self.__indexingProgress = None | |
291 self.__searchEngine = self.__helpEngine.searchEngine() | |
292 self.__searchEngine.indexingStarted.connect( | |
293 self.__indexingStarted) | |
294 self.__searchEngine.indexingFinished.connect( | |
295 self.__indexingFinished) | |
296 self.__searchWindow = HelpSearchWidget(self.__searchEngine) | |
297 self.__searchDock = QDockWidget(self.tr("Search"), self) | |
298 self.__searchDock.setObjectName("SearchWindow") | |
299 self.__searchDock.setWidget(self.__searchWindow) | |
300 self.addDockWidget(Qt.LeftDockWidgetArea, self.__searchDock) | |
301 | |
302 # JavaScript Console window | |
303 from .WebBrowserJavaScriptConsole import \ | |
304 WebBrowserJavaScriptConsole | |
305 self.__javascriptConsole = WebBrowserJavaScriptConsole(self) | |
306 self.__javascriptConsoleDock = QDockWidget( | |
307 self.tr("JavaScript Console")) | |
308 self.__javascriptConsoleDock.setObjectName("JavascriptConsole") | |
309 self.__javascriptConsoleDock.setAllowedAreas( | |
310 Qt.BottomDockWidgetArea | Qt.TopDockWidgetArea) | |
311 self.__javascriptConsoleDock.setWidget(self.__javascriptConsole) | |
312 self.addDockWidget(Qt.BottomDockWidgetArea, | |
313 self.__javascriptConsoleDock) | |
314 | |
315 if Preferences.getWebBrowser("SaveGeometry"): | |
316 g = Preferences.getGeometry("WebBrowserGeometry") | |
317 else: | |
318 g = QByteArray() | |
319 if g.isEmpty(): | |
320 s = QSize(800, 800) | |
321 self.resize(s) | |
322 else: | |
323 self.restoreGeometry(g) | |
324 | |
325 WebBrowserWindow.BrowserWindows.append(self) | |
326 | |
327 self.__initWebEngineSettings() | |
328 | |
329 # initialize some of our class objects | |
330 self.passwordManager() | |
331 self.historyManager() | |
332 self.greaseMonkeyManager() | |
333 | |
334 # initialize the actions | |
335 self.__initActions() | |
336 | |
337 # initialize the menus | |
338 self.__initMenus() | |
339 self.__initSuperMenu() | |
340 if Preferences.getWebBrowser("MenuBarVisible"): | |
341 self.__navigationBar.superMenuButton().hide() | |
342 else: | |
343 self.menuBar().hide() | |
344 | |
345 # save references to toolbars in order to hide them | |
346 # when going full screen | |
347 self.__toolbars = {} | |
348 # initialize toolbars | |
349 if Preferences.getWebBrowser("ShowToolbars"): | |
350 self.__initToolbars() | |
351 self.__bookmarksToolBar.setVisible( | |
352 Preferences.getWebBrowser("BookmarksToolBarVisible")) | |
353 | |
354 syncMgr = self.syncManager() | |
355 syncMgr.syncMessage.connect(self.statusBar().showMessage) | |
356 syncMgr.syncError.connect(self.statusBar().showMessage) | |
357 | |
358 restoreSessionData = {} | |
359 if WebBrowserWindow._performingStartup and not home and \ | |
360 not WebBrowserWindow.isPrivate(): | |
361 startupBehavior = Preferences.getWebBrowser("StartupBehavior") | |
362 if not private and startupBehavior in [3, 4]: | |
363 if startupBehavior == 3: | |
364 # restore last session | |
365 restoreSessionFile = \ | |
366 self.sessionManager().lastActiveSessionFile() | |
367 elif startupBehavior == 4: | |
368 # select session | |
369 restoreSessionFile = \ | |
370 self.sessionManager().selectSession() | |
371 sessionData = \ | |
372 self.sessionManager().readSessionFromFile( | |
373 restoreSessionFile) | |
374 if self.sessionManager().isValidSession(sessionData): | |
375 restoreSessionData = sessionData | |
376 restoreSession = True | |
377 else: | |
378 if Preferences.getWebBrowser("StartupBehavior") == 0: | |
379 home = "about:blank" | |
380 elif Preferences.getWebBrowser("StartupBehavior") == 1: | |
381 home = Preferences.getWebBrowser("HomePage") | |
382 elif Preferences.getWebBrowser("StartupBehavior") == 2: | |
383 home = "eric:speeddial" | |
384 | |
385 if not restoreSession: | |
386 self.__tabWidget.newBrowser(QUrl.fromUserInput(home)) | |
387 self.__tabWidget.currentBrowser().setFocus() | |
388 WebBrowserWindow._performingStartup = False | |
389 | |
390 self.__imagesIcon = ImagesIcon(self) | |
391 self.statusBar().addPermanentWidget(self.__imagesIcon) | |
392 self.__javaScriptIcon = JavaScriptIcon(self) | |
393 self.statusBar().addPermanentWidget(self.__javaScriptIcon) | |
394 | |
395 self.__adBlockIcon = AdBlockIcon(self) | |
396 self.statusBar().addPermanentWidget(self.__adBlockIcon) | |
397 self.__adBlockIcon.setEnabled( | |
398 Preferences.getWebBrowser("AdBlockEnabled")) | |
399 self.__tabWidget.currentChanged[int].connect( | |
400 self.__adBlockIcon.currentChanged) | |
401 self.__tabWidget.sourceChanged.connect( | |
402 self.__adBlockIcon.sourceChanged) | |
403 | |
404 self.__tabManagerIcon = self.tabManager().createStatusBarIcon() | |
405 self.statusBar().addPermanentWidget(self.__tabManagerIcon) | |
406 | |
407 self.networkIcon = E5NetworkIcon(self) | |
408 self.statusBar().addPermanentWidget(self.networkIcon) | |
409 | |
410 if not Preferences.getWebBrowser("StatusBarVisible"): | |
411 self.statusBar().hide() | |
412 | |
413 if len(WebBrowserWindow.BrowserWindows): | |
414 QDesktopServices.setUrlHandler( | |
415 "http", WebBrowserWindow.BrowserWindows[0].urlHandler) | |
416 QDesktopServices.setUrlHandler( | |
417 "https", WebBrowserWindow.BrowserWindows[0].urlHandler) | |
418 | |
419 # setup connections | |
420 self.__activating = False | |
421 if WebBrowserWindow._useQtHelp: | |
422 # TOC window | |
423 self.__tocWindow.escapePressed.connect( | |
424 self.__activateCurrentBrowser) | |
425 self.__tocWindow.openUrl.connect(self.openUrl) | |
426 self.__tocWindow.newTab.connect(self.openUrlNewTab) | |
427 self.__tocWindow.newBackgroundTab.connect( | |
428 self.openUrlNewBackgroundTab) | |
429 self.__tocWindow.newWindow.connect(self.openUrlNewWindow) | |
430 | |
431 # index window | |
432 self.__indexWindow.escapePressed.connect( | |
433 self.__activateCurrentBrowser) | |
434 self.__indexWindow.openUrl.connect(self.openUrl) | |
435 self.__indexWindow.newTab.connect(self.openUrlNewTab) | |
436 self.__indexWindow.newBackgroundTab.connect( | |
437 self.openUrlNewBackgroundTab) | |
438 self.__indexWindow.newWindow.connect(self.openUrlNewWindow) | |
439 | |
440 # search window | |
441 self.__searchWindow.escapePressed.connect( | |
442 self.__activateCurrentBrowser) | |
443 self.__searchWindow.openUrl.connect(self.openUrl) | |
444 self.__searchWindow.newTab.connect(self.openUrlNewTab) | |
445 self.__searchWindow.newBackgroundTab.connect( | |
446 self.openUrlNewBackgroundTab) | |
447 self.__searchWindow.newWindow.connect(self.openUrlNewWindow) | |
448 | |
449 state = Preferences.getWebBrowser("WebBrowserState") | |
450 self.restoreState(state) | |
451 | |
452 self.__initHelpDb() | |
453 | |
454 self.__virusTotal = VirusTotalAPI(self) | |
455 self.__virusTotal.submitUrlError.connect( | |
456 self.__virusTotalSubmitUrlError) | |
457 self.__virusTotal.urlScanReport.connect( | |
458 self.__virusTotalUrlScanReport) | |
459 self.__virusTotal.fileScanReport.connect( | |
460 self.__virusTotalFileScanReport) | |
461 | |
462 self.flashCookieManager() | |
463 | |
464 e5App().focusChanged.connect(self.__appFocusChanged) | |
465 | |
466 self.__toolbarStates = self.saveState() | |
467 | |
468 if single: | |
469 self.SAServer = WebBrowserSingleApplicationServer(saname) | |
470 self.SAServer.loadUrl.connect(self.__saLoadUrl) | |
471 self.SAServer.newTab.connect(self.__saNewTab) | |
472 self.SAServer.search.connect(self.__saSearchWord) | |
473 self.SAServer.shutdown.connect(self.shutdown) | |
474 else: | |
475 self.SAServer = None | |
476 | |
477 self.__hideNavigationTimer = QTimer(self) | |
478 self.__hideNavigationTimer.setInterval(1000) | |
479 self.__hideNavigationTimer.setSingleShot(True) | |
480 self.__hideNavigationTimer.timeout.connect(self.__hideNavigation) | |
481 | |
482 self.__forcedClose = False | |
483 | |
484 if restoreSessionData and not WebBrowserWindow.isPrivate(): | |
485 self.sessionManager().restoreSessionFromData( | |
486 self, restoreSessionData) | |
487 | |
488 if not WebBrowserWindow.isPrivate(): | |
489 self.sessionManager().activateTimer() | |
490 | |
491 QTimer.singleShot(0, syncMgr.loadSettings) | |
492 | |
493 if WebBrowserWindow._useQtHelp: | |
494 QTimer.singleShot(50, self.__lookForNewDocumentation) | |
495 if self.__searchWord is not None: | |
496 QTimer.singleShot(0, self.__searchForWord) | |
497 | 488 |
498 def __del__(self): | 489 def __del__(self): |
499 """ | 490 """ |
500 Special method called during object destruction. | 491 Special method called during object destruction. |
501 | 492 |
701 self.newTabAct.setStatusTip(self.tr('Open a new web browser tab')) | 692 self.newTabAct.setStatusTip(self.tr('Open a new web browser tab')) |
702 self.newTabAct.setWhatsThis(self.tr( | 693 self.newTabAct.setWhatsThis(self.tr( |
703 """<b>New Tab</b>""" | 694 """<b>New Tab</b>""" |
704 """<p>This opens a new web browser tab.</p>""" | 695 """<p>This opens a new web browser tab.</p>""" |
705 )) | 696 )) |
706 if not self.__initShortcutsOnly: | 697 self.newTabAct.triggered.connect(self.newTab) |
707 self.newTabAct.triggered.connect(self.newTab) | |
708 self.__actions.append(self.newTabAct) | 698 self.__actions.append(self.newTabAct) |
709 | 699 |
710 self.newAct = E5Action( | 700 self.newAct = E5Action( |
711 self.tr('New Window'), | 701 self.tr('New Window'), |
712 UI.PixmapCache.getIcon("newWindow.png"), | 702 UI.PixmapCache.getIcon("newWindow.png"), |
717 self.newAct.setWhatsThis(self.tr( | 707 self.newAct.setWhatsThis(self.tr( |
718 """<b>New Window</b>""" | 708 """<b>New Window</b>""" |
719 """<p>This opens a new web browser window in the current""" | 709 """<p>This opens a new web browser window in the current""" |
720 """ privacy mode.</p>""" | 710 """ privacy mode.</p>""" |
721 )) | 711 )) |
722 if not self.__initShortcutsOnly: | 712 self.newAct.triggered.connect(self.newWindow) |
723 self.newAct.triggered.connect(self.newWindow) | |
724 self.__actions.append(self.newAct) | 713 self.__actions.append(self.newAct) |
725 | 714 |
726 self.newPrivateAct = E5Action( | 715 self.newPrivateAct = E5Action( |
727 self.tr('New Private Window'), | 716 self.tr('New Private Window'), |
728 UI.PixmapCache.getIcon("privateMode.png"), | 717 UI.PixmapCache.getIcon("privateMode.png"), |
734 self.newPrivateAct.setWhatsThis(self.tr( | 723 self.newPrivateAct.setWhatsThis(self.tr( |
735 """<b>New Private Window</b>""" | 724 """<b>New Private Window</b>""" |
736 """<p>This opens a new private web browser window by starting""" | 725 """<p>This opens a new private web browser window by starting""" |
737 """ a new web browser instance in private mode.</p>""" | 726 """ a new web browser instance in private mode.</p>""" |
738 )) | 727 )) |
739 if not self.__initShortcutsOnly: | 728 self.newPrivateAct.triggered.connect(self.newPrivateWindow) |
740 self.newPrivateAct.triggered.connect(self.newPrivateWindow) | |
741 self.__actions.append(self.newPrivateAct) | 729 self.__actions.append(self.newPrivateAct) |
742 | 730 |
743 self.openAct = E5Action( | 731 self.openAct = E5Action( |
744 self.tr('Open File'), | 732 self.tr('Open File'), |
745 UI.PixmapCache.getIcon("open.png"), | 733 UI.PixmapCache.getIcon("open.png"), |
750 self.openAct.setWhatsThis(self.tr( | 738 self.openAct.setWhatsThis(self.tr( |
751 """<b>Open File</b>""" | 739 """<b>Open File</b>""" |
752 """<p>This opens a new file for display.""" | 740 """<p>This opens a new file for display.""" |
753 """ It pops up a file selection dialog.</p>""" | 741 """ It pops up a file selection dialog.</p>""" |
754 )) | 742 )) |
755 if not self.__initShortcutsOnly: | 743 self.openAct.triggered.connect(self.__openFile) |
756 self.openAct.triggered.connect(self.__openFile) | |
757 self.__actions.append(self.openAct) | 744 self.__actions.append(self.openAct) |
758 | 745 |
759 self.openTabAct = E5Action( | 746 self.openTabAct = E5Action( |
760 self.tr('Open File in New Tab'), | 747 self.tr('Open File in New Tab'), |
761 UI.PixmapCache.getIcon("openNewTab.png"), | 748 UI.PixmapCache.getIcon("openNewTab.png"), |
767 self.openTabAct.setWhatsThis(self.tr( | 754 self.openTabAct.setWhatsThis(self.tr( |
768 """<b>Open File in New Tab</b>""" | 755 """<b>Open File in New Tab</b>""" |
769 """<p>This opens a new file for display in a new tab.""" | 756 """<p>This opens a new file for display in a new tab.""" |
770 """ It pops up a file selection dialog.</p>""" | 757 """ It pops up a file selection dialog.</p>""" |
771 )) | 758 )) |
772 if not self.__initShortcutsOnly: | 759 self.openTabAct.triggered.connect(self.__openFileNewTab) |
773 self.openTabAct.triggered.connect(self.__openFileNewTab) | |
774 self.__actions.append(self.openTabAct) | 760 self.__actions.append(self.openTabAct) |
775 | 761 |
776 if hasattr(QWebEnginePage, "SavePage"): | 762 if hasattr(QWebEnginePage, "SavePage"): |
777 self.saveAsAct = E5Action( | 763 self.saveAsAct = E5Action( |
778 self.tr('Save As'), | 764 self.tr('Save As'), |
784 self.tr('Save the current page to disk')) | 770 self.tr('Save the current page to disk')) |
785 self.saveAsAct.setWhatsThis(self.tr( | 771 self.saveAsAct.setWhatsThis(self.tr( |
786 """<b>Save As...</b>""" | 772 """<b>Save As...</b>""" |
787 """<p>Saves the current page to disk.</p>""" | 773 """<p>Saves the current page to disk.</p>""" |
788 )) | 774 )) |
789 if not self.__initShortcutsOnly: | 775 self.saveAsAct.triggered.connect(self.__savePageAs) |
790 self.saveAsAct.triggered.connect(self.__savePageAs) | |
791 self.__actions.append(self.saveAsAct) | 776 self.__actions.append(self.saveAsAct) |
792 else: | 777 else: |
793 self.saveAsAct = None | 778 self.saveAsAct = None |
794 | 779 |
795 self.saveVisiblePageScreenAct = E5Action( | 780 self.saveVisiblePageScreenAct = E5Action( |
803 self.saveVisiblePageScreenAct.setWhatsThis(self.tr( | 788 self.saveVisiblePageScreenAct.setWhatsThis(self.tr( |
804 """<b>Save Page Screen...</b>""" | 789 """<b>Save Page Screen...</b>""" |
805 """<p>Saves the visible part of the current page as a""" | 790 """<p>Saves the visible part of the current page as a""" |
806 """ screen shot.</p>""" | 791 """ screen shot.</p>""" |
807 )) | 792 )) |
808 if not self.__initShortcutsOnly: | 793 self.saveVisiblePageScreenAct.triggered.connect( |
809 self.saveVisiblePageScreenAct.triggered.connect( | 794 self.__saveVisiblePageScreen) |
810 self.__saveVisiblePageScreen) | |
811 self.__actions.append(self.saveVisiblePageScreenAct) | 795 self.__actions.append(self.saveVisiblePageScreenAct) |
812 | 796 |
813 bookmarksManager = self.bookmarksManager() | 797 bookmarksManager = self.bookmarksManager() |
814 self.importBookmarksAct = E5Action( | 798 self.importBookmarksAct = E5Action( |
815 self.tr('Import Bookmarks'), | 799 self.tr('Import Bookmarks'), |
819 self.tr('Import bookmarks from other browsers')) | 803 self.tr('Import bookmarks from other browsers')) |
820 self.importBookmarksAct.setWhatsThis(self.tr( | 804 self.importBookmarksAct.setWhatsThis(self.tr( |
821 """<b>Import Bookmarks</b>""" | 805 """<b>Import Bookmarks</b>""" |
822 """<p>Import bookmarks from other browsers.</p>""" | 806 """<p>Import bookmarks from other browsers.</p>""" |
823 )) | 807 )) |
824 if not self.__initShortcutsOnly: | 808 self.importBookmarksAct.triggered.connect( |
825 self.importBookmarksAct.triggered.connect( | 809 bookmarksManager.importBookmarks) |
826 bookmarksManager.importBookmarks) | |
827 self.__actions.append(self.importBookmarksAct) | 810 self.__actions.append(self.importBookmarksAct) |
828 | 811 |
829 self.exportBookmarksAct = E5Action( | 812 self.exportBookmarksAct = E5Action( |
830 self.tr('Export Bookmarks'), | 813 self.tr('Export Bookmarks'), |
831 self.tr('&Export Bookmarks...'), | 814 self.tr('&Export Bookmarks...'), |
834 self.tr('Export the bookmarks into a file')) | 817 self.tr('Export the bookmarks into a file')) |
835 self.exportBookmarksAct.setWhatsThis(self.tr( | 818 self.exportBookmarksAct.setWhatsThis(self.tr( |
836 """<b>Export Bookmarks</b>""" | 819 """<b>Export Bookmarks</b>""" |
837 """<p>Export the bookmarks into a file.</p>""" | 820 """<p>Export the bookmarks into a file.</p>""" |
838 )) | 821 )) |
839 if not self.__initShortcutsOnly: | 822 self.exportBookmarksAct.triggered.connect( |
840 self.exportBookmarksAct.triggered.connect( | 823 bookmarksManager.exportBookmarks) |
841 bookmarksManager.exportBookmarks) | |
842 self.__actions.append(self.exportBookmarksAct) | 824 self.__actions.append(self.exportBookmarksAct) |
843 | 825 |
844 if qVersionTuple() >= (5, 8, 0) or ( | 826 if qVersionTuple() >= (5, 8, 0) or ( |
845 not Globals.isWindowsPlatform() or qVersionTuple() >= (5, 7, 0)): | 827 not Globals.isWindowsPlatform() or qVersionTuple() >= (5, 7, 0)): |
846 self.printAct = E5Action( | 828 self.printAct = E5Action( |
852 self.printAct.setStatusTip(self.tr('Print the displayed help')) | 834 self.printAct.setStatusTip(self.tr('Print the displayed help')) |
853 self.printAct.setWhatsThis(self.tr( | 835 self.printAct.setWhatsThis(self.tr( |
854 """<b>Print</b>""" | 836 """<b>Print</b>""" |
855 """<p>Print the displayed help text.</p>""" | 837 """<p>Print the displayed help text.</p>""" |
856 )) | 838 )) |
857 if not self.__initShortcutsOnly: | 839 self.printAct.triggered.connect(self.__tabWidget.printBrowser) |
858 self.printAct.triggered.connect(self.__tabWidget.printBrowser) | |
859 self.__actions.append(self.printAct) | 840 self.__actions.append(self.printAct) |
860 else: | 841 else: |
861 self.printAct = None | 842 self.printAct = None |
862 | 843 |
863 if Globals.isLinuxPlatform() or qVersionTuple() >= (5, 7, 0): | 844 if Globals.isLinuxPlatform() or qVersionTuple() >= (5, 7, 0): |
870 'Print the displayed help as PDF')) | 851 'Print the displayed help as PDF')) |
871 self.printPdfAct.setWhatsThis(self.tr( | 852 self.printPdfAct.setWhatsThis(self.tr( |
872 """<b>Print as PDF</b>""" | 853 """<b>Print as PDF</b>""" |
873 """<p>Print the displayed help text as a PDF file.</p>""" | 854 """<p>Print the displayed help text as a PDF file.</p>""" |
874 )) | 855 )) |
875 if not self.__initShortcutsOnly: | 856 self.printPdfAct.triggered.connect( |
876 self.printPdfAct.triggered.connect( | 857 self.__tabWidget.printBrowserPdf) |
877 self.__tabWidget.printBrowserPdf) | |
878 self.__actions.append(self.printPdfAct) | 858 self.__actions.append(self.printPdfAct) |
879 else: | 859 else: |
880 self.printPdfAct = None | 860 self.printPdfAct = None |
881 | 861 |
882 if qVersionTuple() >= (5, 8, 0) or ( | 862 if qVersionTuple() >= (5, 8, 0) or ( |
890 'Print preview of the displayed help')) | 870 'Print preview of the displayed help')) |
891 self.printPreviewAct.setWhatsThis(self.tr( | 871 self.printPreviewAct.setWhatsThis(self.tr( |
892 """<b>Print Preview</b>""" | 872 """<b>Print Preview</b>""" |
893 """<p>Print preview of the displayed help text.</p>""" | 873 """<p>Print preview of the displayed help text.</p>""" |
894 )) | 874 )) |
895 if not self.__initShortcutsOnly: | 875 self.printPreviewAct.triggered.connect( |
896 self.printPreviewAct.triggered.connect( | 876 self.__tabWidget.printPreviewBrowser) |
897 self.__tabWidget.printPreviewBrowser) | |
898 self.__actions.append(self.printPreviewAct) | 877 self.__actions.append(self.printPreviewAct) |
899 else: | 878 else: |
900 self.printPreviewAct = None | 879 self.printPreviewAct = None |
901 | 880 |
902 self.sendPageLinkAct = E5Action( | 881 self.sendPageLinkAct = E5Action( |
908 'Send the link of the current page via email')) | 887 'Send the link of the current page via email')) |
909 self.sendPageLinkAct.setWhatsThis(self.tr( | 888 self.sendPageLinkAct.setWhatsThis(self.tr( |
910 """<b>Send Page Link</b>""" | 889 """<b>Send Page Link</b>""" |
911 """<p>Send the link of the current page via email.</p>""" | 890 """<p>Send the link of the current page via email.</p>""" |
912 )) | 891 )) |
913 if not self.__initShortcutsOnly: | 892 self.sendPageLinkAct.triggered.connect(self.__sendPageLink) |
914 self.sendPageLinkAct.triggered.connect(self.__sendPageLink) | |
915 self.__actions.append(self.sendPageLinkAct) | 893 self.__actions.append(self.sendPageLinkAct) |
916 | 894 |
917 self.closeAct = E5Action( | 895 self.closeAct = E5Action( |
918 self.tr('Close'), | 896 self.tr('Close'), |
919 UI.PixmapCache.getIcon("close.png"), | 897 UI.PixmapCache.getIcon("close.png"), |
924 'Close the current help window')) | 902 'Close the current help window')) |
925 self.closeAct.setWhatsThis(self.tr( | 903 self.closeAct.setWhatsThis(self.tr( |
926 """<b>Close</b>""" | 904 """<b>Close</b>""" |
927 """<p>Closes the current web browser window.</p>""" | 905 """<p>Closes the current web browser window.</p>""" |
928 )) | 906 )) |
929 if not self.__initShortcutsOnly: | 907 self.closeAct.triggered.connect(self.__tabWidget.closeBrowser) |
930 self.closeAct.triggered.connect(self.__tabWidget.closeBrowser) | |
931 self.__actions.append(self.closeAct) | 908 self.__actions.append(self.closeAct) |
932 | 909 |
933 self.closeAllAct = E5Action( | 910 self.closeAllAct = E5Action( |
934 self.tr('Close All'), | 911 self.tr('Close All'), |
935 self.tr('Close &All'), | 912 self.tr('Close &All'), |
937 self.closeAllAct.setStatusTip(self.tr('Close all help windows')) | 914 self.closeAllAct.setStatusTip(self.tr('Close all help windows')) |
938 self.closeAllAct.setWhatsThis(self.tr( | 915 self.closeAllAct.setWhatsThis(self.tr( |
939 """<b>Close All</b>""" | 916 """<b>Close All</b>""" |
940 """<p>Closes all web browser windows except the first one.</p>""" | 917 """<p>Closes all web browser windows except the first one.</p>""" |
941 )) | 918 )) |
942 if not self.__initShortcutsOnly: | 919 self.closeAllAct.triggered.connect( |
943 self.closeAllAct.triggered.connect( | 920 self.__tabWidget.closeAllBrowsers) |
944 self.__tabWidget.closeAllBrowsers) | |
945 self.__actions.append(self.closeAllAct) | 921 self.__actions.append(self.closeAllAct) |
946 | 922 |
947 self.exitAct = E5Action( | 923 self.exitAct = E5Action( |
948 self.tr('Quit'), | 924 self.tr('Quit'), |
949 UI.PixmapCache.getIcon("exit.png"), | 925 UI.PixmapCache.getIcon("exit.png"), |
953 self.exitAct.setStatusTip(self.tr('Quit the eric6 Web Browser')) | 929 self.exitAct.setStatusTip(self.tr('Quit the eric6 Web Browser')) |
954 self.exitAct.setWhatsThis(self.tr( | 930 self.exitAct.setWhatsThis(self.tr( |
955 """<b>Quit</b>""" | 931 """<b>Quit</b>""" |
956 """<p>Quit the eric6 Web Browser.</p>""" | 932 """<p>Quit the eric6 Web Browser.</p>""" |
957 )) | 933 )) |
958 if not self.__initShortcutsOnly: | 934 self.exitAct.triggered.connect(self.shutdown) |
959 self.exitAct.triggered.connect(self.shutdown) | |
960 self.__actions.append(self.exitAct) | 935 self.__actions.append(self.exitAct) |
961 | 936 |
962 self.backAct = E5Action( | 937 self.backAct = E5Action( |
963 self.tr('Backward'), | 938 self.tr('Backward'), |
964 UI.PixmapCache.getIcon("back.png"), | 939 UI.PixmapCache.getIcon("back.png"), |
969 self.backAct.setWhatsThis(self.tr( | 944 self.backAct.setWhatsThis(self.tr( |
970 """<b>Backward</b>""" | 945 """<b>Backward</b>""" |
971 """<p>Moves one screen backward. If none is""" | 946 """<p>Moves one screen backward. If none is""" |
972 """ available, this action is disabled.</p>""" | 947 """ available, this action is disabled.</p>""" |
973 )) | 948 )) |
974 if not self.__initShortcutsOnly: | 949 self.backAct.triggered.connect(self.__backward) |
975 self.backAct.triggered.connect(self.__backward) | |
976 self.__actions.append(self.backAct) | 950 self.__actions.append(self.backAct) |
977 | 951 |
978 self.forwardAct = E5Action( | 952 self.forwardAct = E5Action( |
979 self.tr('Forward'), | 953 self.tr('Forward'), |
980 UI.PixmapCache.getIcon("forward.png"), | 954 UI.PixmapCache.getIcon("forward.png"), |
986 self.forwardAct.setWhatsThis(self.tr( | 960 self.forwardAct.setWhatsThis(self.tr( |
987 """<b>Forward</b>""" | 961 """<b>Forward</b>""" |
988 """<p>Moves one screen forward. If none is""" | 962 """<p>Moves one screen forward. If none is""" |
989 """ available, this action is disabled.</p>""" | 963 """ available, this action is disabled.</p>""" |
990 )) | 964 )) |
991 if not self.__initShortcutsOnly: | 965 self.forwardAct.triggered.connect(self.__forward) |
992 self.forwardAct.triggered.connect(self.__forward) | |
993 self.__actions.append(self.forwardAct) | 966 self.__actions.append(self.forwardAct) |
994 | 967 |
995 self.homeAct = E5Action( | 968 self.homeAct = E5Action( |
996 self.tr('Home'), | 969 self.tr('Home'), |
997 UI.PixmapCache.getIcon("home.png"), | 970 UI.PixmapCache.getIcon("home.png"), |
1002 'Move to the initial screen')) | 975 'Move to the initial screen')) |
1003 self.homeAct.setWhatsThis(self.tr( | 976 self.homeAct.setWhatsThis(self.tr( |
1004 """<b>Home</b>""" | 977 """<b>Home</b>""" |
1005 """<p>Moves to the initial screen.</p>""" | 978 """<p>Moves to the initial screen.</p>""" |
1006 )) | 979 )) |
1007 if not self.__initShortcutsOnly: | 980 self.homeAct.triggered.connect(self.__home) |
1008 self.homeAct.triggered.connect(self.__home) | |
1009 self.__actions.append(self.homeAct) | 981 self.__actions.append(self.homeAct) |
1010 | 982 |
1011 self.reloadAct = E5Action( | 983 self.reloadAct = E5Action( |
1012 self.tr('Reload'), | 984 self.tr('Reload'), |
1013 UI.PixmapCache.getIcon("reload.png"), | 985 UI.PixmapCache.getIcon("reload.png"), |
1019 'Reload the current screen')) | 991 'Reload the current screen')) |
1020 self.reloadAct.setWhatsThis(self.tr( | 992 self.reloadAct.setWhatsThis(self.tr( |
1021 """<b>Reload</b>""" | 993 """<b>Reload</b>""" |
1022 """<p>Reloads the current screen.</p>""" | 994 """<p>Reloads the current screen.</p>""" |
1023 )) | 995 )) |
1024 if not self.__initShortcutsOnly: | 996 self.reloadAct.triggered.connect(self.__reload) |
1025 self.reloadAct.triggered.connect(self.__reload) | |
1026 self.__actions.append(self.reloadAct) | 997 self.__actions.append(self.reloadAct) |
1027 | 998 |
1028 self.stopAct = E5Action( | 999 self.stopAct = E5Action( |
1029 self.tr('Stop'), | 1000 self.tr('Stop'), |
1030 UI.PixmapCache.getIcon("stopLoading.png"), | 1001 UI.PixmapCache.getIcon("stopLoading.png"), |
1035 self.stopAct.setStatusTip(self.tr('Stop loading')) | 1006 self.stopAct.setStatusTip(self.tr('Stop loading')) |
1036 self.stopAct.setWhatsThis(self.tr( | 1007 self.stopAct.setWhatsThis(self.tr( |
1037 """<b>Stop</b>""" | 1008 """<b>Stop</b>""" |
1038 """<p>Stops loading of the current tab.</p>""" | 1009 """<p>Stops loading of the current tab.</p>""" |
1039 )) | 1010 )) |
1040 if not self.__initShortcutsOnly: | 1011 self.stopAct.triggered.connect(self.__stopLoading) |
1041 self.stopAct.triggered.connect(self.__stopLoading) | |
1042 self.__actions.append(self.stopAct) | 1012 self.__actions.append(self.stopAct) |
1043 | 1013 |
1044 self.copyAct = E5Action( | 1014 self.copyAct = E5Action( |
1045 self.tr('Copy'), | 1015 self.tr('Copy'), |
1046 UI.PixmapCache.getIcon("editCopy.png"), | 1016 UI.PixmapCache.getIcon("editCopy.png"), |
1050 self.copyAct.setStatusTip(self.tr('Copy the selected text')) | 1020 self.copyAct.setStatusTip(self.tr('Copy the selected text')) |
1051 self.copyAct.setWhatsThis(self.tr( | 1021 self.copyAct.setWhatsThis(self.tr( |
1052 """<b>Copy</b>""" | 1022 """<b>Copy</b>""" |
1053 """<p>Copy the selected text to the clipboard.</p>""" | 1023 """<p>Copy the selected text to the clipboard.</p>""" |
1054 )) | 1024 )) |
1055 if not self.__initShortcutsOnly: | 1025 self.copyAct.triggered.connect(self.__copy) |
1056 self.copyAct.triggered.connect(self.__copy) | |
1057 self.__actions.append(self.copyAct) | 1026 self.__actions.append(self.copyAct) |
1058 | 1027 |
1059 self.cutAct = E5Action( | 1028 self.cutAct = E5Action( |
1060 self.tr('Cut'), | 1029 self.tr('Cut'), |
1061 UI.PixmapCache.getIcon("editCut.png"), | 1030 UI.PixmapCache.getIcon("editCut.png"), |
1065 self.cutAct.setStatusTip(self.tr('Cut the selected text')) | 1034 self.cutAct.setStatusTip(self.tr('Cut the selected text')) |
1066 self.cutAct.setWhatsThis(self.tr( | 1035 self.cutAct.setWhatsThis(self.tr( |
1067 """<b>Cut</b>""" | 1036 """<b>Cut</b>""" |
1068 """<p>Cut the selected text to the clipboard.</p>""" | 1037 """<p>Cut the selected text to the clipboard.</p>""" |
1069 )) | 1038 )) |
1070 if not self.__initShortcutsOnly: | 1039 self.cutAct.triggered.connect(self.__cut) |
1071 self.cutAct.triggered.connect(self.__cut) | |
1072 self.__actions.append(self.cutAct) | 1040 self.__actions.append(self.cutAct) |
1073 | 1041 |
1074 self.pasteAct = E5Action( | 1042 self.pasteAct = E5Action( |
1075 self.tr('Paste'), | 1043 self.tr('Paste'), |
1076 UI.PixmapCache.getIcon("editPaste.png"), | 1044 UI.PixmapCache.getIcon("editPaste.png"), |
1080 self.pasteAct.setStatusTip(self.tr('Paste text from the clipboard')) | 1048 self.pasteAct.setStatusTip(self.tr('Paste text from the clipboard')) |
1081 self.pasteAct.setWhatsThis(self.tr( | 1049 self.pasteAct.setWhatsThis(self.tr( |
1082 """<b>Paste</b>""" | 1050 """<b>Paste</b>""" |
1083 """<p>Paste some text from the clipboard.</p>""" | 1051 """<p>Paste some text from the clipboard.</p>""" |
1084 )) | 1052 )) |
1085 if not self.__initShortcutsOnly: | 1053 self.pasteAct.triggered.connect(self.__paste) |
1086 self.pasteAct.triggered.connect(self.__paste) | |
1087 self.__actions.append(self.pasteAct) | 1054 self.__actions.append(self.pasteAct) |
1088 | 1055 |
1089 self.undoAct = E5Action( | 1056 self.undoAct = E5Action( |
1090 self.tr('Undo'), | 1057 self.tr('Undo'), |
1091 UI.PixmapCache.getIcon("editUndo.png"), | 1058 UI.PixmapCache.getIcon("editUndo.png"), |
1095 self.undoAct.setStatusTip(self.tr('Undo the last edit action')) | 1062 self.undoAct.setStatusTip(self.tr('Undo the last edit action')) |
1096 self.undoAct.setWhatsThis(self.tr( | 1063 self.undoAct.setWhatsThis(self.tr( |
1097 """<b>Undo</b>""" | 1064 """<b>Undo</b>""" |
1098 """<p>Undo the last edit action.</p>""" | 1065 """<p>Undo the last edit action.</p>""" |
1099 )) | 1066 )) |
1100 if not self.__initShortcutsOnly: | 1067 self.undoAct.triggered.connect(self.__undo) |
1101 self.undoAct.triggered.connect(self.__undo) | |
1102 self.__actions.append(self.undoAct) | 1068 self.__actions.append(self.undoAct) |
1103 | 1069 |
1104 self.redoAct = E5Action( | 1070 self.redoAct = E5Action( |
1105 self.tr('Redo'), | 1071 self.tr('Redo'), |
1106 UI.PixmapCache.getIcon("editRedo.png"), | 1072 UI.PixmapCache.getIcon("editRedo.png"), |
1110 self.redoAct.setStatusTip(self.tr('Redo the last edit action')) | 1076 self.redoAct.setStatusTip(self.tr('Redo the last edit action')) |
1111 self.redoAct.setWhatsThis(self.tr( | 1077 self.redoAct.setWhatsThis(self.tr( |
1112 """<b>Redo</b>""" | 1078 """<b>Redo</b>""" |
1113 """<p>Redo the last edit action.</p>""" | 1079 """<p>Redo the last edit action.</p>""" |
1114 )) | 1080 )) |
1115 if not self.__initShortcutsOnly: | 1081 self.redoAct.triggered.connect(self.__redo) |
1116 self.redoAct.triggered.connect(self.__redo) | |
1117 self.__actions.append(self.redoAct) | 1082 self.__actions.append(self.redoAct) |
1118 | 1083 |
1119 self.selectAllAct = E5Action( | 1084 self.selectAllAct = E5Action( |
1120 self.tr('Select All'), | 1085 self.tr('Select All'), |
1121 UI.PixmapCache.getIcon("editSelectAll.png"), | 1086 UI.PixmapCache.getIcon("editSelectAll.png"), |
1125 self.selectAllAct.setStatusTip(self.tr('Select all text')) | 1090 self.selectAllAct.setStatusTip(self.tr('Select all text')) |
1126 self.selectAllAct.setWhatsThis(self.tr( | 1091 self.selectAllAct.setWhatsThis(self.tr( |
1127 """<b>Select All</b>""" | 1092 """<b>Select All</b>""" |
1128 """<p>Select all text of the current browser.</p>""" | 1093 """<p>Select all text of the current browser.</p>""" |
1129 )) | 1094 )) |
1130 if not self.__initShortcutsOnly: | 1095 self.selectAllAct.triggered.connect(self.__selectAll) |
1131 self.selectAllAct.triggered.connect(self.__selectAll) | |
1132 self.__actions.append(self.selectAllAct) | 1096 self.__actions.append(self.selectAllAct) |
1133 | 1097 |
1134 self.unselectAct = E5Action( | 1098 self.unselectAct = E5Action( |
1135 self.tr('Unselect'), | 1099 self.tr('Unselect'), |
1136 self.tr('Unselect'), | 1100 self.tr('Unselect'), |
1139 self.unselectAct.setStatusTip(self.tr('Clear current selection')) | 1103 self.unselectAct.setStatusTip(self.tr('Clear current selection')) |
1140 self.unselectAct.setWhatsThis(self.tr( | 1104 self.unselectAct.setWhatsThis(self.tr( |
1141 """<b>Unselect</b>""" | 1105 """<b>Unselect</b>""" |
1142 """<p>Clear the selection of the current browser.</p>""" | 1106 """<p>Clear the selection of the current browser.</p>""" |
1143 )) | 1107 )) |
1144 if not self.__initShortcutsOnly: | 1108 self.unselectAct.triggered.connect(self.__unselect) |
1145 self.unselectAct.triggered.connect(self.__unselect) | |
1146 self.__actions.append(self.unselectAct) | 1109 self.__actions.append(self.unselectAct) |
1147 | 1110 |
1148 self.findAct = E5Action( | 1111 self.findAct = E5Action( |
1149 self.tr('Find...'), | 1112 self.tr('Find...'), |
1150 UI.PixmapCache.getIcon("find.png"), | 1113 UI.PixmapCache.getIcon("find.png"), |
1154 self.findAct.setStatusTip(self.tr('Find text in page')) | 1117 self.findAct.setStatusTip(self.tr('Find text in page')) |
1155 self.findAct.setWhatsThis(self.tr( | 1118 self.findAct.setWhatsThis(self.tr( |
1156 """<b>Find</b>""" | 1119 """<b>Find</b>""" |
1157 """<p>Find text in the current page.</p>""" | 1120 """<p>Find text in the current page.</p>""" |
1158 )) | 1121 )) |
1159 if not self.__initShortcutsOnly: | 1122 self.findAct.triggered.connect(self.__find) |
1160 self.findAct.triggered.connect(self.__find) | |
1161 self.__actions.append(self.findAct) | 1123 self.__actions.append(self.findAct) |
1162 | 1124 |
1163 self.findNextAct = E5Action( | 1125 self.findNextAct = E5Action( |
1164 self.tr('Find next'), | 1126 self.tr('Find next'), |
1165 UI.PixmapCache.getIcon("findNext.png"), | 1127 UI.PixmapCache.getIcon("findNext.png"), |
1170 'Find next occurrence of text in page')) | 1132 'Find next occurrence of text in page')) |
1171 self.findNextAct.setWhatsThis(self.tr( | 1133 self.findNextAct.setWhatsThis(self.tr( |
1172 """<b>Find next</b>""" | 1134 """<b>Find next</b>""" |
1173 """<p>Find the next occurrence of text in the current page.</p>""" | 1135 """<p>Find the next occurrence of text in the current page.</p>""" |
1174 )) | 1136 )) |
1175 if not self.__initShortcutsOnly: | 1137 self.findNextAct.triggered.connect(self.__searchWidget.findNext) |
1176 self.findNextAct.triggered.connect(self.__searchWidget.findNext) | |
1177 self.__actions.append(self.findNextAct) | 1138 self.__actions.append(self.findNextAct) |
1178 | 1139 |
1179 self.findPrevAct = E5Action( | 1140 self.findPrevAct = E5Action( |
1180 self.tr('Find previous'), | 1141 self.tr('Find previous'), |
1181 UI.PixmapCache.getIcon("findPrev.png"), | 1142 UI.PixmapCache.getIcon("findPrev.png"), |
1187 self.findPrevAct.setWhatsThis(self.tr( | 1148 self.findPrevAct.setWhatsThis(self.tr( |
1188 """<b>Find previous</b>""" | 1149 """<b>Find previous</b>""" |
1189 """<p>Find the previous occurrence of text in the current""" | 1150 """<p>Find the previous occurrence of text in the current""" |
1190 """ page.</p>""" | 1151 """ page.</p>""" |
1191 )) | 1152 )) |
1192 if not self.__initShortcutsOnly: | 1153 self.findPrevAct.triggered.connect( |
1193 self.findPrevAct.triggered.connect( | 1154 self.__searchWidget.findPrevious) |
1194 self.__searchWidget.findPrevious) | |
1195 self.__actions.append(self.findPrevAct) | 1155 self.__actions.append(self.findPrevAct) |
1196 | 1156 |
1197 self.bookmarksManageAct = E5Action( | 1157 self.bookmarksManageAct = E5Action( |
1198 self.tr('Manage Bookmarks'), | 1158 self.tr('Manage Bookmarks'), |
1199 self.tr('&Manage Bookmarks...'), | 1159 self.tr('&Manage Bookmarks...'), |
1203 'Open a dialog to manage the bookmarks.')) | 1163 'Open a dialog to manage the bookmarks.')) |
1204 self.bookmarksManageAct.setWhatsThis(self.tr( | 1164 self.bookmarksManageAct.setWhatsThis(self.tr( |
1205 """<b>Manage Bookmarks...</b>""" | 1165 """<b>Manage Bookmarks...</b>""" |
1206 """<p>Open a dialog to manage the bookmarks.</p>""" | 1166 """<p>Open a dialog to manage the bookmarks.</p>""" |
1207 )) | 1167 )) |
1208 if not self.__initShortcutsOnly: | 1168 self.bookmarksManageAct.triggered.connect( |
1209 self.bookmarksManageAct.triggered.connect( | 1169 self.__showBookmarksDialog) |
1210 self.__showBookmarksDialog) | |
1211 self.__actions.append(self.bookmarksManageAct) | 1170 self.__actions.append(self.bookmarksManageAct) |
1212 | 1171 |
1213 self.bookmarksAddAct = E5Action( | 1172 self.bookmarksAddAct = E5Action( |
1214 self.tr('Add Bookmark'), | 1173 self.tr('Add Bookmark'), |
1215 UI.PixmapCache.getIcon("addBookmark.png"), | 1174 UI.PixmapCache.getIcon("addBookmark.png"), |
1221 'Open a dialog to add a bookmark.')) | 1180 'Open a dialog to add a bookmark.')) |
1222 self.bookmarksAddAct.setWhatsThis(self.tr( | 1181 self.bookmarksAddAct.setWhatsThis(self.tr( |
1223 """<b>Add Bookmark</b>""" | 1182 """<b>Add Bookmark</b>""" |
1224 """<p>Open a dialog to add the current URL as a bookmark.</p>""" | 1183 """<p>Open a dialog to add the current URL as a bookmark.</p>""" |
1225 )) | 1184 )) |
1226 if not self.__initShortcutsOnly: | 1185 self.bookmarksAddAct.triggered.connect(self.__addBookmark) |
1227 self.bookmarksAddAct.triggered.connect(self.__addBookmark) | |
1228 self.__actions.append(self.bookmarksAddAct) | 1186 self.__actions.append(self.bookmarksAddAct) |
1229 | 1187 |
1230 self.bookmarksAddFolderAct = E5Action( | 1188 self.bookmarksAddFolderAct = E5Action( |
1231 self.tr('Add Folder'), | 1189 self.tr('Add Folder'), |
1232 self.tr('Add &Folder...'), | 1190 self.tr('Add &Folder...'), |
1235 'Open a dialog to add a new bookmarks folder.')) | 1193 'Open a dialog to add a new bookmarks folder.')) |
1236 self.bookmarksAddFolderAct.setWhatsThis(self.tr( | 1194 self.bookmarksAddFolderAct.setWhatsThis(self.tr( |
1237 """<b>Add Folder...</b>""" | 1195 """<b>Add Folder...</b>""" |
1238 """<p>Open a dialog to add a new bookmarks folder.</p>""" | 1196 """<p>Open a dialog to add a new bookmarks folder.</p>""" |
1239 )) | 1197 )) |
1240 if not self.__initShortcutsOnly: | 1198 self.bookmarksAddFolderAct.triggered.connect( |
1241 self.bookmarksAddFolderAct.triggered.connect( | 1199 self.__addBookmarkFolder) |
1242 self.__addBookmarkFolder) | |
1243 self.__actions.append(self.bookmarksAddFolderAct) | 1200 self.__actions.append(self.bookmarksAddFolderAct) |
1244 | 1201 |
1245 self.bookmarksAllTabsAct = E5Action( | 1202 self.bookmarksAllTabsAct = E5Action( |
1246 self.tr('Bookmark All Tabs'), | 1203 self.tr('Bookmark All Tabs'), |
1247 self.tr('Bookmark All Tabs...'), | 1204 self.tr('Bookmark All Tabs...'), |
1251 self.bookmarksAllTabsAct.setWhatsThis(self.tr( | 1208 self.bookmarksAllTabsAct.setWhatsThis(self.tr( |
1252 """<b>Bookmark All Tabs...</b>""" | 1209 """<b>Bookmark All Tabs...</b>""" |
1253 """<p>Open a dialog to add a new bookmarks folder for""" | 1210 """<p>Open a dialog to add a new bookmarks folder for""" |
1254 """ all open tabs.</p>""" | 1211 """ all open tabs.</p>""" |
1255 )) | 1212 )) |
1256 if not self.__initShortcutsOnly: | 1213 self.bookmarksAllTabsAct.triggered.connect(self.bookmarkAll) |
1257 self.bookmarksAllTabsAct.triggered.connect(self.bookmarkAll) | |
1258 self.__actions.append(self.bookmarksAllTabsAct) | 1214 self.__actions.append(self.bookmarksAllTabsAct) |
1259 | 1215 |
1260 self.whatsThisAct = E5Action( | 1216 self.whatsThisAct = E5Action( |
1261 self.tr('What\'s This?'), | 1217 self.tr('What\'s This?'), |
1262 UI.PixmapCache.getIcon("whatsThis.png"), | 1218 UI.PixmapCache.getIcon("whatsThis.png"), |
1270 """ with a question mark, and you can click on the interface""" | 1226 """ with a question mark, and you can click on the interface""" |
1271 """ elements to get a short description of what they do and how""" | 1227 """ elements to get a short description of what they do and how""" |
1272 """ to use them. In dialogs, this feature can be accessed using""" | 1228 """ to use them. In dialogs, this feature can be accessed using""" |
1273 """ the context help button in the titlebar.</p>""" | 1229 """ the context help button in the titlebar.</p>""" |
1274 )) | 1230 )) |
1275 if not self.__initShortcutsOnly: | 1231 self.whatsThisAct.triggered.connect(self.__whatsThis) |
1276 self.whatsThisAct.triggered.connect(self.__whatsThis) | |
1277 self.__actions.append(self.whatsThisAct) | 1232 self.__actions.append(self.whatsThisAct) |
1278 | 1233 |
1279 self.aboutAct = E5Action( | 1234 self.aboutAct = E5Action( |
1280 self.tr('About'), | 1235 self.tr('About'), |
1281 self.tr('&About'), | 1236 self.tr('&About'), |
1284 'Display information about this software')) | 1239 'Display information about this software')) |
1285 self.aboutAct.setWhatsThis(self.tr( | 1240 self.aboutAct.setWhatsThis(self.tr( |
1286 """<b>About</b>""" | 1241 """<b>About</b>""" |
1287 """<p>Display some information about this software.</p>""" | 1242 """<p>Display some information about this software.</p>""" |
1288 )) | 1243 )) |
1289 if not self.__initShortcutsOnly: | 1244 self.aboutAct.triggered.connect(self.__about) |
1290 self.aboutAct.triggered.connect(self.__about) | |
1291 self.__actions.append(self.aboutAct) | 1245 self.__actions.append(self.aboutAct) |
1292 | 1246 |
1293 self.aboutQtAct = E5Action( | 1247 self.aboutQtAct = E5Action( |
1294 self.tr('About Qt'), | 1248 self.tr('About Qt'), |
1295 self.tr('About &Qt'), | 1249 self.tr('About &Qt'), |
1298 self.tr('Display information about the Qt toolkit')) | 1252 self.tr('Display information about the Qt toolkit')) |
1299 self.aboutQtAct.setWhatsThis(self.tr( | 1253 self.aboutQtAct.setWhatsThis(self.tr( |
1300 """<b>About Qt</b>""" | 1254 """<b>About Qt</b>""" |
1301 """<p>Display some information about the Qt toolkit.</p>""" | 1255 """<p>Display some information about the Qt toolkit.</p>""" |
1302 )) | 1256 )) |
1303 if not self.__initShortcutsOnly: | 1257 self.aboutQtAct.triggered.connect(self.__aboutQt) |
1304 self.aboutQtAct.triggered.connect(self.__aboutQt) | |
1305 self.__actions.append(self.aboutQtAct) | 1258 self.__actions.append(self.aboutQtAct) |
1306 | 1259 |
1307 self.zoomInAct = E5Action( | 1260 self.zoomInAct = E5Action( |
1308 self.tr('Zoom in'), | 1261 self.tr('Zoom in'), |
1309 UI.PixmapCache.getIcon("zoomIn.png"), | 1262 UI.PixmapCache.getIcon("zoomIn.png"), |
1315 self.zoomInAct.setWhatsThis(self.tr( | 1268 self.zoomInAct.setWhatsThis(self.tr( |
1316 """<b>Zoom in</b>""" | 1269 """<b>Zoom in</b>""" |
1317 """<p>Zoom in on the web page.""" | 1270 """<p>Zoom in on the web page.""" |
1318 """ This makes the web page bigger.</p>""" | 1271 """ This makes the web page bigger.</p>""" |
1319 )) | 1272 )) |
1320 if not self.__initShortcutsOnly: | 1273 self.zoomInAct.triggered.connect(self.__zoomIn) |
1321 self.zoomInAct.triggered.connect(self.__zoomIn) | |
1322 self.__actions.append(self.zoomInAct) | 1274 self.__actions.append(self.zoomInAct) |
1323 | 1275 |
1324 self.zoomOutAct = E5Action( | 1276 self.zoomOutAct = E5Action( |
1325 self.tr('Zoom out'), | 1277 self.tr('Zoom out'), |
1326 UI.PixmapCache.getIcon("zoomOut.png"), | 1278 UI.PixmapCache.getIcon("zoomOut.png"), |
1332 self.zoomOutAct.setWhatsThis(self.tr( | 1284 self.zoomOutAct.setWhatsThis(self.tr( |
1333 """<b>Zoom out</b>""" | 1285 """<b>Zoom out</b>""" |
1334 """<p>Zoom out on the web page.""" | 1286 """<p>Zoom out on the web page.""" |
1335 """ This makes the web page smaller.</p>""" | 1287 """ This makes the web page smaller.</p>""" |
1336 )) | 1288 )) |
1337 if not self.__initShortcutsOnly: | 1289 self.zoomOutAct.triggered.connect(self.__zoomOut) |
1338 self.zoomOutAct.triggered.connect(self.__zoomOut) | |
1339 self.__actions.append(self.zoomOutAct) | 1290 self.__actions.append(self.zoomOutAct) |
1340 | 1291 |
1341 self.zoomResetAct = E5Action( | 1292 self.zoomResetAct = E5Action( |
1342 self.tr('Zoom reset'), | 1293 self.tr('Zoom reset'), |
1343 UI.PixmapCache.getIcon("zoomReset.png"), | 1294 UI.PixmapCache.getIcon("zoomReset.png"), |
1349 self.zoomResetAct.setWhatsThis(self.tr( | 1300 self.zoomResetAct.setWhatsThis(self.tr( |
1350 """<b>Zoom reset</b>""" | 1301 """<b>Zoom reset</b>""" |
1351 """<p>Reset the zoom of the web page. """ | 1302 """<p>Reset the zoom of the web page. """ |
1352 """This sets the zoom factor to 100%.</p>""" | 1303 """This sets the zoom factor to 100%.</p>""" |
1353 )) | 1304 )) |
1354 if not self.__initShortcutsOnly: | 1305 self.zoomResetAct.triggered.connect(self.__zoomReset) |
1355 self.zoomResetAct.triggered.connect(self.__zoomReset) | |
1356 self.__actions.append(self.zoomResetAct) | 1306 self.__actions.append(self.zoomResetAct) |
1357 | 1307 |
1358 self.pageSourceAct = E5Action( | 1308 self.pageSourceAct = E5Action( |
1359 self.tr('Show page source'), | 1309 self.tr('Show page source'), |
1360 self.tr('Show page source'), | 1310 self.tr('Show page source'), |
1364 'Show the page source in an editor')) | 1314 'Show the page source in an editor')) |
1365 self.pageSourceAct.setWhatsThis(self.tr( | 1315 self.pageSourceAct.setWhatsThis(self.tr( |
1366 """<b>Show page source</b>""" | 1316 """<b>Show page source</b>""" |
1367 """<p>Show the page source in an editor.</p>""" | 1317 """<p>Show the page source in an editor.</p>""" |
1368 )) | 1318 )) |
1369 if not self.__initShortcutsOnly: | 1319 self.pageSourceAct.triggered.connect(self.__showPageSource) |
1370 self.pageSourceAct.triggered.connect(self.__showPageSource) | |
1371 self.__actions.append(self.pageSourceAct) | 1320 self.__actions.append(self.pageSourceAct) |
1372 self.addAction(self.pageSourceAct) | 1321 self.addAction(self.pageSourceAct) |
1373 | 1322 |
1374 self.fullScreenAct = E5Action( | 1323 self.fullScreenAct = E5Action( |
1375 self.tr('Full Screen'), | 1324 self.tr('Full Screen'), |
1380 if Globals.isMacPlatform(): | 1329 if Globals.isMacPlatform(): |
1381 self.fullScreenAct.setShortcut( | 1330 self.fullScreenAct.setShortcut( |
1382 QKeySequence(self.tr("Meta+Ctrl+F"))) | 1331 QKeySequence(self.tr("Meta+Ctrl+F"))) |
1383 else: | 1332 else: |
1384 self.fullScreenAct.setShortcut(QKeySequence(self.tr('F11'))) | 1333 self.fullScreenAct.setShortcut(QKeySequence(self.tr('F11'))) |
1385 if not self.__initShortcutsOnly: | 1334 self.fullScreenAct.triggered.connect(self.toggleFullScreen) |
1386 self.fullScreenAct.triggered.connect(self.toggleFullScreen) | |
1387 self.__actions.append(self.fullScreenAct) | 1335 self.__actions.append(self.fullScreenAct) |
1388 self.addAction(self.fullScreenAct) | 1336 self.addAction(self.fullScreenAct) |
1389 | 1337 |
1390 self.nextTabAct = E5Action( | 1338 self.nextTabAct = E5Action( |
1391 self.tr('Show next tab'), | 1339 self.tr('Show next tab'), |
1392 self.tr('Show next tab'), | 1340 self.tr('Show next tab'), |
1393 QKeySequence(self.tr('Ctrl+Alt+Tab')), 0, | 1341 QKeySequence(self.tr('Ctrl+Alt+Tab')), 0, |
1394 self, 'webbrowser_view_next_tab') | 1342 self, 'webbrowser_view_next_tab') |
1395 if not self.__initShortcutsOnly: | 1343 self.nextTabAct.triggered.connect(self.__nextTab) |
1396 self.nextTabAct.triggered.connect(self.__nextTab) | |
1397 self.__actions.append(self.nextTabAct) | 1344 self.__actions.append(self.nextTabAct) |
1398 self.addAction(self.nextTabAct) | 1345 self.addAction(self.nextTabAct) |
1399 | 1346 |
1400 self.prevTabAct = E5Action( | 1347 self.prevTabAct = E5Action( |
1401 self.tr('Show previous tab'), | 1348 self.tr('Show previous tab'), |
1402 self.tr('Show previous tab'), | 1349 self.tr('Show previous tab'), |
1403 QKeySequence(self.tr('Shift+Ctrl+Alt+Tab')), 0, | 1350 QKeySequence(self.tr('Shift+Ctrl+Alt+Tab')), 0, |
1404 self, 'webbrowser_view_previous_tab') | 1351 self, 'webbrowser_view_previous_tab') |
1405 if not self.__initShortcutsOnly: | 1352 self.prevTabAct.triggered.connect(self.__prevTab) |
1406 self.prevTabAct.triggered.connect(self.__prevTab) | |
1407 self.__actions.append(self.prevTabAct) | 1353 self.__actions.append(self.prevTabAct) |
1408 self.addAction(self.prevTabAct) | 1354 self.addAction(self.prevTabAct) |
1409 | 1355 |
1410 self.switchTabAct = E5Action( | 1356 self.switchTabAct = E5Action( |
1411 self.tr('Switch between tabs'), | 1357 self.tr('Switch between tabs'), |
1412 self.tr('Switch between tabs'), | 1358 self.tr('Switch between tabs'), |
1413 QKeySequence(self.tr('Ctrl+1')), 0, | 1359 QKeySequence(self.tr('Ctrl+1')), 0, |
1414 self, 'webbrowser_switch_tabs') | 1360 self, 'webbrowser_switch_tabs') |
1415 if not self.__initShortcutsOnly: | 1361 self.switchTabAct.triggered.connect(self.__switchTab) |
1416 self.switchTabAct.triggered.connect(self.__switchTab) | |
1417 self.__actions.append(self.switchTabAct) | 1362 self.__actions.append(self.switchTabAct) |
1418 self.addAction(self.switchTabAct) | 1363 self.addAction(self.switchTabAct) |
1419 | 1364 |
1420 self.prefAct = E5Action( | 1365 self.prefAct = E5Action( |
1421 self.tr('Preferences'), | 1366 self.tr('Preferences'), |
1426 self.prefAct.setWhatsThis(self.tr( | 1371 self.prefAct.setWhatsThis(self.tr( |
1427 """<b>Preferences</b>""" | 1372 """<b>Preferences</b>""" |
1428 """<p>Set the configuration items of the application""" | 1373 """<p>Set the configuration items of the application""" |
1429 """ with your prefered values.</p>""" | 1374 """ with your prefered values.</p>""" |
1430 )) | 1375 )) |
1431 if not self.__initShortcutsOnly: | 1376 self.prefAct.triggered.connect(self.__showPreferences) |
1432 self.prefAct.triggered.connect(self.__showPreferences) | |
1433 self.__actions.append(self.prefAct) | 1377 self.__actions.append(self.prefAct) |
1434 | 1378 |
1435 self.acceptedLanguagesAct = E5Action( | 1379 self.acceptedLanguagesAct = E5Action( |
1436 self.tr('Languages'), | 1380 self.tr('Languages'), |
1437 UI.PixmapCache.getIcon("flag.png"), | 1381 UI.PixmapCache.getIcon("flag.png"), |
1441 'Configure the accepted languages for web pages')) | 1385 'Configure the accepted languages for web pages')) |
1442 self.acceptedLanguagesAct.setWhatsThis(self.tr( | 1386 self.acceptedLanguagesAct.setWhatsThis(self.tr( |
1443 """<b>Languages</b>""" | 1387 """<b>Languages</b>""" |
1444 """<p>Configure the accepted languages for web pages.</p>""" | 1388 """<p>Configure the accepted languages for web pages.</p>""" |
1445 )) | 1389 )) |
1446 if not self.__initShortcutsOnly: | 1390 self.acceptedLanguagesAct.triggered.connect( |
1447 self.acceptedLanguagesAct.triggered.connect( | 1391 self.__showAcceptedLanguages) |
1448 self.__showAcceptedLanguages) | |
1449 self.__actions.append(self.acceptedLanguagesAct) | 1392 self.__actions.append(self.acceptedLanguagesAct) |
1450 | 1393 |
1451 self.cookiesAct = E5Action( | 1394 self.cookiesAct = E5Action( |
1452 self.tr('Cookies'), | 1395 self.tr('Cookies'), |
1453 UI.PixmapCache.getIcon("cookie.png"), | 1396 UI.PixmapCache.getIcon("cookie.png"), |
1456 'Configure cookies handling')) | 1399 'Configure cookies handling')) |
1457 self.cookiesAct.setWhatsThis(self.tr( | 1400 self.cookiesAct.setWhatsThis(self.tr( |
1458 """<b>Cookies</b>""" | 1401 """<b>Cookies</b>""" |
1459 """<p>Configure cookies handling.</p>""" | 1402 """<p>Configure cookies handling.</p>""" |
1460 )) | 1403 )) |
1461 if not self.__initShortcutsOnly: | 1404 self.cookiesAct.triggered.connect( |
1462 self.cookiesAct.triggered.connect( | 1405 self.__showCookiesConfiguration) |
1463 self.__showCookiesConfiguration) | |
1464 self.__actions.append(self.cookiesAct) | 1406 self.__actions.append(self.cookiesAct) |
1465 | 1407 |
1466 self.flashCookiesAct = E5Action( | 1408 self.flashCookiesAct = E5Action( |
1467 self.tr('Flash Cookies'), | 1409 self.tr('Flash Cookies'), |
1468 UI.PixmapCache.getIcon("flashCookie.png"), | 1410 UI.PixmapCache.getIcon("flashCookie.png"), |
1472 'Manage flash cookies')) | 1414 'Manage flash cookies')) |
1473 self.flashCookiesAct.setWhatsThis(self.tr( | 1415 self.flashCookiesAct.setWhatsThis(self.tr( |
1474 """<b>Flash Cookies</b>""" | 1416 """<b>Flash Cookies</b>""" |
1475 """<p>Show a dialog to manage the flash cookies.</p>""" | 1417 """<p>Show a dialog to manage the flash cookies.</p>""" |
1476 )) | 1418 )) |
1477 if not self.__initShortcutsOnly: | 1419 self.flashCookiesAct.triggered.connect( |
1478 self.flashCookiesAct.triggered.connect( | 1420 self.__showFlashCookiesManagement) |
1479 self.__showFlashCookiesManagement) | |
1480 self.__actions.append(self.flashCookiesAct) | 1421 self.__actions.append(self.flashCookiesAct) |
1481 | 1422 |
1482 self.personalDataAct = E5Action( | 1423 self.personalDataAct = E5Action( |
1483 self.tr('Personal Information'), | 1424 self.tr('Personal Information'), |
1484 UI.PixmapCache.getIcon("pim.png"), | 1425 UI.PixmapCache.getIcon("pim.png"), |
1490 self.personalDataAct.setWhatsThis(self.tr( | 1431 self.personalDataAct.setWhatsThis(self.tr( |
1491 """<b>Personal Information...</b>""" | 1432 """<b>Personal Information...</b>""" |
1492 """<p>Opens a dialog to configure the personal information""" | 1433 """<p>Opens a dialog to configure the personal information""" |
1493 """ used for completing form fields.</p>""" | 1434 """ used for completing form fields.</p>""" |
1494 )) | 1435 )) |
1495 if not self.__initShortcutsOnly: | 1436 self.personalDataAct.triggered.connect( |
1496 self.personalDataAct.triggered.connect( | 1437 self.__showPersonalInformationDialog) |
1497 self.__showPersonalInformationDialog) | |
1498 self.__actions.append(self.personalDataAct) | 1438 self.__actions.append(self.personalDataAct) |
1499 | 1439 |
1500 self.greaseMonkeyAct = E5Action( | 1440 self.greaseMonkeyAct = E5Action( |
1501 self.tr('GreaseMonkey Scripts'), | 1441 self.tr('GreaseMonkey Scripts'), |
1502 UI.PixmapCache.getIcon("greaseMonkey.png"), | 1442 UI.PixmapCache.getIcon("greaseMonkey.png"), |
1508 self.greaseMonkeyAct.setWhatsThis(self.tr( | 1448 self.greaseMonkeyAct.setWhatsThis(self.tr( |
1509 """<b>GreaseMonkey Scripts...</b>""" | 1449 """<b>GreaseMonkey Scripts...</b>""" |
1510 """<p>Opens a dialog to configure the available GreaseMonkey""" | 1450 """<p>Opens a dialog to configure the available GreaseMonkey""" |
1511 """ Scripts.</p>""" | 1451 """ Scripts.</p>""" |
1512 )) | 1452 )) |
1513 if not self.__initShortcutsOnly: | 1453 self.greaseMonkeyAct.triggered.connect( |
1514 self.greaseMonkeyAct.triggered.connect( | 1454 self.__showGreaseMonkeyConfigDialog) |
1515 self.__showGreaseMonkeyConfigDialog) | |
1516 self.__actions.append(self.greaseMonkeyAct) | 1455 self.__actions.append(self.greaseMonkeyAct) |
1517 | 1456 |
1518 self.editMessageFilterAct = E5Action( | 1457 self.editMessageFilterAct = E5Action( |
1519 self.tr('Edit Message Filters'), | 1458 self.tr('Edit Message Filters'), |
1520 UI.PixmapCache.getIcon("warning.png"), | 1459 UI.PixmapCache.getIcon("warning.png"), |
1526 """<b>Edit Message Filters</b>""" | 1465 """<b>Edit Message Filters</b>""" |
1527 """<p>Opens a dialog to edit the message filters used to""" | 1466 """<p>Opens a dialog to edit the message filters used to""" |
1528 """ suppress unwanted messages been shown in an error""" | 1467 """ suppress unwanted messages been shown in an error""" |
1529 """ window.</p>""" | 1468 """ window.</p>""" |
1530 )) | 1469 )) |
1531 if not self.__initShortcutsOnly: | 1470 self.editMessageFilterAct.triggered.connect( |
1532 self.editMessageFilterAct.triggered.connect( | 1471 E5ErrorMessage.editMessageFilters) |
1533 E5ErrorMessage.editMessageFilters) | |
1534 self.__actions.append(self.editMessageFilterAct) | 1472 self.__actions.append(self.editMessageFilterAct) |
1535 | 1473 |
1536 self.featurePermissionAct = E5Action( | 1474 self.featurePermissionAct = E5Action( |
1537 self.tr('Edit HTML5 Feature Permissions'), | 1475 self.tr('Edit HTML5 Feature Permissions'), |
1538 UI.PixmapCache.getIcon("featurePermission.png"), | 1476 UI.PixmapCache.getIcon("featurePermission.png"), |
1543 self.featurePermissionAct.setWhatsThis(self.tr( | 1481 self.featurePermissionAct.setWhatsThis(self.tr( |
1544 """<b>Edit HTML5 Feature Permissions</b>""" | 1482 """<b>Edit HTML5 Feature Permissions</b>""" |
1545 """<p>Opens a dialog to edit the remembered HTML5""" | 1483 """<p>Opens a dialog to edit the remembered HTML5""" |
1546 """ feature permissions.</p>""" | 1484 """ feature permissions.</p>""" |
1547 )) | 1485 )) |
1548 if not self.__initShortcutsOnly: | 1486 self.featurePermissionAct.triggered.connect( |
1549 self.featurePermissionAct.triggered.connect( | 1487 self.__showFeaturePermissionDialog) |
1550 self.__showFeaturePermissionDialog) | |
1551 self.__actions.append(self.featurePermissionAct) | 1488 self.__actions.append(self.featurePermissionAct) |
1552 | 1489 |
1553 if WebBrowserWindow._useQtHelp or self.__initShortcutsOnly: | 1490 if WebBrowserWindow._useQtHelp: |
1554 self.syncTocAct = E5Action( | 1491 self.syncTocAct = E5Action( |
1555 self.tr('Sync with Table of Contents'), | 1492 self.tr('Sync with Table of Contents'), |
1556 UI.PixmapCache.getIcon("syncToc.png"), | 1493 UI.PixmapCache.getIcon("syncToc.png"), |
1557 self.tr('Sync with Table of Contents'), | 1494 self.tr('Sync with Table of Contents'), |
1558 0, 0, self, 'webbrowser_sync_toc') | 1495 0, 0, self, 'webbrowser_sync_toc') |
1561 self.syncTocAct.setWhatsThis(self.tr( | 1498 self.syncTocAct.setWhatsThis(self.tr( |
1562 """<b>Sync with Table of Contents</b>""" | 1499 """<b>Sync with Table of Contents</b>""" |
1563 """<p>Synchronizes the table of contents with current""" | 1500 """<p>Synchronizes the table of contents with current""" |
1564 """ page.</p>""" | 1501 """ page.</p>""" |
1565 )) | 1502 )) |
1566 if not self.__initShortcutsOnly: | 1503 self.syncTocAct.triggered.connect(self.__syncTOC) |
1567 self.syncTocAct.triggered.connect(self.__syncTOC) | |
1568 self.__actions.append(self.syncTocAct) | 1504 self.__actions.append(self.syncTocAct) |
1569 | 1505 |
1570 self.showTocAct = E5Action( | 1506 self.showTocAct = E5Action( |
1571 self.tr('Table of Contents'), | 1507 self.tr('Table of Contents'), |
1572 self.tr('Table of Contents'), | 1508 self.tr('Table of Contents'), |
1575 'Shows the table of contents window')) | 1511 'Shows the table of contents window')) |
1576 self.showTocAct.setWhatsThis(self.tr( | 1512 self.showTocAct.setWhatsThis(self.tr( |
1577 """<b>Table of Contents</b>""" | 1513 """<b>Table of Contents</b>""" |
1578 """<p>Shows the table of contents window.</p>""" | 1514 """<p>Shows the table of contents window.</p>""" |
1579 )) | 1515 )) |
1580 if not self.__initShortcutsOnly: | 1516 self.showTocAct.triggered.connect(self.__showTocWindow) |
1581 self.showTocAct.triggered.connect(self.__showTocWindow) | |
1582 self.__actions.append(self.showTocAct) | 1517 self.__actions.append(self.showTocAct) |
1583 | 1518 |
1584 self.showIndexAct = E5Action( | 1519 self.showIndexAct = E5Action( |
1585 self.tr('Index'), | 1520 self.tr('Index'), |
1586 self.tr('Index'), | 1521 self.tr('Index'), |
1589 'Shows the index window')) | 1524 'Shows the index window')) |
1590 self.showIndexAct.setWhatsThis(self.tr( | 1525 self.showIndexAct.setWhatsThis(self.tr( |
1591 """<b>Index</b>""" | 1526 """<b>Index</b>""" |
1592 """<p>Shows the index window.</p>""" | 1527 """<p>Shows the index window.</p>""" |
1593 )) | 1528 )) |
1594 if not self.__initShortcutsOnly: | 1529 self.showIndexAct.triggered.connect(self.__showIndexWindow) |
1595 self.showIndexAct.triggered.connect(self.__showIndexWindow) | |
1596 self.__actions.append(self.showIndexAct) | 1530 self.__actions.append(self.showIndexAct) |
1597 | 1531 |
1598 self.showSearchAct = E5Action( | 1532 self.showSearchAct = E5Action( |
1599 self.tr('Search'), | 1533 self.tr('Search'), |
1600 self.tr('Search'), | 1534 self.tr('Search'), |
1603 'Shows the search window')) | 1537 'Shows the search window')) |
1604 self.showSearchAct.setWhatsThis(self.tr( | 1538 self.showSearchAct.setWhatsThis(self.tr( |
1605 """<b>Search</b>""" | 1539 """<b>Search</b>""" |
1606 """<p>Shows the search window.</p>""" | 1540 """<p>Shows the search window.</p>""" |
1607 )) | 1541 )) |
1608 if not self.__initShortcutsOnly: | 1542 self.showSearchAct.triggered.connect( |
1609 self.showSearchAct.triggered.connect( | 1543 self.__showSearchWindow) |
1610 self.__showSearchWindow) | |
1611 self.__actions.append(self.showSearchAct) | 1544 self.__actions.append(self.showSearchAct) |
1612 | 1545 |
1613 self.manageQtHelpDocsAct = E5Action( | 1546 self.manageQtHelpDocsAct = E5Action( |
1614 self.tr('Manage QtHelp Documents'), | 1547 self.tr('Manage QtHelp Documents'), |
1615 self.tr('Manage QtHelp &Documents'), | 1548 self.tr('Manage QtHelp &Documents'), |
1619 self.manageQtHelpDocsAct.setWhatsThis(self.tr( | 1552 self.manageQtHelpDocsAct.setWhatsThis(self.tr( |
1620 """<b>Manage QtHelp Documents</b>""" | 1553 """<b>Manage QtHelp Documents</b>""" |
1621 """<p>Shows a dialog to manage the QtHelp documentation""" | 1554 """<p>Shows a dialog to manage the QtHelp documentation""" |
1622 """ set.</p>""" | 1555 """ set.</p>""" |
1623 )) | 1556 )) |
1624 if not self.__initShortcutsOnly: | 1557 self.manageQtHelpDocsAct.triggered.connect( |
1625 self.manageQtHelpDocsAct.triggered.connect( | 1558 self.__manageQtHelpDocumentation) |
1626 self.__manageQtHelpDocumentation) | |
1627 self.__actions.append(self.manageQtHelpDocsAct) | 1559 self.__actions.append(self.manageQtHelpDocsAct) |
1628 | 1560 |
1629 self.manageQtHelpFiltersAct = E5Action( | 1561 self.manageQtHelpFiltersAct = E5Action( |
1630 self.tr('Manage QtHelp Filters'), | 1562 self.tr('Manage QtHelp Filters'), |
1631 self.tr('Manage QtHelp &Filters'), | 1563 self.tr('Manage QtHelp &Filters'), |
1634 'Shows a dialog to manage the QtHelp filters')) | 1566 'Shows a dialog to manage the QtHelp filters')) |
1635 self.manageQtHelpFiltersAct.setWhatsThis(self.tr( | 1567 self.manageQtHelpFiltersAct.setWhatsThis(self.tr( |
1636 """<b>Manage QtHelp Filters</b>""" | 1568 """<b>Manage QtHelp Filters</b>""" |
1637 """<p>Shows a dialog to manage the QtHelp filters.</p>""" | 1569 """<p>Shows a dialog to manage the QtHelp filters.</p>""" |
1638 )) | 1570 )) |
1639 if not self.__initShortcutsOnly: | 1571 self.manageQtHelpFiltersAct.triggered.connect( |
1640 self.manageQtHelpFiltersAct.triggered.connect( | 1572 self.__manageQtHelpFilters) |
1641 self.__manageQtHelpFilters) | |
1642 self.__actions.append(self.manageQtHelpFiltersAct) | 1573 self.__actions.append(self.manageQtHelpFiltersAct) |
1643 | 1574 |
1644 self.reindexDocumentationAct = E5Action( | 1575 self.reindexDocumentationAct = E5Action( |
1645 self.tr('Reindex Documentation'), | 1576 self.tr('Reindex Documentation'), |
1646 self.tr('&Reindex Documentation'), | 1577 self.tr('&Reindex Documentation'), |
1649 'Reindexes the documentation set')) | 1580 'Reindexes the documentation set')) |
1650 self.reindexDocumentationAct.setWhatsThis(self.tr( | 1581 self.reindexDocumentationAct.setWhatsThis(self.tr( |
1651 """<b>Reindex Documentation</b>""" | 1582 """<b>Reindex Documentation</b>""" |
1652 """<p>Reindexes the documentation set.</p>""" | 1583 """<p>Reindexes the documentation set.</p>""" |
1653 )) | 1584 )) |
1654 if not self.__initShortcutsOnly: | 1585 self.reindexDocumentationAct.triggered.connect( |
1655 self.reindexDocumentationAct.triggered.connect( | 1586 self.__searchEngine.reindexDocumentation) |
1656 self.__searchEngine.reindexDocumentation) | |
1657 self.__actions.append(self.reindexDocumentationAct) | 1587 self.__actions.append(self.reindexDocumentationAct) |
1658 | 1588 |
1659 self.clearPrivateDataAct = E5Action( | 1589 self.clearPrivateDataAct = E5Action( |
1660 self.tr('Clear private data'), | 1590 self.tr('Clear private data'), |
1661 UI.PixmapCache.getIcon("clearPrivateData.png"), | 1591 UI.PixmapCache.getIcon("clearPrivateData.png"), |
1667 self.clearPrivateDataAct.setWhatsThis(self.tr( | 1597 self.clearPrivateDataAct.setWhatsThis(self.tr( |
1668 """<b>Clear private data</b>""" | 1598 """<b>Clear private data</b>""" |
1669 """<p>Clears the private data like browsing history, search""" | 1599 """<p>Clears the private data like browsing history, search""" |
1670 """ history or the favicons database.</p>""" | 1600 """ history or the favicons database.</p>""" |
1671 )) | 1601 )) |
1672 if not self.__initShortcutsOnly: | 1602 self.clearPrivateDataAct.triggered.connect( |
1673 self.clearPrivateDataAct.triggered.connect( | 1603 self.__clearPrivateData) |
1674 self.__clearPrivateData) | |
1675 self.__actions.append(self.clearPrivateDataAct) | 1604 self.__actions.append(self.clearPrivateDataAct) |
1676 | 1605 |
1677 self.clearIconsAct = E5Action( | 1606 self.clearIconsAct = E5Action( |
1678 self.tr('Clear icons database'), | 1607 self.tr('Clear icons database'), |
1679 self.tr('Clear &icons database'), | 1608 self.tr('Clear &icons database'), |
1684 self.clearIconsAct.setWhatsThis(self.tr( | 1613 self.clearIconsAct.setWhatsThis(self.tr( |
1685 """<b>Clear icons database</b>""" | 1614 """<b>Clear icons database</b>""" |
1686 """<p>Clears the database of favicons of previously visited""" | 1615 """<p>Clears the database of favicons of previously visited""" |
1687 """ URLs.</p>""" | 1616 """ URLs.</p>""" |
1688 )) | 1617 )) |
1689 if not self.__initShortcutsOnly: | 1618 self.clearIconsAct.triggered.connect(self.__clearIconsDatabase) |
1690 self.clearIconsAct.triggered.connect(self.__clearIconsDatabase) | |
1691 self.__actions.append(self.clearIconsAct) | 1619 self.__actions.append(self.clearIconsAct) |
1692 | 1620 |
1693 self.manageIconsAct = E5Action( | 1621 self.manageIconsAct = E5Action( |
1694 self.tr('Manage saved Favicons'), | 1622 self.tr('Manage saved Favicons'), |
1695 UI.PixmapCache.getIcon("icons.png"), | 1623 UI.PixmapCache.getIcon("icons.png"), |
1701 self.manageIconsAct.setWhatsThis(self.tr( | 1629 self.manageIconsAct.setWhatsThis(self.tr( |
1702 """<b>Manage saved Favicons</b>""" | 1630 """<b>Manage saved Favicons</b>""" |
1703 """<p>This shows a dialog to manage the saved favicons of""" | 1631 """<p>This shows a dialog to manage the saved favicons of""" |
1704 """ previously visited URLs.</p>""" | 1632 """ previously visited URLs.</p>""" |
1705 )) | 1633 )) |
1706 if not self.__initShortcutsOnly: | 1634 self.manageIconsAct.triggered.connect(self.__showWebIconsDialog) |
1707 self.manageIconsAct.triggered.connect(self.__showWebIconsDialog) | |
1708 self.__actions.append(self.manageIconsAct) | 1635 self.__actions.append(self.manageIconsAct) |
1709 | 1636 |
1710 self.searchEnginesAct = E5Action( | 1637 self.searchEnginesAct = E5Action( |
1711 self.tr('Configure Search Engines'), | 1638 self.tr('Configure Search Engines'), |
1712 self.tr('Configure Search &Engines...'), | 1639 self.tr('Configure Search &Engines...'), |
1717 self.searchEnginesAct.setWhatsThis(self.tr( | 1644 self.searchEnginesAct.setWhatsThis(self.tr( |
1718 """<b>Configure Search Engines...</b>""" | 1645 """<b>Configure Search Engines...</b>""" |
1719 """<p>Opens a dialog to configure the available search""" | 1646 """<p>Opens a dialog to configure the available search""" |
1720 """ engines.</p>""" | 1647 """ engines.</p>""" |
1721 )) | 1648 )) |
1722 if not self.__initShortcutsOnly: | 1649 self.searchEnginesAct.triggered.connect( |
1723 self.searchEnginesAct.triggered.connect( | 1650 self.__showEnginesConfigurationDialog) |
1724 self.__showEnginesConfigurationDialog) | |
1725 self.__actions.append(self.searchEnginesAct) | 1651 self.__actions.append(self.searchEnginesAct) |
1726 | 1652 |
1727 self.passwordsAct = E5Action( | 1653 self.passwordsAct = E5Action( |
1728 self.tr('Manage Saved Passwords'), | 1654 self.tr('Manage Saved Passwords'), |
1729 UI.PixmapCache.getIcon("passwords.png"), | 1655 UI.PixmapCache.getIcon("passwords.png"), |
1734 'Manage the saved passwords')) | 1660 'Manage the saved passwords')) |
1735 self.passwordsAct.setWhatsThis(self.tr( | 1661 self.passwordsAct.setWhatsThis(self.tr( |
1736 """<b>Manage Saved Passwords...</b>""" | 1662 """<b>Manage Saved Passwords...</b>""" |
1737 """<p>Opens a dialog to manage the saved passwords.</p>""" | 1663 """<p>Opens a dialog to manage the saved passwords.</p>""" |
1738 )) | 1664 )) |
1739 if not self.__initShortcutsOnly: | 1665 self.passwordsAct.triggered.connect(self.__showPasswordsDialog) |
1740 self.passwordsAct.triggered.connect(self.__showPasswordsDialog) | |
1741 self.__actions.append(self.passwordsAct) | 1666 self.__actions.append(self.passwordsAct) |
1742 | 1667 |
1743 self.adblockAct = E5Action( | 1668 self.adblockAct = E5Action( |
1744 self.tr('Ad Block'), | 1669 self.tr('Ad Block'), |
1745 UI.PixmapCache.getIcon("adBlockPlus.png"), | 1670 UI.PixmapCache.getIcon("adBlockPlus.png"), |
1751 self.adblockAct.setWhatsThis(self.tr( | 1676 self.adblockAct.setWhatsThis(self.tr( |
1752 """<b>Ad Block...</b>""" | 1677 """<b>Ad Block...</b>""" |
1753 """<p>Opens a dialog to configure AdBlock subscriptions and""" | 1678 """<p>Opens a dialog to configure AdBlock subscriptions and""" |
1754 """ rules.</p>""" | 1679 """ rules.</p>""" |
1755 )) | 1680 )) |
1756 if not self.__initShortcutsOnly: | 1681 self.adblockAct.triggered.connect(self.__showAdBlockDialog) |
1757 self.adblockAct.triggered.connect(self.__showAdBlockDialog) | |
1758 self.__actions.append(self.adblockAct) | 1682 self.__actions.append(self.adblockAct) |
1759 | 1683 |
1760 self.certificateErrorsAct = E5Action( | 1684 self.certificateErrorsAct = E5Action( |
1761 self.tr('Manage SSL Certificate Errors'), | 1685 self.tr('Manage SSL Certificate Errors'), |
1762 UI.PixmapCache.getIcon("certificates.png"), | 1686 UI.PixmapCache.getIcon("certificates.png"), |
1768 self.certificateErrorsAct.setWhatsThis(self.tr( | 1692 self.certificateErrorsAct.setWhatsThis(self.tr( |
1769 """<b>Manage SSL Certificate Errors...</b>""" | 1693 """<b>Manage SSL Certificate Errors...</b>""" |
1770 """<p>Opens a dialog to manage the accepted SSL""" | 1694 """<p>Opens a dialog to manage the accepted SSL""" |
1771 """ certificate errors.</p>""" | 1695 """ certificate errors.</p>""" |
1772 )) | 1696 )) |
1773 if not self.__initShortcutsOnly: | 1697 self.certificateErrorsAct.triggered.connect( |
1774 self.certificateErrorsAct.triggered.connect( | 1698 self.__showCertificateErrorsDialog) |
1775 self.__showCertificateErrorsDialog) | |
1776 self.__actions.append(self.certificateErrorsAct) | 1699 self.__actions.append(self.certificateErrorsAct) |
1777 | 1700 |
1778 self.safeBrowsingAct = E5Action( | 1701 self.safeBrowsingAct = E5Action( |
1779 self.tr('Manage Safe Browsing'), | 1702 self.tr('Manage Safe Browsing'), |
1780 UI.PixmapCache.getIcon("safeBrowsing.png"), | 1703 UI.PixmapCache.getIcon("safeBrowsing.png"), |
1785 self.safeBrowsingAct.setWhatsThis(self.tr( | 1708 self.safeBrowsingAct.setWhatsThis(self.tr( |
1786 """<b>Manage Safe Browsing</b>""" | 1709 """<b>Manage Safe Browsing</b>""" |
1787 """<p>This opens a dialog to configure Safe Browsing and""" | 1710 """<p>This opens a dialog to configure Safe Browsing and""" |
1788 """ to manage the local cache.</p>""" | 1711 """ to manage the local cache.</p>""" |
1789 )) | 1712 )) |
1790 if not self.__initShortcutsOnly: | 1713 self.safeBrowsingAct.triggered.connect( |
1791 self.safeBrowsingAct.triggered.connect( | 1714 self.__showSafeBrowsingDialog) |
1792 self.__showSafeBrowsingDialog) | |
1793 self.__actions.append(self.safeBrowsingAct) | 1715 self.__actions.append(self.safeBrowsingAct) |
1794 | 1716 |
1795 self.showDownloadManagerAct = E5Action( | 1717 self.showDownloadManagerAct = E5Action( |
1796 self.tr('Downloads'), | 1718 self.tr('Downloads'), |
1797 self.tr('Downloads'), | 1719 self.tr('Downloads'), |
1800 'Shows the downloads window')) | 1722 'Shows the downloads window')) |
1801 self.showDownloadManagerAct.setWhatsThis(self.tr( | 1723 self.showDownloadManagerAct.setWhatsThis(self.tr( |
1802 """<b>Downloads</b>""" | 1724 """<b>Downloads</b>""" |
1803 """<p>Shows the downloads window.</p>""" | 1725 """<p>Shows the downloads window.</p>""" |
1804 )) | 1726 )) |
1805 if not self.__initShortcutsOnly: | 1727 self.showDownloadManagerAct.triggered.connect( |
1806 self.showDownloadManagerAct.triggered.connect( | 1728 self.__showDownloadsWindow) |
1807 self.__showDownloadsWindow) | |
1808 self.__actions.append(self.showDownloadManagerAct) | 1729 self.__actions.append(self.showDownloadManagerAct) |
1809 | 1730 |
1810 self.feedsManagerAct = E5Action( | 1731 self.feedsManagerAct = E5Action( |
1811 self.tr('RSS Feeds Dialog'), | 1732 self.tr('RSS Feeds Dialog'), |
1812 UI.PixmapCache.getIcon("rss22.png"), | 1733 UI.PixmapCache.getIcon("rss22.png"), |
1819 """<b>RSS Feeds Dialog...</b>""" | 1740 """<b>RSS Feeds Dialog...</b>""" |
1820 """<p>Open a dialog to show the configured RSS feeds.""" | 1741 """<p>Open a dialog to show the configured RSS feeds.""" |
1821 """ It can be used to mange the feeds and to show their""" | 1742 """ It can be used to mange the feeds and to show their""" |
1822 """ contents.</p>""" | 1743 """ contents.</p>""" |
1823 )) | 1744 )) |
1824 if not self.__initShortcutsOnly: | 1745 self.feedsManagerAct.triggered.connect(self.__showFeedsManager) |
1825 self.feedsManagerAct.triggered.connect(self.__showFeedsManager) | |
1826 self.__actions.append(self.feedsManagerAct) | 1746 self.__actions.append(self.feedsManagerAct) |
1827 | 1747 |
1828 self.siteInfoAct = E5Action( | 1748 self.siteInfoAct = E5Action( |
1829 self.tr('Siteinfo Dialog'), | 1749 self.tr('Siteinfo Dialog'), |
1830 UI.PixmapCache.getIcon("helpAbout.png"), | 1750 UI.PixmapCache.getIcon("helpAbout.png"), |
1836 self.siteInfoAct.setWhatsThis(self.tr( | 1756 self.siteInfoAct.setWhatsThis(self.tr( |
1837 """<b>Siteinfo Dialog...</b>""" | 1757 """<b>Siteinfo Dialog...</b>""" |
1838 """<p>Opens a dialog showing some information about the current""" | 1758 """<p>Opens a dialog showing some information about the current""" |
1839 """ site.</p>""" | 1759 """ site.</p>""" |
1840 )) | 1760 )) |
1841 if not self.__initShortcutsOnly: | 1761 self.siteInfoAct.triggered.connect(self.__showSiteinfoDialog) |
1842 self.siteInfoAct.triggered.connect(self.__showSiteinfoDialog) | |
1843 self.__actions.append(self.siteInfoAct) | 1762 self.__actions.append(self.siteInfoAct) |
1844 | 1763 |
1845 self.userAgentManagerAct = E5Action( | 1764 self.userAgentManagerAct = E5Action( |
1846 self.tr('Manage User Agent Settings'), | 1765 self.tr('Manage User Agent Settings'), |
1847 self.tr('Manage &User Agent Settings'), | 1766 self.tr('Manage &User Agent Settings'), |
1850 'Shows a dialog to manage the User Agent settings')) | 1769 'Shows a dialog to manage the User Agent settings')) |
1851 self.userAgentManagerAct.setWhatsThis(self.tr( | 1770 self.userAgentManagerAct.setWhatsThis(self.tr( |
1852 """<b>Manage User Agent Settings</b>""" | 1771 """<b>Manage User Agent Settings</b>""" |
1853 """<p>Shows a dialog to manage the User Agent settings.</p>""" | 1772 """<p>Shows a dialog to manage the User Agent settings.</p>""" |
1854 )) | 1773 )) |
1855 if not self.__initShortcutsOnly: | 1774 self.userAgentManagerAct.triggered.connect( |
1856 self.userAgentManagerAct.triggered.connect( | 1775 self.__showUserAgentsDialog) |
1857 self.__showUserAgentsDialog) | |
1858 self.__actions.append(self.userAgentManagerAct) | 1776 self.__actions.append(self.userAgentManagerAct) |
1859 | 1777 |
1860 self.synchronizationAct = E5Action( | 1778 self.synchronizationAct = E5Action( |
1861 self.tr('Synchronize data'), | 1779 self.tr('Synchronize data'), |
1862 UI.PixmapCache.getIcon("sync.png"), | 1780 UI.PixmapCache.getIcon("sync.png"), |
1867 self.synchronizationAct.setWhatsThis(self.tr( | 1785 self.synchronizationAct.setWhatsThis(self.tr( |
1868 """<b>Synchronize Data...</b>""" | 1786 """<b>Synchronize Data...</b>""" |
1869 """<p>This shows a dialog to synchronize data via the""" | 1787 """<p>This shows a dialog to synchronize data via the""" |
1870 """ network.</p>""" | 1788 """ network.</p>""" |
1871 )) | 1789 )) |
1872 if not self.__initShortcutsOnly: | 1790 self.synchronizationAct.triggered.connect( |
1873 self.synchronizationAct.triggered.connect( | 1791 self.__showSyncDialog) |
1874 self.__showSyncDialog) | |
1875 self.__actions.append(self.synchronizationAct) | 1792 self.__actions.append(self.synchronizationAct) |
1876 | 1793 |
1877 self.zoomValuesAct = E5Action( | 1794 self.zoomValuesAct = E5Action( |
1878 self.tr('Manage Saved Zoom Values'), | 1795 self.tr('Manage Saved Zoom Values'), |
1879 UI.PixmapCache.getIcon("zoomReset.png"), | 1796 UI.PixmapCache.getIcon("zoomReset.png"), |
1884 'Manage the saved zoom values')) | 1801 'Manage the saved zoom values')) |
1885 self.zoomValuesAct.setWhatsThis(self.tr( | 1802 self.zoomValuesAct.setWhatsThis(self.tr( |
1886 """<b>Manage Saved Zoom Values...</b>""" | 1803 """<b>Manage Saved Zoom Values...</b>""" |
1887 """<p>Opens a dialog to manage the saved zoom values.</p>""" | 1804 """<p>Opens a dialog to manage the saved zoom values.</p>""" |
1888 )) | 1805 )) |
1889 if not self.__initShortcutsOnly: | 1806 self.zoomValuesAct.triggered.connect(self.__showZoomValuesDialog) |
1890 self.zoomValuesAct.triggered.connect(self.__showZoomValuesDialog) | |
1891 self.__actions.append(self.zoomValuesAct) | 1807 self.__actions.append(self.zoomValuesAct) |
1892 | 1808 |
1893 self.showJavaScriptConsoleAct = E5Action( | 1809 self.showJavaScriptConsoleAct = E5Action( |
1894 self.tr('JavaScript Console'), | 1810 self.tr('JavaScript Console'), |
1895 self.tr('JavaScript Console'), | 1811 self.tr('JavaScript Console'), |
1898 'Toggle the JavaScript console window')) | 1814 'Toggle the JavaScript console window')) |
1899 self.showJavaScriptConsoleAct.setWhatsThis(self.tr( | 1815 self.showJavaScriptConsoleAct.setWhatsThis(self.tr( |
1900 """<b>JavaScript Console</b>""" | 1816 """<b>JavaScript Console</b>""" |
1901 """<p>This toggles the JavaScript console window.</p>""" | 1817 """<p>This toggles the JavaScript console window.</p>""" |
1902 )) | 1818 )) |
1903 if not self.__initShortcutsOnly: | 1819 self.showJavaScriptConsoleAct.triggered.connect( |
1904 self.showJavaScriptConsoleAct.triggered.connect( | 1820 self.__toggleJavaScriptConsole) |
1905 self.__toggleJavaScriptConsole) | |
1906 self.__actions.append(self.showJavaScriptConsoleAct) | 1821 self.__actions.append(self.showJavaScriptConsoleAct) |
1907 | 1822 |
1908 self.showTabManagerAct = E5Action( | 1823 self.showTabManagerAct = E5Action( |
1909 self.tr('Tab Manager'), | 1824 self.tr('Tab Manager'), |
1910 self.tr('Tab Manager'), | 1825 self.tr('Tab Manager'), |
1913 'Shows the tab manager window')) | 1828 'Shows the tab manager window')) |
1914 self.showTabManagerAct.setWhatsThis(self.tr( | 1829 self.showTabManagerAct.setWhatsThis(self.tr( |
1915 """<b>Tab Manager</b>""" | 1830 """<b>Tab Manager</b>""" |
1916 """<p>Shows the tab manager window.</p>""" | 1831 """<p>Shows the tab manager window.</p>""" |
1917 )) | 1832 )) |
1918 if not self.__initShortcutsOnly: | 1833 self.showTabManagerAct.triggered.connect( |
1919 self.showTabManagerAct.triggered.connect( | 1834 lambda: self.__showTabManager(self.showTabManagerAct)) |
1920 lambda: self.__showTabManager(self.showTabManagerAct)) | |
1921 self.__actions.append(self.showTabManagerAct) | 1835 self.__actions.append(self.showTabManagerAct) |
1922 | 1836 |
1923 self.showSessionsManagerAct = E5Action( | 1837 self.showSessionsManagerAct = E5Action( |
1924 self.tr('Session Manager'), | 1838 self.tr('Session Manager'), |
1925 self.tr('Session Manager...'), | 1839 self.tr('Session Manager...'), |
1928 'Shows the session manager window')) | 1842 'Shows the session manager window')) |
1929 self.showSessionsManagerAct.setWhatsThis(self.tr( | 1843 self.showSessionsManagerAct.setWhatsThis(self.tr( |
1930 """<b>Session Manager</b>""" | 1844 """<b>Session Manager</b>""" |
1931 """<p>Shows the session manager window.</p>""" | 1845 """<p>Shows the session manager window.</p>""" |
1932 )) | 1846 )) |
1933 if not self.__initShortcutsOnly: | 1847 self.showSessionsManagerAct.triggered.connect( |
1934 self.showSessionsManagerAct.triggered.connect( | 1848 self.__showSessionManagerDialog) |
1935 self.__showSessionManagerDialog) | |
1936 self.__actions.append(self.showSessionsManagerAct) | 1849 self.__actions.append(self.showSessionsManagerAct) |
1937 | 1850 |
1938 self.virustotalScanCurrentAct = E5Action( | 1851 self.virustotalScanCurrentAct = E5Action( |
1939 self.tr("Scan current site"), | 1852 self.tr("Scan current site"), |
1940 UI.PixmapCache.getIcon("virustotal.png"), | 1853 UI.PixmapCache.getIcon("virustotal.png"), |
1941 self.tr("Scan current site"), | 1854 self.tr("Scan current site"), |
1942 0, 0, | 1855 0, 0, |
1943 self, 'webbrowser_virustotal_scan_site') | 1856 self, 'webbrowser_virustotal_scan_site') |
1944 if not self.__initShortcutsOnly: | 1857 self.virustotalScanCurrentAct.triggered.connect( |
1945 self.virustotalScanCurrentAct.triggered.connect( | 1858 self.__virusTotalScanCurrentSite) |
1946 self.__virusTotalScanCurrentSite) | |
1947 self.__actions.append(self.virustotalScanCurrentAct) | 1859 self.__actions.append(self.virustotalScanCurrentAct) |
1948 | 1860 |
1949 self.virustotalIpReportAct = E5Action( | 1861 self.virustotalIpReportAct = E5Action( |
1950 self.tr("IP Address Report"), | 1862 self.tr("IP Address Report"), |
1951 UI.PixmapCache.getIcon("virustotal.png"), | 1863 UI.PixmapCache.getIcon("virustotal.png"), |
1952 self.tr("IP Address Report"), | 1864 self.tr("IP Address Report"), |
1953 0, 0, | 1865 0, 0, |
1954 self, 'webbrowser_virustotal_ip_report') | 1866 self, 'webbrowser_virustotal_ip_report') |
1955 if not self.__initShortcutsOnly: | 1867 self.virustotalIpReportAct.triggered.connect( |
1956 self.virustotalIpReportAct.triggered.connect( | 1868 self.__virusTotalIpAddressReport) |
1957 self.__virusTotalIpAddressReport) | |
1958 self.__actions.append(self.virustotalIpReportAct) | 1869 self.__actions.append(self.virustotalIpReportAct) |
1959 | 1870 |
1960 self.virustotalDomainReportAct = E5Action( | 1871 self.virustotalDomainReportAct = E5Action( |
1961 self.tr("Domain Report"), | 1872 self.tr("Domain Report"), |
1962 UI.PixmapCache.getIcon("virustotal.png"), | 1873 UI.PixmapCache.getIcon("virustotal.png"), |
1963 self.tr("Domain Report"), | 1874 self.tr("Domain Report"), |
1964 0, 0, | 1875 0, 0, |
1965 self, 'webbrowser_virustotal_domain_report') | 1876 self, 'webbrowser_virustotal_domain_report') |
1966 if not self.__initShortcutsOnly: | 1877 self.virustotalDomainReportAct.triggered.connect( |
1967 self.virustotalDomainReportAct.triggered.connect( | 1878 self.__virusTotalDomainReport) |
1968 self.__virusTotalDomainReport) | |
1969 self.__actions.append(self.virustotalDomainReportAct) | 1879 self.__actions.append(self.virustotalDomainReportAct) |
1970 | 1880 |
1971 if not Preferences.getWebBrowser("VirusTotalEnabled") or \ | 1881 if not Preferences.getWebBrowser("VirusTotalEnabled") or \ |
1972 Preferences.getWebBrowser("VirusTotalServiceKey") == "": | 1882 Preferences.getWebBrowser("VirusTotalServiceKey") == "": |
1973 self.virustotalScanCurrentAct.setEnabled(False) | 1883 self.virustotalScanCurrentAct.setEnabled(False) |
1987 """<p>Set the keyboard shortcuts of the application""" | 1897 """<p>Set the keyboard shortcuts of the application""" |
1988 """ with your prefered values.</p>""" | 1898 """ with your prefered values.</p>""" |
1989 )) | 1899 )) |
1990 self.shortcutsAct.triggered.connect(self.__configShortcuts) | 1900 self.shortcutsAct.triggered.connect(self.__configShortcuts) |
1991 self.__actions.append(self.shortcutsAct) | 1901 self.__actions.append(self.shortcutsAct) |
1902 | |
1903 self.exportShortcutsAct = E5Action( | |
1904 self.tr('Export Keyboard Shortcuts'), | |
1905 UI.PixmapCache.getIcon("exportShortcuts.png"), | |
1906 self.tr('&Export Keyboard Shortcuts...'), | |
1907 0, 0, self, 'export_keyboard_shortcuts') | |
1908 self.exportShortcutsAct.setStatusTip(self.tr( | |
1909 'Export the keyboard shortcuts')) | |
1910 self.exportShortcutsAct.setWhatsThis(self.tr( | |
1911 """<b>Export Keyboard Shortcuts</b>""" | |
1912 """<p>Export the keyboard shortcuts of the application.</p>""" | |
1913 )) | |
1914 self.exportShortcutsAct.triggered.connect(self.__exportShortcuts) | |
1915 self.__actions.append(self.exportShortcutsAct) | |
1916 | |
1917 self.importShortcutsAct = E5Action( | |
1918 self.tr('Import Keyboard Shortcuts'), | |
1919 UI.PixmapCache.getIcon("importShortcuts.png"), | |
1920 self.tr('&Import Keyboard Shortcuts...'), | |
1921 0, 0, self, 'import_keyboard_shortcuts') | |
1922 self.importShortcutsAct.setStatusTip(self.tr( | |
1923 'Import the keyboard shortcuts')) | |
1924 self.importShortcutsAct.setWhatsThis(self.tr( | |
1925 """<b>Import Keyboard Shortcuts</b>""" | |
1926 """<p>Import the keyboard shortcuts of the application.</p>""" | |
1927 )) | |
1928 self.importShortcutsAct.triggered.connect(self.__importShortcuts) | |
1929 self.__actions.append(self.importShortcutsAct) | |
1992 | 1930 |
1993 self.backAct.setEnabled(False) | 1931 self.backAct.setEnabled(False) |
1994 self.forwardAct.setEnabled(False) | 1932 self.forwardAct.setEnabled(False) |
1995 | 1933 |
1996 # now read the keyboard shortcuts for the actions | 1934 # now read the keyboard shortcuts for the actions |
2125 | 2063 |
2126 menu = mb.addMenu(self.tr('&Settings')) | 2064 menu = mb.addMenu(self.tr('&Settings')) |
2127 menu.addAction(self.prefAct) | 2065 menu.addAction(self.prefAct) |
2128 menu.addSeparator() | 2066 menu.addSeparator() |
2129 menu.addAction(self.shortcutsAct) | 2067 menu.addAction(self.shortcutsAct) |
2068 menu.addAction(self.exportShortcutsAct) | |
2069 menu.addAction(self.importShortcutsAct) | |
2130 menu.addSeparator() | 2070 menu.addSeparator() |
2131 menu.addAction(self.acceptedLanguagesAct) | 2071 menu.addAction(self.acceptedLanguagesAct) |
2132 menu.addAction(self.cookiesAct) | 2072 menu.addAction(self.cookiesAct) |
2133 menu.addAction(self.flashCookiesAct) | 2073 menu.addAction(self.flashCookiesAct) |
2134 menu.addAction(self.personalDataAct) | 2074 menu.addAction(self.personalDataAct) |
2250 self.__superMenu.addSeparator() | 2190 self.__superMenu.addSeparator() |
2251 self.__superMenu.addAction(self.prefAct) | 2191 self.__superMenu.addAction(self.prefAct) |
2252 | 2192 |
2253 menu = self.__superMenu.addMenu(self.tr('Settings')) | 2193 menu = self.__superMenu.addMenu(self.tr('Settings')) |
2254 menu.addAction(self.shortcutsAct) | 2194 menu.addAction(self.shortcutsAct) |
2195 menu.addAction(self.exportShortcutsAct) | |
2196 menu.addAction(self.importShortcutsAct) | |
2255 menu.addSeparator() | 2197 menu.addSeparator() |
2256 menu.addAction(self.acceptedLanguagesAct) | 2198 menu.addAction(self.acceptedLanguagesAct) |
2257 menu.addAction(self.cookiesAct) | 2199 menu.addAction(self.cookiesAct) |
2258 menu.addAction(self.flashCookiesAct) | 2200 menu.addAction(self.flashCookiesAct) |
2259 menu.addAction(self.personalDataAct) | 2201 menu.addAction(self.personalDataAct) |
5056 if self.__shortcutsDialog is None: | 4998 if self.__shortcutsDialog is None: |
5057 from Preferences.ShortcutsDialog import ShortcutsDialog | 4999 from Preferences.ShortcutsDialog import ShortcutsDialog |
5058 self.__shortcutsDialog = ShortcutsDialog(self) | 5000 self.__shortcutsDialog = ShortcutsDialog(self) |
5059 self.__shortcutsDialog.populate(helpViewer=self) | 5001 self.__shortcutsDialog.populate(helpViewer=self) |
5060 self.__shortcutsDialog.show() | 5002 self.__shortcutsDialog.show() |
5003 | |
5004 def __exportShortcuts(self): | |
5005 """ | |
5006 Private slot to export the keyboard shortcuts. | |
5007 """ | |
5008 fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( | |
5009 None, | |
5010 self.tr("Export Keyboard Shortcuts"), | |
5011 "", | |
5012 self.tr("Keyboard shortcut file (*.e4k)"), | |
5013 "", | |
5014 E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite)) | |
5015 | |
5016 if not fn: | |
5017 return | |
5018 | |
5019 ext = QFileInfo(fn).suffix() | |
5020 if not ext: | |
5021 ex = selectedFilter.split("(*")[1].split(")")[0] | |
5022 if ex: | |
5023 fn += ex | |
5024 | |
5025 from Preferences import Shortcuts | |
5026 Shortcuts.exportShortcuts(fn, helpViewer=self) | |
5027 | |
5028 def __importShortcuts(self): | |
5029 """ | |
5030 Private slot to import the keyboard shortcuts. | |
5031 """ | |
5032 fn = E5FileDialog.getOpenFileName( | |
5033 None, | |
5034 self.tr("Import Keyboard Shortcuts"), | |
5035 "", | |
5036 self.tr("Keyboard shortcut file (*.e4k)")) | |
5037 | |
5038 if fn: | |
5039 from Preferences import Shortcuts | |
5040 Shortcuts.importShortcuts(fn, helpViewer=self) |