eric6/WebBrowser/WebBrowserWindow.py

changeset 8243
cc717c2ae956
parent 8235
78e6d29eb773
child 8260
2161475d9639
equal deleted inserted replaced
8242:aa713ac50c0d 8243:cc717c2ae956
9 9
10 import os 10 import os
11 import shutil 11 import shutil
12 import sys 12 import sys
13 import functools 13 import functools
14 import contextlib
14 15
15 from PyQt5.QtCore import ( 16 from PyQt5.QtCore import (
16 pyqtSlot, pyqtSignal, Qt, QByteArray, QSize, QTimer, QUrl, QProcess, 17 pyqtSlot, pyqtSignal, Qt, QByteArray, QSize, QTimer, QUrl, QProcess,
17 QEvent, QFileInfo 18 QEvent, QFileInfo
18 ) 19 )
644 settings.setAttribute( 645 settings.setAttribute(
645 QWebEngineSettings.WebAttribute.DnsPrefetchEnabled, 646 QWebEngineSettings.WebAttribute.DnsPrefetchEnabled,
646 Preferences.getWebBrowser( 647 Preferences.getWebBrowser(
647 "DnsPrefetchEnabled")) 648 "DnsPrefetchEnabled"))
648 649
649 try: 650 with contextlib.suppress(AttributeError, KeyError):
650 # Qt 5.13 651 # Qt 5.13
651 settings.setAttribute( 652 settings.setAttribute(
652 QWebEngineSettings.WebAttribute.PdfViewerEnabled, 653 QWebEngineSettings.WebAttribute.PdfViewerEnabled,
653 Preferences.getWebBrowser( 654 Preferences.getWebBrowser(
654 "PdfViewerEnabled")) 655 "PdfViewerEnabled"))
655 except (AttributeError, KeyError):
656 pass
657 656
658 def __initActions(self): 657 def __initActions(self):
659 """ 658 """
660 Private method to define the user interface actions. 659 Private method to define the user interface actions.
661 """ 660 """
2803 Preferences.setGeometry("WebBrowserGeometry", 2802 Preferences.setGeometry("WebBrowserGeometry",
2804 self.saveGeometry()) 2803 self.saveGeometry())
2805 else: 2804 else:
2806 Preferences.setGeometry("WebBrowserGeometry", QByteArray()) 2805 Preferences.setGeometry("WebBrowserGeometry", QByteArray())
2807 2806
2808 try: 2807 with contextlib.suppress(ValueError):
2809 browserIndex = WebBrowserWindow.BrowserWindows.index(self) 2808 browserIndex = WebBrowserWindow.BrowserWindows.index(self)
2810 if len(WebBrowserWindow.BrowserWindows) and browserIndex == 0: 2809 if len(WebBrowserWindow.BrowserWindows) and browserIndex == 0:
2811 if len(WebBrowserWindow.BrowserWindows) > 1: 2810 if len(WebBrowserWindow.BrowserWindows) > 1:
2812 # first window will be deleted 2811 # first window will be deleted
2813 QDesktopServices.setUrlHandler( 2812 QDesktopServices.setUrlHandler(
2819 else: 2818 else:
2820 QDesktopServices.unsetUrlHandler("http") 2819 QDesktopServices.unsetUrlHandler("http")
2821 QDesktopServices.unsetUrlHandler("https") 2820 QDesktopServices.unsetUrlHandler("https")
2822 if len(WebBrowserWindow.BrowserWindows) > 0: 2821 if len(WebBrowserWindow.BrowserWindows) > 0:
2823 del WebBrowserWindow.BrowserWindows[browserIndex] 2822 del WebBrowserWindow.BrowserWindows[browserIndex]
2824 except ValueError:
2825 pass
2826 2823
2827 Preferences.syncPreferences() 2824 Preferences.syncPreferences()
2828 if ( 2825 if (
2829 not WebBrowserWindow._performingShutdown and 2826 not WebBrowserWindow._performingShutdown and
2830 len(WebBrowserWindow.BrowserWindows) == 0 2827 len(WebBrowserWindow.BrowserWindows) == 0
3212 else: 3209 else:
3213 profile.setHttpCacheType( 3210 profile.setHttpCacheType(
3214 QWebEngineProfile.HttpCacheType.MemoryHttpCache) 3211 QWebEngineProfile.HttpCacheType.MemoryHttpCache)
3215 profile.setHttpCacheMaximumSize(0) 3212 profile.setHttpCacheMaximumSize(0)
3216 3213
3217 try: 3214 with contextlib.suppress(AttributeError):
3218 profile.setSpellCheckEnabled( 3215 profile.setSpellCheckEnabled(
3219 Preferences.getWebBrowser("SpellCheckEnabled")) 3216 Preferences.getWebBrowser("SpellCheckEnabled"))
3220 profile.setSpellCheckLanguages( 3217 profile.setSpellCheckLanguages(
3221 Preferences.getWebBrowser("SpellCheckLanguages")) 3218 Preferences.getWebBrowser("SpellCheckLanguages"))
3222 except AttributeError:
3223 # not yet supported
3224 pass
3225 3219
3226 self.__virusTotal.preferencesChanged() 3220 self.__virusTotal.preferencesChanged()
3227 if ( 3221 if (
3228 not Preferences.getWebBrowser("VirusTotalEnabled") or 3222 not Preferences.getWebBrowser("VirusTotalEnabled") or
3229 Preferences.getWebBrowser("VirusTotalServiceKey") == "" 3223 Preferences.getWebBrowser("VirusTotalServiceKey") == ""
4793 "persistentstorage")) 4787 "persistentstorage"))
4794 cls._webProfile.setPersistentCookiesPolicy( 4788 cls._webProfile.setPersistentCookiesPolicy(
4795 QWebEngineProfile.PersistentCookiesPolicy 4789 QWebEngineProfile.PersistentCookiesPolicy
4796 .AllowPersistentCookies) 4790 .AllowPersistentCookies)
4797 4791
4798 try: 4792 with contextlib.suppress(AttributeError):
4799 cls._webProfile.setSpellCheckEnabled( 4793 cls._webProfile.setSpellCheckEnabled(
4800 Preferences.getWebBrowser("SpellCheckEnabled")) 4794 Preferences.getWebBrowser("SpellCheckEnabled"))
4801 cls._webProfile.setSpellCheckLanguages( 4795 cls._webProfile.setSpellCheckLanguages(
4802 Preferences.getWebBrowser("SpellCheckLanguages")) 4796 Preferences.getWebBrowser("SpellCheckLanguages"))
4803 except AttributeError:
4804 # not yet supported
4805 pass
4806 4797
4807 # Setup QWebChannel user scripts 4798 # Setup QWebChannel user scripts
4808 from .WebBrowserPage import WebBrowserPage 4799 from .WebBrowserPage import WebBrowserPage
4809 4800
4810 # WebChannel for SafeJsWorld 4801 # WebChannel for SafeJsWorld

eric ide

mercurial