eric6/WebBrowser/WebBrowserWindow.py

branch
maintenance
changeset 8176
31965986ecd1
parent 8142
43248bafe9b2
parent 8151
8c1445825e7b
child 8273
698ae46f40a4
equal deleted inserted replaced
8153:e01ae92db699 8176:31965986ecd1
155 155
156 WebBrowserWindow._isPrivate = private 156 WebBrowserWindow._isPrivate = private
157 157
158 self.__shortcutsDialog = None 158 self.__shortcutsDialog = None
159 159
160 self.__eventMouseButtons = Qt.NoButton 160 self.__eventMouseButtons = Qt.MouseButton.NoButton
161 self.__eventKeyboardModifiers = Qt.NoModifier 161 self.__eventKeyboardModifiers = Qt.KeyboardModifier.NoModifier
162 162
163 WebBrowserWindow.setUseQtHelp(qthelp or bool(searchWord)) 163 WebBrowserWindow.setUseQtHelp(qthelp or bool(searchWord))
164 164
165 self.webProfile(private) 165 self.webProfile(private)
166 self.networkManager() 166 self.networkManager()
167 167
168 self.__htmlFullScreen = False 168 self.__htmlFullScreen = False
169 self.__windowStates = Qt.WindowNoState 169 self.__windowStates = Qt.WindowState.WindowNoState
170 self.__isClosing = False 170 self.__isClosing = False
171 171
172 from .SearchWidget import SearchWidget 172 from .SearchWidget import SearchWidget
173 from .QtHelp.HelpTocWidget import HelpTocWidget 173 from .QtHelp.HelpTocWidget import HelpTocWidget
174 from .QtHelp.HelpIndexWidget import HelpIndexWidget 174 from .QtHelp.HelpIndexWidget import HelpIndexWidget
242 layout.setSpacing(0) 242 layout.setSpacing(0)
243 layout.addWidget(self.__navigationContainer) 243 layout.addWidget(self.__navigationContainer)
244 layout.addWidget(self.__tabWidget) 244 layout.addWidget(self.__tabWidget)
245 layout.addWidget(self.__searchWidget) 245 layout.addWidget(self.__searchWidget)
246 self.__tabWidget.setSizePolicy( 246 self.__tabWidget.setSizePolicy(
247 QSizePolicy.Preferred, QSizePolicy.Expanding) 247 QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Expanding)
248 centralWidget.setLayout(layout) 248 centralWidget.setLayout(layout)
249 self.setCentralWidget(centralWidget) 249 self.setCentralWidget(centralWidget)
250 self.__searchWidget.hide() 250 self.__searchWidget.hide()
251 251
252 if WebBrowserWindow._useQtHelp: 252 if WebBrowserWindow._useQtHelp:
253 # setup the TOC widget 253 # setup the TOC widget
254 self.__tocWindow = HelpTocWidget(self.__helpEngine) 254 self.__tocWindow = HelpTocWidget(self.__helpEngine)
255 self.__tocDock = QDockWidget(self.tr("Contents"), self) 255 self.__tocDock = QDockWidget(self.tr("Contents"), self)
256 self.__tocDock.setObjectName("TocWindow") 256 self.__tocDock.setObjectName("TocWindow")
257 self.__tocDock.setWidget(self.__tocWindow) 257 self.__tocDock.setWidget(self.__tocWindow)
258 self.addDockWidget(Qt.LeftDockWidgetArea, self.__tocDock) 258 self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea,
259 self.__tocDock)
259 260
260 # setup the index widget 261 # setup the index widget
261 self.__indexWindow = HelpIndexWidget(self.__helpEngine) 262 self.__indexWindow = HelpIndexWidget(self.__helpEngine)
262 self.__indexDock = QDockWidget(self.tr("Index"), self) 263 self.__indexDock = QDockWidget(self.tr("Index"), self)
263 self.__indexDock.setObjectName("IndexWindow") 264 self.__indexDock.setObjectName("IndexWindow")
264 self.__indexDock.setWidget(self.__indexWindow) 265 self.__indexDock.setWidget(self.__indexWindow)
265 self.addDockWidget(Qt.LeftDockWidgetArea, self.__indexDock) 266 self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea,
267 self.__indexDock)
266 268
267 # setup the search widget 269 # setup the search widget
268 self.__searchWord = searchWord 270 self.__searchWord = searchWord
269 self.__indexing = False 271 self.__indexing = False
270 self.__indexingProgress = None 272 self.__indexingProgress = None
275 self.__indexingFinished) 277 self.__indexingFinished)
276 self.__searchWindow = HelpSearchWidget(self.__searchEngine) 278 self.__searchWindow = HelpSearchWidget(self.__searchEngine)
277 self.__searchDock = QDockWidget(self.tr("Search"), self) 279 self.__searchDock = QDockWidget(self.tr("Search"), self)
278 self.__searchDock.setObjectName("SearchWindow") 280 self.__searchDock.setObjectName("SearchWindow")
279 self.__searchDock.setWidget(self.__searchWindow) 281 self.__searchDock.setWidget(self.__searchWindow)
280 self.addDockWidget(Qt.LeftDockWidgetArea, self.__searchDock) 282 self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea,
283 self.__searchDock)
281 284
282 # JavaScript Console window 285 # JavaScript Console window
283 from .WebBrowserJavaScriptConsole import WebBrowserJavaScriptConsole 286 from .WebBrowserJavaScriptConsole import WebBrowserJavaScriptConsole
284 self.__javascriptConsole = WebBrowserJavaScriptConsole(self) 287 self.__javascriptConsole = WebBrowserJavaScriptConsole(self)
285 self.__javascriptConsoleDock = QDockWidget( 288 self.__javascriptConsoleDock = QDockWidget(
286 self.tr("JavaScript Console")) 289 self.tr("JavaScript Console"))
287 self.__javascriptConsoleDock.setObjectName("JavascriptConsole") 290 self.__javascriptConsoleDock.setObjectName("JavascriptConsole")
288 self.__javascriptConsoleDock.setAllowedAreas( 291 self.__javascriptConsoleDock.setAllowedAreas(
289 Qt.BottomDockWidgetArea | Qt.TopDockWidgetArea) 292 Qt.DockWidgetArea.BottomDockWidgetArea |
293 Qt.DockWidgetArea.TopDockWidgetArea)
290 self.__javascriptConsoleDock.setWidget(self.__javascriptConsole) 294 self.__javascriptConsoleDock.setWidget(self.__javascriptConsole)
291 self.addDockWidget(Qt.BottomDockWidgetArea, 295 self.addDockWidget(Qt.DockWidgetArea.BottomDockWidgetArea,
292 self.__javascriptConsoleDock) 296 self.__javascriptConsoleDock)
293 297
294 if Preferences.getWebBrowser("SaveGeometry"): 298 if Preferences.getWebBrowser("SaveGeometry"):
295 g = Preferences.getGeometry("WebBrowserGeometry") 299 g = Preferences.getGeometry("WebBrowserGeometry")
296 else: 300 else:
512 Private method to set the global web settings. 516 Private method to set the global web settings.
513 """ 517 """
514 settings = self.webSettings() 518 settings = self.webSettings()
515 519
516 settings.setFontFamily( 520 settings.setFontFamily(
517 QWebEngineSettings.StandardFont, 521 QWebEngineSettings.FontFamily.StandardFont,
518 Preferences.getWebBrowser("StandardFontFamily")) 522 Preferences.getWebBrowser("StandardFontFamily"))
519 settings.setFontFamily( 523 settings.setFontFamily(
520 QWebEngineSettings.FixedFont, 524 QWebEngineSettings.FontFamily.FixedFont,
521 Preferences.getWebBrowser("FixedFontFamily")) 525 Preferences.getWebBrowser("FixedFontFamily"))
522 settings.setFontFamily( 526 settings.setFontFamily(
523 QWebEngineSettings.SerifFont, 527 QWebEngineSettings.FontFamily.SerifFont,
524 Preferences.getWebBrowser("SerifFontFamily")) 528 Preferences.getWebBrowser("SerifFontFamily"))
525 settings.setFontFamily( 529 settings.setFontFamily(
526 QWebEngineSettings.SansSerifFont, 530 QWebEngineSettings.FontFamily.SansSerifFont,
527 Preferences.getWebBrowser("SansSerifFontFamily")) 531 Preferences.getWebBrowser("SansSerifFontFamily"))
528 settings.setFontFamily( 532 settings.setFontFamily(
529 QWebEngineSettings.CursiveFont, 533 QWebEngineSettings.FontFamily.CursiveFont,
530 Preferences.getWebBrowser("CursiveFontFamily")) 534 Preferences.getWebBrowser("CursiveFontFamily"))
531 settings.setFontFamily( 535 settings.setFontFamily(
532 QWebEngineSettings.FantasyFont, 536 QWebEngineSettings.FontFamily.FantasyFont,
533 Preferences.getWebBrowser("FantasyFontFamily")) 537 Preferences.getWebBrowser("FantasyFontFamily"))
534 538
535 settings.setFontSize( 539 settings.setFontSize(
536 QWebEngineSettings.DefaultFontSize, 540 QWebEngineSettings.FontSize.DefaultFontSize,
537 Preferences.getWebBrowser("DefaultFontSize")) 541 Preferences.getWebBrowser("DefaultFontSize"))
538 settings.setFontSize( 542 settings.setFontSize(
539 QWebEngineSettings.DefaultFixedFontSize, 543 QWebEngineSettings.FontSize.DefaultFixedFontSize,
540 Preferences.getWebBrowser("DefaultFixedFontSize")) 544 Preferences.getWebBrowser("DefaultFixedFontSize"))
541 settings.setFontSize( 545 settings.setFontSize(
542 QWebEngineSettings.MinimumFontSize, 546 QWebEngineSettings.FontSize.MinimumFontSize,
543 Preferences.getWebBrowser("MinimumFontSize")) 547 Preferences.getWebBrowser("MinimumFontSize"))
544 settings.setFontSize( 548 settings.setFontSize(
545 QWebEngineSettings.MinimumLogicalFontSize, 549 QWebEngineSettings.FontSize.MinimumLogicalFontSize,
546 Preferences.getWebBrowser("MinimumLogicalFontSize")) 550 Preferences.getWebBrowser("MinimumLogicalFontSize"))
547 551
548 styleSheet = Preferences.getWebBrowser("UserStyleSheet") 552 styleSheet = Preferences.getWebBrowser("UserStyleSheet")
549 self.__setUserStyleSheet(styleSheet) 553 self.__setUserStyleSheet(styleSheet)
550 554
551 settings.setAttribute( 555 settings.setAttribute(
552 QWebEngineSettings.AutoLoadImages, 556 QWebEngineSettings.WebAttribute.AutoLoadImages,
553 Preferences.getWebBrowser("AutoLoadImages")) 557 Preferences.getWebBrowser("AutoLoadImages"))
554 settings.setAttribute( 558 settings.setAttribute(
555 QWebEngineSettings.JavascriptEnabled, 559 QWebEngineSettings.WebAttribute.JavascriptEnabled,
556 Preferences.getWebBrowser("JavaScriptEnabled")) 560 Preferences.getWebBrowser("JavaScriptEnabled"))
557 # JavaScript is needed for the web browser functionality 561 # JavaScript is needed for the web browser functionality
558 settings.setAttribute( 562 settings.setAttribute(
559 QWebEngineSettings.JavascriptCanOpenWindows, 563 QWebEngineSettings.WebAttribute.JavascriptCanOpenWindows,
560 Preferences.getWebBrowser("JavaScriptCanOpenWindows")) 564 Preferences.getWebBrowser("JavaScriptCanOpenWindows"))
561 settings.setAttribute( 565 settings.setAttribute(
562 QWebEngineSettings.JavascriptCanAccessClipboard, 566 QWebEngineSettings.WebAttribute.JavascriptCanAccessClipboard,
563 Preferences.getWebBrowser("JavaScriptCanAccessClipboard")) 567 Preferences.getWebBrowser("JavaScriptCanAccessClipboard"))
564 settings.setAttribute( 568 settings.setAttribute(
565 QWebEngineSettings.PluginsEnabled, 569 QWebEngineSettings.WebAttribute.PluginsEnabled,
566 Preferences.getWebBrowser("PluginsEnabled")) 570 Preferences.getWebBrowser("PluginsEnabled"))
567 571
568 if self.isPrivate(): 572 if self.isPrivate():
569 settings.setAttribute( 573 settings.setAttribute(
570 QWebEngineSettings.LocalStorageEnabled, False) 574 QWebEngineSettings.WebAttribute.LocalStorageEnabled, False)
571 else: 575 else:
572 settings.setAttribute( 576 settings.setAttribute(
573 QWebEngineSettings.LocalStorageEnabled, 577 QWebEngineSettings.WebAttribute.LocalStorageEnabled,
574 Preferences.getWebBrowser("LocalStorageEnabled")) 578 Preferences.getWebBrowser("LocalStorageEnabled"))
575 settings.setDefaultTextEncoding( 579 settings.setDefaultTextEncoding(
576 Preferences.getWebBrowser("DefaultTextEncoding")) 580 Preferences.getWebBrowser("DefaultTextEncoding"))
577 581
578 settings.setAttribute( 582 settings.setAttribute(
579 QWebEngineSettings.SpatialNavigationEnabled, 583 QWebEngineSettings.WebAttribute.SpatialNavigationEnabled,
580 Preferences.getWebBrowser("SpatialNavigationEnabled")) 584 Preferences.getWebBrowser("SpatialNavigationEnabled"))
581 settings.setAttribute( 585 settings.setAttribute(
582 QWebEngineSettings.LinksIncludedInFocusChain, 586 QWebEngineSettings.WebAttribute.LinksIncludedInFocusChain,
583 Preferences.getWebBrowser("LinksIncludedInFocusChain")) 587 Preferences.getWebBrowser("LinksIncludedInFocusChain"))
584 settings.setAttribute( 588 settings.setAttribute(
585 QWebEngineSettings.LocalContentCanAccessRemoteUrls, 589 QWebEngineSettings.WebAttribute.LocalContentCanAccessRemoteUrls,
586 Preferences.getWebBrowser("LocalContentCanAccessRemoteUrls")) 590 Preferences.getWebBrowser("LocalContentCanAccessRemoteUrls"))
587 settings.setAttribute( 591 settings.setAttribute(
588 QWebEngineSettings.LocalContentCanAccessFileUrls, 592 QWebEngineSettings.WebAttribute.LocalContentCanAccessFileUrls,
589 Preferences.getWebBrowser("LocalContentCanAccessFileUrls")) 593 Preferences.getWebBrowser("LocalContentCanAccessFileUrls"))
590 settings.setAttribute( 594 settings.setAttribute(
591 QWebEngineSettings.XSSAuditingEnabled, 595 QWebEngineSettings.WebAttribute.XSSAuditingEnabled,
592 Preferences.getWebBrowser("XSSAuditingEnabled")) 596 Preferences.getWebBrowser("XSSAuditingEnabled"))
593 settings.setAttribute( 597 settings.setAttribute(
594 QWebEngineSettings.ScrollAnimatorEnabled, 598 QWebEngineSettings.WebAttribute.ScrollAnimatorEnabled,
595 Preferences.getWebBrowser("ScrollAnimatorEnabled")) 599 Preferences.getWebBrowser("ScrollAnimatorEnabled"))
596 settings.setAttribute( 600 settings.setAttribute(
597 QWebEngineSettings.ErrorPageEnabled, 601 QWebEngineSettings.WebAttribute.ErrorPageEnabled,
598 Preferences.getWebBrowser("ErrorPageEnabled")) 602 Preferences.getWebBrowser("ErrorPageEnabled"))
599 settings.setAttribute( 603 settings.setAttribute(
600 QWebEngineSettings.FullScreenSupportEnabled, 604 QWebEngineSettings.WebAttribute.FullScreenSupportEnabled,
601 Preferences.getWebBrowser("FullScreenSupportEnabled")) 605 Preferences.getWebBrowser("FullScreenSupportEnabled"))
602 settings.setAttribute( 606 settings.setAttribute(
603 QWebEngineSettings.ScreenCaptureEnabled, 607 QWebEngineSettings.WebAttribute.ScreenCaptureEnabled,
604 Preferences.getWebBrowser("ScreenCaptureEnabled")) 608 Preferences.getWebBrowser("ScreenCaptureEnabled"))
605 settings.setAttribute( 609 settings.setAttribute(
606 QWebEngineSettings.WebGLEnabled, 610 QWebEngineSettings.WebAttribute.WebGLEnabled,
607 Preferences.getWebBrowser("WebGLEnabled")) 611 Preferences.getWebBrowser("WebGLEnabled"))
608 settings.setAttribute( 612 settings.setAttribute(
609 QWebEngineSettings.FocusOnNavigationEnabled, 613 QWebEngineSettings.WebAttribute.FocusOnNavigationEnabled,
610 Preferences.getWebBrowser("FocusOnNavigationEnabled")) 614 Preferences.getWebBrowser("FocusOnNavigationEnabled"))
611 settings.setAttribute( 615 settings.setAttribute(
612 QWebEngineSettings.PrintElementBackgrounds, 616 QWebEngineSettings.WebAttribute.PrintElementBackgrounds,
613 Preferences.getWebBrowser("PrintElementBackgrounds")) 617 Preferences.getWebBrowser("PrintElementBackgrounds"))
614 settings.setAttribute( 618 settings.setAttribute(
615 QWebEngineSettings.AllowRunningInsecureContent, 619 QWebEngineSettings.WebAttribute.AllowRunningInsecureContent,
616 Preferences.getWebBrowser("AllowRunningInsecureContent")) 620 Preferences.getWebBrowser("AllowRunningInsecureContent"))
617 settings.setAttribute( 621 settings.setAttribute(
618 QWebEngineSettings.AllowGeolocationOnInsecureOrigins, 622 QWebEngineSettings.WebAttribute.AllowGeolocationOnInsecureOrigins,
619 Preferences.getWebBrowser("AllowGeolocationOnInsecureOrigins")) 623 Preferences.getWebBrowser("AllowGeolocationOnInsecureOrigins"))
620 settings.setAttribute( 624 settings.setAttribute(
621 QWebEngineSettings.AllowWindowActivationFromJavaScript, 625 QWebEngineSettings.WebAttribute
626 .AllowWindowActivationFromJavaScript,
622 Preferences.getWebBrowser( 627 Preferences.getWebBrowser(
623 "AllowWindowActivationFromJavaScript")) 628 "AllowWindowActivationFromJavaScript"))
624 settings.setAttribute( 629 settings.setAttribute(
625 QWebEngineSettings.ShowScrollBars, 630 QWebEngineSettings.WebAttribute.ShowScrollBars,
626 Preferences.getWebBrowser("ShowScrollBars")) 631 Preferences.getWebBrowser("ShowScrollBars"))
627 settings.setAttribute( 632 settings.setAttribute(
628 QWebEngineSettings.PlaybackRequiresUserGesture, 633 QWebEngineSettings.WebAttribute.PlaybackRequiresUserGesture,
629 Preferences.getWebBrowser( 634 Preferences.getWebBrowser(
630 "PlaybackRequiresUserGesture")) 635 "PlaybackRequiresUserGesture"))
631 settings.setAttribute( 636 settings.setAttribute(
632 QWebEngineSettings.JavascriptCanPaste, 637 QWebEngineSettings.WebAttribute.JavascriptCanPaste,
633 Preferences.getWebBrowser( 638 Preferences.getWebBrowser(
634 "JavaScriptCanPaste")) 639 "JavaScriptCanPaste"))
635 settings.setAttribute( 640 settings.setAttribute(
636 QWebEngineSettings.WebRTCPublicInterfacesOnly, 641 QWebEngineSettings.WebAttribute.WebRTCPublicInterfacesOnly,
637 Preferences.getWebBrowser( 642 Preferences.getWebBrowser(
638 "WebRTCPublicInterfacesOnly")) 643 "WebRTCPublicInterfacesOnly"))
639 settings.setAttribute( 644 settings.setAttribute(
640 QWebEngineSettings.DnsPrefetchEnabled, 645 QWebEngineSettings.WebAttribute.DnsPrefetchEnabled,
641 Preferences.getWebBrowser( 646 Preferences.getWebBrowser(
642 "DnsPrefetchEnabled")) 647 "DnsPrefetchEnabled"))
643 648
644 try: 649 try:
645 # Qt 5.13 650 # Qt 5.13
646 settings.setAttribute( 651 settings.setAttribute(
647 QWebEngineSettings.PdfViewerEnabled, 652 QWebEngineSettings.WebAttribute.PdfViewerEnabled,
648 Preferences.getWebBrowser( 653 Preferences.getWebBrowser(
649 "PdfViewerEnabled")) 654 "PdfViewerEnabled"))
650 except (AttributeError, KeyError): 655 except (AttributeError, KeyError):
651 pass 656 pass
652 657
2301 "ComboBoxWithEnoughWidth") 2306 "ComboBoxWithEnoughWidth")
2302 self.filterCombo.setMinimumWidth(comboWidth) 2307 self.filterCombo.setMinimumWidth(comboWidth)
2303 filtertb.addWidget(QLabel(self.tr("Filtered by: "))) 2308 filtertb.addWidget(QLabel(self.tr("Filtered by: ")))
2304 filtertb.addWidget(self.filterCombo) 2309 filtertb.addWidget(self.filterCombo)
2305 self.__helpEngine.setupFinished.connect(self.__setupFilterCombo) 2310 self.__helpEngine.setupFinished.connect(self.__setupFilterCombo)
2306 self.filterCombo.activated[str].connect( 2311 self.filterCombo.activated[int].connect(
2307 self.__filterQtHelpDocumentation) 2312 self.__filterQtHelpDocumentation)
2308 self.__setupFilterCombo() 2313 self.__setupFilterCombo()
2309 self.__toolbars["filter"] = (filtertb.windowTitle(), filtertb) 2314 self.__toolbars["filter"] = (filtertb.windowTitle(), filtertb)
2310 2315
2311 settingstb = self.addToolBar(self.tr("Settings")) 2316 settingstb = self.addToolBar(self.tr("Settings"))
2337 2342
2338 self.addToolBarBreak() 2343 self.addToolBarBreak()
2339 vttb = self.addToolBar(self.tr("VirusTotal")) 2344 vttb = self.addToolBar(self.tr("VirusTotal"))
2340 vttb.setObjectName("VirusTotalToolBar") 2345 vttb.setObjectName("VirusTotalToolBar")
2341 vttb.setIconSize(UI.Config.ToolBarIconSize) 2346 vttb.setIconSize(UI.Config.ToolBarIconSize)
2342 vttb.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) 2347 vttb.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon)
2343 vttb.addAction(self.virustotalScanCurrentAct) 2348 vttb.addAction(self.virustotalScanCurrentAct)
2344 vttb.addAction(self.virustotalIpReportAct) 2349 vttb.addAction(self.virustotalIpReportAct)
2345 vttb.addAction(self.virustotalDomainReportAct) 2350 vttb.addAction(self.virustotalDomainReportAct)
2346 self.__toolbars["virustotal"] = (vttb.windowTitle(), vttb) 2351 self.__toolbars["virustotal"] = (vttb.windowTitle(), vttb)
2347 2352
2982 """ 2987 """
2983 Public slot called to toggle the full screen mode. 2988 Public slot called to toggle the full screen mode.
2984 """ 2989 """
2985 if self.__htmlFullScreen: 2990 if self.__htmlFullScreen:
2986 self.currentBrowser().triggerPageAction( 2991 self.currentBrowser().triggerPageAction(
2987 QWebEnginePage.ExitFullScreen) 2992 QWebEnginePage.WebAction.ExitFullScreen)
2988 return 2993 return
2989 2994
2990 if self.isFullScreen(): 2995 if self.isFullScreen():
2991 # switch back to normal 2996 # switch back to normal
2992 self.showNormal() 2997 self.showNormal()
3168 dlg.showConfigurationPageByName(self.__lastConfigurationPageName) 3173 dlg.showConfigurationPageByName(self.__lastConfigurationPageName)
3169 else: 3174 else:
3170 dlg.showConfigurationPageByName("empty") 3175 dlg.showConfigurationPageByName("empty")
3171 dlg.exec() 3176 dlg.exec()
3172 QApplication.processEvents() 3177 QApplication.processEvents()
3173 if dlg.result() == QDialog.Accepted: 3178 if dlg.result() == QDialog.DialogCode.Accepted:
3174 dlg.setPreferences() 3179 dlg.setPreferences()
3175 Preferences.syncPreferences() 3180 Preferences.syncPreferences()
3176 self.preferencesChanged() 3181 self.preferencesChanged()
3177 self.__lastConfigurationPageName = dlg.getConfigurationPageName() 3182 self.__lastConfigurationPageName = dlg.getConfigurationPageName()
3178 3183
3196 self.autoScroller().preferencesChanged() 3201 self.autoScroller().preferencesChanged()
3197 3202
3198 profile = self.webProfile() 3203 profile = self.webProfile()
3199 if not self.isPrivate(): 3204 if not self.isPrivate():
3200 if Preferences.getWebBrowser("DiskCacheEnabled"): 3205 if Preferences.getWebBrowser("DiskCacheEnabled"):
3201 profile.setHttpCacheType(QWebEngineProfile.DiskHttpCache) 3206 profile.setHttpCacheType(
3207 QWebEngineProfile.HttpCacheType.DiskHttpCache)
3202 profile.setHttpCacheMaximumSize( 3208 profile.setHttpCacheMaximumSize(
3203 Preferences.getWebBrowser("DiskCacheSize") * 1024 * 1024) 3209 Preferences.getWebBrowser("DiskCacheSize") * 1024 * 1024)
3204 else: 3210 else:
3205 profile.setHttpCacheType(QWebEngineProfile.MemoryHttpCache) 3211 profile.setHttpCacheType(
3212 QWebEngineProfile.HttpCacheType.MemoryHttpCache)
3206 profile.setHttpCacheMaximumSize(0) 3213 profile.setHttpCacheMaximumSize(0)
3207 3214
3208 try: 3215 try:
3209 profile.setSpellCheckEnabled( 3216 profile.setSpellCheckEnabled(
3210 Preferences.getWebBrowser("SpellCheckEnabled")) 3217 Preferences.getWebBrowser("SpellCheckEnabled"))
3436 idx = self.filterCombo.findText(curFilter) 3443 idx = self.filterCombo.findText(curFilter)
3437 if idx < 0: 3444 if idx < 0:
3438 idx = 0 3445 idx = 0
3439 self.filterCombo.setCurrentIndex(idx) 3446 self.filterCombo.setCurrentIndex(idx)
3440 3447
3441 def __filterQtHelpDocumentation(self, customFilter): 3448 def __filterQtHelpDocumentation(self, index):
3442 """ 3449 """
3443 Private slot to filter the QtHelp documentation. 3450 Private slot to filter the QtHelp documentation.
3444 3451
3445 @param customFilter name of filter to be applied (string) 3452 @param index index of the selected entry
3446 """ 3453 @type int
3454 """
3455 customFilter = self.filterCombo.itemText(index)
3447 if self.__helpEngine: 3456 if self.__helpEngine:
3448 self.__helpEngine.setCurrentFilter(customFilter) 3457 self.__helpEngine.setCurrentFilter(customFilter)
3449 3458
3450 def __manageQtHelpDocumentation(self): 3459 def __manageQtHelpDocumentation(self):
3451 """ 3460 """
3478 self.__indexing = True 3487 self.__indexing = True
3479 if self.__indexingProgress is None: 3488 if self.__indexingProgress is None:
3480 self.__indexingProgress = QWidget() 3489 self.__indexingProgress = QWidget()
3481 layout = QHBoxLayout(self.__indexingProgress) 3490 layout = QHBoxLayout(self.__indexingProgress)
3482 layout.setContentsMargins(0, 0, 0, 0) 3491 layout.setContentsMargins(0, 0, 0, 0)
3483 sizePolicy = QSizePolicy(QSizePolicy.Preferred, 3492 sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred,
3484 QSizePolicy.Maximum) 3493 QSizePolicy.Policy.Maximum)
3485 3494
3486 label = QLabel(self.tr("Updating search index")) 3495 label = QLabel(self.tr("Updating search index"))
3487 label.setSizePolicy(sizePolicy) 3496 label.setSizePolicy(sizePolicy)
3488 layout.addWidget(label) 3497 layout.addWidget(label)
3489 3498
3517 not self.__indexing and 3526 not self.__indexing and
3518 self.__searchWord is not None 3527 self.__searchWord is not None
3519 ): 3528 ):
3520 self.__searchDock.show() 3529 self.__searchDock.show()
3521 self.__searchDock.raise_() 3530 self.__searchDock.raise_()
3522 query = QHelpSearchQuery(QHelpSearchQuery.DEFAULT, 3531 query = QHelpSearchQuery(QHelpSearchQuery.FieldName.DEFAULT,
3523 [self.__searchWord]) 3532 [self.__searchWord])
3524 self.__searchEngine.search([query]) 3533 self.__searchEngine.search([query])
3525 self.__searchWord = None 3534 self.__searchWord = None
3526 3535
3527 def search(self, word): 3536 def search(self, word):
3621 """ 3630 """
3622 from .WebBrowserClearPrivateDataDialog import ( 3631 from .WebBrowserClearPrivateDataDialog import (
3623 WebBrowserClearPrivateDataDialog 3632 WebBrowserClearPrivateDataDialog
3624 ) 3633 )
3625 dlg = WebBrowserClearPrivateDataDialog(self) 3634 dlg = WebBrowserClearPrivateDataDialog(self)
3626 if dlg.exec() == QDialog.Accepted: 3635 if dlg.exec() == QDialog.DialogCode.Accepted:
3627 # browsing history, search history, favicons, disk cache, cookies, 3636 # browsing history, search history, favicons, disk cache, cookies,
3628 # passwords, web databases, downloads, zoom values, SSL error 3637 # passwords, web databases, downloads, zoom values, SSL error
3629 # exceptions, history period 3638 # exceptions, history period
3630 (history, searches, favicons, cache, cookies, 3639 (history, searches, favicons, cache, cookies,
3631 passwords, databases, downloads, zoomValues, 3640 passwords, databases, downloads, zoomValues,
4340 """ 4349 """
4341 Protected method called by a mouse press event. 4350 Protected method called by a mouse press event.
4342 4351
4343 @param evt reference to the mouse event (QMouseEvent) 4352 @param evt reference to the mouse event (QMouseEvent)
4344 """ 4353 """
4345 if evt.button() == Qt.XButton1: 4354 if evt.button() == Qt.MouseButton.XButton1:
4346 self.currentBrowser().triggerPageAction(QWebEnginePage.Back) 4355 self.currentBrowser().triggerPageAction(
4347 elif evt.button() == Qt.XButton2: 4356 QWebEnginePage.WebAction.Back)
4348 self.currentBrowser().triggerPageAction(QWebEnginePage.Forward) 4357 elif evt.button() == Qt.MouseButton.XButton2:
4358 self.currentBrowser().triggerPageAction(
4359 QWebEnginePage.WebAction.Forward)
4349 else: 4360 else:
4350 super(WebBrowserWindow, self).mousePressEvent(evt) 4361 super(WebBrowserWindow, self).mousePressEvent(evt)
4351 4362
4352 @classmethod 4363 @classmethod
4353 def feedsManager(cls): 4364 def feedsManager(cls):
4459 @param evt reference to the key press event (QKeyEvent) 4470 @param evt reference to the key press event (QKeyEvent)
4460 """ 4471 """
4461 number = -1 4472 number = -1
4462 key = evt.key() 4473 key = evt.key()
4463 4474
4464 if key == Qt.Key_1: 4475 if key == Qt.Key.Key_1:
4465 number = 1 4476 number = 1
4466 elif key == Qt.Key_2: 4477 elif key == Qt.Key.Key_2:
4467 number = 2 4478 number = 2
4468 elif key == Qt.Key_3: 4479 elif key == Qt.Key.Key_3:
4469 number = 3 4480 number = 3
4470 elif key == Qt.Key_4: 4481 elif key == Qt.Key.Key_4:
4471 number = 4 4482 number = 4
4472 elif key == Qt.Key_5: 4483 elif key == Qt.Key.Key_5:
4473 number = 5 4484 number = 5
4474 elif key == Qt.Key_6: 4485 elif key == Qt.Key.Key_6:
4475 number = 6 4486 number = 6
4476 elif key == Qt.Key_7: 4487 elif key == Qt.Key.Key_7:
4477 number = 7 4488 number = 7
4478 elif key == Qt.Key_8: 4489 elif key == Qt.Key.Key_8:
4479 number = 8 4490 number = 8
4480 elif key == Qt.Key_9: 4491 elif key == Qt.Key.Key_9:
4481 number = 9 4492 number = 9
4482 elif key == Qt.Key_0: 4493 elif key == Qt.Key.Key_0:
4483 number = 10 4494 number = 10
4484 4495
4485 if number != -1: 4496 if number != -1:
4486 if evt.modifiers() == Qt.KeyboardModifiers(Qt.AltModifier): 4497 if evt.modifiers() == Qt.KeyboardModifiers(
4498 Qt.KeyboardModifier.AltModifier
4499 ):
4487 if number == 10: 4500 if number == 10:
4488 number = self.__tabWidget.count() 4501 number = self.__tabWidget.count()
4489 self.__tabWidget.setCurrentIndex(number - 1) 4502 self.__tabWidget.setCurrentIndex(number - 1)
4490 return 4503 return
4491 4504
4492 if evt.modifiers() == Qt.KeyboardModifiers(Qt.MetaModifier): 4505 if evt.modifiers() == Qt.KeyboardModifiers(
4506 Qt.KeyboardModifier.MetaModifier
4507 ):
4493 url = self.speedDial().urlForShortcut(number - 1) 4508 url = self.speedDial().urlForShortcut(number - 1)
4494 if url.isValid(): 4509 if url.isValid():
4495 self.__linkActivated(url) 4510 self.__linkActivated(url)
4496 return 4511 return
4497 4512
4504 @param evt reference to the event 4519 @param evt reference to the event
4505 @type QEvent 4520 @type QEvent
4506 @return flag indicating a handled event 4521 @return flag indicating a handled event
4507 @rtype bool 4522 @rtype bool
4508 """ 4523 """
4509 if evt.type() == QEvent.WindowStateChange: 4524 if evt.type() == QEvent.Type.WindowStateChange:
4510 if ( 4525 if (
4511 not bool(evt.oldState() & Qt.WindowFullScreen) and 4526 not bool(evt.oldState() & Qt.WindowState.WindowFullScreen) and
4512 bool(self.windowState() & Qt.WindowFullScreen) 4527 bool(self.windowState() & Qt.WindowState.WindowFullScreen)
4513 ): 4528 ):
4514 # enter full screen mode 4529 # enter full screen mode
4515 self.__windowStates = evt.oldState() 4530 self.__windowStates = evt.oldState()
4516 self.__toolbarStates = self.saveState() 4531 self.__toolbarStates = self.saveState()
4517 self.menuBar().hide() 4532 self.menuBar().hide()
4524 toolbar.hide() 4539 toolbar.hide()
4525 self.__navigationBar.exitFullScreenButton().setVisible(True) 4540 self.__navigationBar.exitFullScreenButton().setVisible(True)
4526 self.__navigationContainer.hide() 4541 self.__navigationContainer.hide()
4527 4542
4528 elif ( 4543 elif (
4529 bool(evt.oldState() & Qt.WindowFullScreen) and 4544 bool(evt.oldState() & Qt.WindowState.WindowFullScreen) and
4530 not bool(self.windowState() & Qt.WindowFullScreen) 4545 not bool(self.windowState() & Qt.WindowState.WindowFullScreen)
4531 ): 4546 ):
4532 # leave full screen mode 4547 # leave full screen mode
4533 self.setWindowState(self.__windowStates) 4548 self.setWindowState(self.__windowStates)
4534 self.__htmlFullScreen = False 4549 self.__htmlFullScreen = False
4535 if Preferences.getWebBrowser("MenuBarVisible"): 4550 if Preferences.getWebBrowser("MenuBarVisible"):
4603 """ 4618 """
4604 ip, ok = QInputDialog.getText( 4619 ip, ok = QInputDialog.getText(
4605 self, 4620 self,
4606 self.tr("IP Address Report"), 4621 self.tr("IP Address Report"),
4607 self.tr("Enter a valid IPv4 address in dotted quad notation:"), 4622 self.tr("Enter a valid IPv4 address in dotted quad notation:"),
4608 QLineEdit.Normal) 4623 QLineEdit.EchoMode.Normal)
4609 if ok and ip: 4624 if ok and ip:
4610 if ip.count(".") == 3: 4625 if ip.count(".") == 3:
4611 self.__virusTotal.getIpAddressReport(ip) 4626 self.__virusTotal.getIpAddressReport(ip)
4612 else: 4627 else:
4613 E5MessageBox.information( 4628 E5MessageBox.information(
4622 """ 4637 """
4623 domain, ok = QInputDialog.getText( 4638 domain, ok = QInputDialog.getText(
4624 self, 4639 self,
4625 self.tr("Domain Report"), 4640 self.tr("Domain Report"),
4626 self.tr("Enter a valid domain name:"), 4641 self.tr("Enter a valid domain name:"),
4627 QLineEdit.Normal) 4642 QLineEdit.EchoMode.Normal)
4628 if ok and domain: 4643 if ok and domain:
4629 self.__virusTotal.getDomainReport(domain) 4644 self.__virusTotal.getDomainReport(domain)
4630 4645
4631 ########################################################################### 4646 ###########################################################################
4632 ## Style sheet handling below ## 4647 ## Style sheet handling below ##
4660 if userStyle: 4675 if userStyle:
4661 from .WebBrowserPage import WebBrowserPage 4676 from .WebBrowserPage import WebBrowserPage
4662 4677
4663 script = QWebEngineScript() 4678 script = QWebEngineScript()
4664 script.setName(name) 4679 script.setName(name)
4665 script.setInjectionPoint(QWebEngineScript.DocumentCreation) 4680 script.setInjectionPoint(
4681 QWebEngineScript.InjectionPoint.DocumentCreation)
4666 script.setWorldId(WebBrowserPage.SafeJsWorld) 4682 script.setWorldId(WebBrowserPage.SafeJsWorld)
4667 script.setRunsOnSubFrames(True) 4683 script.setRunsOnSubFrames(True)
4668 script.setSourceCode(Scripts.setStyleSheet(userStyle)) 4684 script.setSourceCode(Scripts.setStyleSheet(userStyle))
4669 self.webProfile().scripts().insert(script) 4685 self.webProfile().scripts().insert(script)
4670 4686
4761 cls._webProfile.defaultUserAgent = userAgent 4777 cls._webProfile.defaultUserAgent = userAgent
4762 4778
4763 if not private: 4779 if not private:
4764 if Preferences.getWebBrowser("DiskCacheEnabled"): 4780 if Preferences.getWebBrowser("DiskCacheEnabled"):
4765 cls._webProfile.setHttpCacheType( 4781 cls._webProfile.setHttpCacheType(
4766 QWebEngineProfile.DiskHttpCache) 4782 QWebEngineProfile.HttpCacheType.DiskHttpCache)
4767 cls._webProfile.setHttpCacheMaximumSize( 4783 cls._webProfile.setHttpCacheMaximumSize(
4768 Preferences.getWebBrowser("DiskCacheSize") * 4784 Preferences.getWebBrowser("DiskCacheSize") *
4769 1024 * 1024) 4785 1024 * 1024)
4770 cls._webProfile.setCachePath(os.path.join( 4786 cls._webProfile.setCachePath(os.path.join(
4771 Utilities.getConfigDir(), "web_browser")) 4787 Utilities.getConfigDir(), "web_browser"))
4772 else: 4788 else:
4773 cls._webProfile.setHttpCacheType( 4789 cls._webProfile.setHttpCacheType(
4774 QWebEngineProfile.MemoryHttpCache) 4790 QWebEngineProfile.HttpCacheType.MemoryHttpCache)
4775 cls._webProfile.setHttpCacheMaximumSize(0) 4791 cls._webProfile.setHttpCacheMaximumSize(0)
4776 cls._webProfile.setPersistentStoragePath(os.path.join( 4792 cls._webProfile.setPersistentStoragePath(os.path.join(
4777 Utilities.getConfigDir(), "web_browser", 4793 Utilities.getConfigDir(), "web_browser",
4778 "persistentstorage")) 4794 "persistentstorage"))
4779 cls._webProfile.setPersistentCookiesPolicy( 4795 cls._webProfile.setPersistentCookiesPolicy(
4780 QWebEngineProfile.AllowPersistentCookies) 4796 QWebEngineProfile.PersistentCookiesPolicy
4797 .AllowPersistentCookies)
4781 4798
4782 try: 4799 try:
4783 cls._webProfile.setSpellCheckEnabled( 4800 cls._webProfile.setSpellCheckEnabled(
4784 Preferences.getWebBrowser("SpellCheckEnabled")) 4801 Preferences.getWebBrowser("SpellCheckEnabled"))
4785 cls._webProfile.setSpellCheckLanguages( 4802 cls._webProfile.setSpellCheckLanguages(
4792 from .WebBrowserPage import WebBrowserPage 4809 from .WebBrowserPage import WebBrowserPage
4793 4810
4794 # WebChannel for SafeJsWorld 4811 # WebChannel for SafeJsWorld
4795 script = QWebEngineScript() 4812 script = QWebEngineScript()
4796 script.setName("_eric_webchannel") 4813 script.setName("_eric_webchannel")
4797 script.setInjectionPoint(QWebEngineScript.DocumentCreation) 4814 script.setInjectionPoint(
4815 QWebEngineScript.InjectionPoint.DocumentCreation)
4798 script.setWorldId(WebBrowserPage.SafeJsWorld) 4816 script.setWorldId(WebBrowserPage.SafeJsWorld)
4799 script.setRunsOnSubFrames(True) 4817 script.setRunsOnSubFrames(True)
4800 script.setSourceCode(Scripts.setupWebChannel(script.worldId())) 4818 script.setSourceCode(Scripts.setupWebChannel(script.worldId()))
4801 cls._webProfile.scripts().insert(script) 4819 cls._webProfile.scripts().insert(script)
4802 4820
4803 # WebChannel for UnsafeJsWorld 4821 # WebChannel for UnsafeJsWorld
4804 script2 = QWebEngineScript() 4822 script2 = QWebEngineScript()
4805 script2.setName("_eric_webchannel2") 4823 script2.setName("_eric_webchannel2")
4806 script2.setInjectionPoint(QWebEngineScript.DocumentCreation) 4824 script2.setInjectionPoint(
4825 QWebEngineScript.InjectionPoint.DocumentCreation)
4807 script2.setWorldId(WebBrowserPage.UnsafeJsWorld) 4826 script2.setWorldId(WebBrowserPage.UnsafeJsWorld)
4808 script2.setRunsOnSubFrames(True) 4827 script2.setRunsOnSubFrames(True)
4809 script2.setSourceCode(Scripts.setupWebChannel(script2.worldId())) 4828 script2.setSourceCode(Scripts.setupWebChannel(script2.worldId()))
4810 cls._webProfile.scripts().insert(script2) 4829 cls._webProfile.scripts().insert(script2)
4811 4830
4812 # document.window object addons 4831 # document.window object addons
4813 script3 = QWebEngineScript() 4832 script3 = QWebEngineScript()
4814 script3.setName("_eric_window_object") 4833 script3.setName("_eric_window_object")
4815 script3.setInjectionPoint(QWebEngineScript.DocumentCreation) 4834 script3.setInjectionPoint(
4835 QWebEngineScript.InjectionPoint.DocumentCreation)
4816 script3.setWorldId(WebBrowserPage.UnsafeJsWorld) 4836 script3.setWorldId(WebBrowserPage.UnsafeJsWorld)
4817 script3.setRunsOnSubFrames(True) 4837 script3.setRunsOnSubFrames(True)
4818 script3.setSourceCode(Scripts.setupWindowObject()) 4838 script3.setSourceCode(Scripts.setupWindowObject())
4819 cls._webProfile.scripts().insert(script3) 4839 cls._webProfile.scripts().insert(script3)
4820 4840

eric ide

mercurial