From ddf40ac903244b4f54617f5a37afd544248686c8 Mon Sep 17 00:00:00 2001 From: Jimmy Date: Sat, 30 Apr 2022 14:48:41 +1200 Subject: lint: reduce line lengths for long dict defines Running darker over the pyqt reference renames (see previous commit) worked pretty well. Unfortnately we ran into https://github.com/psf/black/issues/620 a lot with dicts with long attributes. Things that used to be manually wrapped like: some_map = { quote_long_attribute_name: also_long_value, } get turned into: some_map = { quote_long_attribute_name: also_long_value, } which is quite often over 88 chars with Qt enum values in the map. I've manually added aliases and such for the Qt enums and classes to shorted the lines. This is likely to conflict entirely with the enum scoped changes on the qt6 branches. --- qutebrowser/browser/webengine/interceptor.py | 44 ++++++------ .../browser/webengine/webengineinspector.py | 5 +- .../browser/webengine/webenginequtescheme.py | 24 ++++--- qutebrowser/browser/webengine/webenginesettings.py | 83 ++++++++++++---------- qutebrowser/browser/webengine/webenginetab.py | 46 ++++++------ qutebrowser/browser/webengine/webview.py | 51 ++++++------- .../browser/webkit/network/webkitqutescheme.py | 11 +-- qutebrowser/browser/webkit/webpage.py | 19 ++--- qutebrowser/misc/earlyinit.py | 3 +- tests/unit/utils/test_qtutils.py | 4 +- 10 files changed, 159 insertions(+), 131 deletions(-) diff --git a/qutebrowser/browser/webengine/interceptor.py b/qutebrowser/browser/webengine/interceptor.py index 7f24eebd4..ad99f1eef 100644 --- a/qutebrowser/browser/webengine/interceptor.py +++ b/qutebrowser/browser/webengine/interceptor.py @@ -67,37 +67,39 @@ class RequestInterceptor(QtWebEngineCore.QWebEngineUrlRequestInterceptor): def __init__(self, parent=None): super().__init__(parent) + req_info = QtWebEngineCore.QWebEngineUrlRequestInfo + resource_type = interceptors.ResourceType # This dict should be from QWebEngine Resource Types to qutebrowser # extension ResourceTypes. If a ResourceType is added to Qt, this table # should be updated too. self._resource_types = { - QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceTypeMainFrame: interceptors.ResourceType.main_frame, - QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceTypeSubFrame: interceptors.ResourceType.sub_frame, - QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceTypeStylesheet: interceptors.ResourceType.stylesheet, - QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceTypeScript: interceptors.ResourceType.script, - QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceTypeImage: interceptors.ResourceType.image, - QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceTypeFontResource: interceptors.ResourceType.font_resource, - QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceTypeSubResource: interceptors.ResourceType.sub_resource, - QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceTypeObject: interceptors.ResourceType.object, - QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceTypeMedia: interceptors.ResourceType.media, - QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceTypeWorker: interceptors.ResourceType.worker, - QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceTypeSharedWorker: interceptors.ResourceType.shared_worker, - QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceTypePrefetch: interceptors.ResourceType.prefetch, - QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceTypeFavicon: interceptors.ResourceType.favicon, - QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceTypeXhr: interceptors.ResourceType.xhr, - QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceTypePing: interceptors.ResourceType.ping, - QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceTypeServiceWorker: interceptors.ResourceType.service_worker, - QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceTypeCspReport: interceptors.ResourceType.csp_report, - QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceTypePluginResource: interceptors.ResourceType.plugin_resource, - QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceTypeUnknown: interceptors.ResourceType.unknown, + req_info.ResourceTypeMainFrame: resource_type.main_frame, + req_info.ResourceTypeSubFrame: resource_type.sub_frame, + req_info.ResourceTypeStylesheet: resource_type.stylesheet, + req_info.ResourceTypeScript: resource_type.script, + req_info.ResourceTypeImage: resource_type.image, + req_info.ResourceTypeFontResource: resource_type.font_resource, + req_info.ResourceTypeSubResource: resource_type.sub_resource, + req_info.ResourceTypeObject: resource_type.object, + req_info.ResourceTypeMedia: resource_type.media, + req_info.ResourceTypeWorker: resource_type.worker, + req_info.ResourceTypeSharedWorker: resource_type.shared_worker, + req_info.ResourceTypePrefetch: resource_type.prefetch, + req_info.ResourceTypeFavicon: resource_type.favicon, + req_info.ResourceTypeXhr: resource_type.xhr, + req_info.ResourceTypePing: resource_type.ping, + req_info.ResourceTypeServiceWorker: resource_type.service_worker, + req_info.ResourceTypeCspReport: resource_type.csp_report, + req_info.ResourceTypePluginResource: resource_type.plugin_resource, + req_info.ResourceTypeUnknown: resource_type.unknown, } try: preload_main_frame = ( - QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceTypeNavigationPreloadMainFrame + req_info.ResourceTypeNavigationPreloadMainFrame ) preload_sub_frame = ( - QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceTypeNavigationPreloadSubFrame + req_info.ResourceTypeNavigationPreloadSubFrame ) except AttributeError: # Added in Qt 5.14 diff --git a/qutebrowser/browser/webengine/webengineinspector.py b/qutebrowser/browser/webengine/webengineinspector.py index 4cdd564d8..3361ef19b 100644 --- a/qutebrowser/browser/webengine/webengineinspector.py +++ b/qutebrowser/browser/webengine/webengineinspector.py @@ -100,7 +100,10 @@ class WebEngineInspector(inspector.AbstractWebInspector): "please install the qt5-qtwebengine-devtools " "Fedora package.") - def inspect(self, page: QtWebEngineWidgets.QWebEnginePage) -> None: # type: ignore[override] + def inspect( + self, + page: QtWebEngineWidgets.QWebEnginePage, + ) -> None: # type: ignore[override] inspector_page = self._widget.page() inspector_page.setInspectedPage(page) self._settings.update_for_url(inspector_page.requestedUrl()) diff --git a/qutebrowser/browser/webengine/webenginequtescheme.py b/qutebrowser/browser/webengine/webenginequtescheme.py index 8e15dd1ad..4fbbb1c55 100644 --- a/qutebrowser/browser/webengine/webenginequtescheme.py +++ b/qutebrowser/browser/webengine/webenginequtescheme.py @@ -92,12 +92,13 @@ class QuteSchemeHandler(QtWebEngineCore.QWebEngineUrlSchemeHandler): try: mimetype, data = qutescheme.data_for_url(url) except qutescheme.Error as e: + url_request_job = QtWebEngineCore.QWebEngineUrlRequestJob errors = { - qutescheme.NotFoundError: QtWebEngineCore.QWebEngineUrlRequestJob.UrlNotFound, - qutescheme.UrlInvalidError: QtWebEngineCore.QWebEngineUrlRequestJob.UrlInvalid, - qutescheme.RequestDeniedError: QtWebEngineCore.QWebEngineUrlRequestJob.RequestDenied, - qutescheme.SchemeOSError: QtWebEngineCore.QWebEngineUrlRequestJob.UrlNotFound, - qutescheme.Error: QtWebEngineCore.QWebEngineUrlRequestJob.RequestFailed, + qutescheme.NotFoundError: url_request_job.UrlNotFound, + qutescheme.UrlInvalidError: url_request_job.UrlInvalid, + qutescheme.RequestDeniedError: url_request_job.RequestDenied, + qutescheme.SchemeOSError: url_request_job.UrlNotFound, + qutescheme.Error: url_request_job.RequestFailed, } exctype = type(e) log.network.error(f"{exctype.__name__} while handling qute://* URL: {e}") @@ -125,11 +126,12 @@ def init(): Note this needs to be called early, before constructing any QtWebEngine classes. """ - if QtWebEngineCore.QWebEngineUrlScheme is not None: - assert not QtWebEngineCore.QWebEngineUrlScheme.schemeByName(b'qute').name() - scheme = QtWebEngineCore.QWebEngineUrlScheme(b'qute') + url_scheme = QtWebEngineCore.QWebEngineUrlScheme + if url_scheme is not None: + assert not url_scheme.schemeByName(b'qute').name() + scheme = url_scheme(b'qute') scheme.setFlags( - QtWebEngineCore.QWebEngineUrlScheme.LocalScheme - | QtWebEngineCore.QWebEngineUrlScheme.LocalAccessAllowed # type: ignore[arg-type] + url_scheme.LocalScheme + | url_scheme.LocalAccessAllowed # type: ignore[arg-type] ) - QtWebEngineCore.QWebEngineUrlScheme.registerScheme(scheme) + url_scheme.registerScheme(scheme) diff --git a/qutebrowser/browser/webengine/webenginesettings.py b/qutebrowser/browser/webengine/webenginesettings.py index ca544a67e..4eb4ce091 100644 --- a/qutebrowser/browser/webengine/webenginesettings.py +++ b/qutebrowser/browser/webengine/webenginesettings.py @@ -40,6 +40,10 @@ from qutebrowser.utils import (standarddir, qtutils, message, log, if TYPE_CHECKING: from qutebrowser.browser.webengine import interceptor + +QWebEngineSettings = QtWebEngineWidgets.QWebEngineSettings + + # The default QWebEngineProfile default_profile = cast(QtWebEngineWidgets.QWebEngineProfile, None) # The QWebEngineProfile used for private (off-the-record) windows @@ -108,93 +112,96 @@ class WebEngineSettings(websettings.AbstractSettings): _ATTRIBUTES = { 'content.xss_auditing': Attr( - QtWebEngineWidgets.QWebEngineSettings.XSSAuditingEnabled + QWebEngineSettings.XSSAuditingEnabled ), - 'content.images': Attr(QtWebEngineWidgets.QWebEngineSettings.AutoLoadImages), + 'content.images': Attr(QWebEngineSettings.AutoLoadImages), 'content.javascript.enabled': Attr( - QtWebEngineWidgets.QWebEngineSettings.JavascriptEnabled + QWebEngineSettings.JavascriptEnabled ), 'content.javascript.can_open_tabs_automatically': Attr( - QtWebEngineWidgets.QWebEngineSettings.JavascriptCanOpenWindows + QWebEngineSettings.JavascriptCanOpenWindows ), 'content.javascript.can_access_clipboard': Attr( - QtWebEngineWidgets.QWebEngineSettings.JavascriptCanAccessClipboard + QWebEngineSettings.JavascriptCanAccessClipboard ), - 'content.plugins': Attr(QtWebEngineWidgets.QWebEngineSettings.PluginsEnabled), + 'content.plugins': Attr(QWebEngineSettings.PluginsEnabled), 'content.hyperlink_auditing': Attr( - QtWebEngineWidgets.QWebEngineSettings.HyperlinkAuditingEnabled + QWebEngineSettings.HyperlinkAuditingEnabled ), 'content.local_content_can_access_remote_urls': Attr( - QtWebEngineWidgets.QWebEngineSettings.LocalContentCanAccessRemoteUrls + QWebEngineSettings.LocalContentCanAccessRemoteUrls ), 'content.local_content_can_access_file_urls': Attr( - QtWebEngineWidgets.QWebEngineSettings.LocalContentCanAccessFileUrls + QWebEngineSettings.LocalContentCanAccessFileUrls ), - 'content.webgl': Attr(QtWebEngineWidgets.QWebEngineSettings.WebGLEnabled), + 'content.webgl': Attr(QWebEngineSettings.WebGLEnabled), 'content.local_storage': Attr( - QtWebEngineWidgets.QWebEngineSettings.LocalStorageEnabled + QWebEngineSettings.LocalStorageEnabled ), 'content.desktop_capture': Attr( - QtWebEngineWidgets.QWebEngineSettings.ScreenCaptureEnabled, + QWebEngineSettings.ScreenCaptureEnabled, converter=lambda val: True if val == 'ask' else val, ), # 'ask' is handled via the permission system 'input.spatial_navigation': Attr( - QtWebEngineWidgets.QWebEngineSettings.SpatialNavigationEnabled + QWebEngineSettings.SpatialNavigationEnabled ), 'input.links_included_in_focus_chain': Attr( - QtWebEngineWidgets.QWebEngineSettings.LinksIncludedInFocusChain + QWebEngineSettings.LinksIncludedInFocusChain ), 'scrolling.smooth': Attr( - QtWebEngineWidgets.QWebEngineSettings.ScrollAnimatorEnabled + QWebEngineSettings.ScrollAnimatorEnabled ), 'content.print_element_backgrounds': Attr( - QtWebEngineWidgets.QWebEngineSettings.PrintElementBackgrounds + QWebEngineSettings.PrintElementBackgrounds ), 'content.autoplay': Attr( - QtWebEngineWidgets.QWebEngineSettings.PlaybackRequiresUserGesture, + QWebEngineSettings.PlaybackRequiresUserGesture, converter=operator.not_, ), 'content.dns_prefetch': Attr( - QtWebEngineWidgets.QWebEngineSettings.DnsPrefetchEnabled + QWebEngineSettings.DnsPrefetchEnabled ), 'tabs.favicons.show': Attr( - QtWebEngineWidgets.QWebEngineSettings.AutoLoadIconsForPage, + QWebEngineSettings.AutoLoadIconsForPage, converter=lambda val: val != 'never', ), } _FONT_SIZES = { - 'fonts.web.size.minimum': QtWebEngineWidgets.QWebEngineSettings.MinimumFontSize, - 'fonts.web.size.minimum_logical': QtWebEngineWidgets.QWebEngineSettings.MinimumLogicalFontSize, - 'fonts.web.size.default': QtWebEngineWidgets.QWebEngineSettings.DefaultFontSize, - 'fonts.web.size.default_fixed': QtWebEngineWidgets.QWebEngineSettings.DefaultFixedFontSize, + 'fonts.web.size.minimum': QWebEngineSettings.MinimumFontSize, + 'fonts.web.size.minimum_logical': QWebEngineSettings.MinimumLogicalFontSize, + 'fonts.web.size.default': QWebEngineSettings.DefaultFontSize, + 'fonts.web.size.default_fixed': QWebEngineSettings.DefaultFixedFontSize, } _FONT_FAMILIES = { - 'fonts.web.family.standard': QtWebEngineWidgets.QWebEngineSettings.StandardFont, - 'fonts.web.family.fixed': QtWebEngineWidgets.QWebEngineSettings.FixedFont, - 'fonts.web.family.serif': QtWebEngineWidgets.QWebEngineSettings.SerifFont, - 'fonts.web.family.sans_serif': QtWebEngineWidgets.QWebEngineSettings.SansSerifFont, - 'fonts.web.family.cursive': QtWebEngineWidgets.QWebEngineSettings.CursiveFont, - 'fonts.web.family.fantasy': QtWebEngineWidgets.QWebEngineSettings.FantasyFont, + 'fonts.web.family.standard': QWebEngineSettings.StandardFont, + 'fonts.web.family.fixed': QWebEngineSettings.FixedFont, + 'fonts.web.family.serif': QWebEngineSettings.SerifFont, + 'fonts.web.family.sans_serif': QWebEngineSettings.SansSerifFont, + 'fonts.web.family.cursive': QWebEngineSettings.CursiveFont, + 'fonts.web.family.fantasy': QWebEngineSettings.FantasyFont, } _UNKNOWN_URL_SCHEME_POLICY = { - 'disallow': QtWebEngineWidgets.QWebEngineSettings.DisallowUnknownUrlSchemes, - 'allow-from-user-interaction': QtWebEngineWidgets.QWebEngineSettings.AllowUnknownUrlSchemesFromUserInteraction, - 'allow-all': QtWebEngineWidgets.QWebEngineSettings.AllowAllUnknownUrlSchemes, + 'disallow': QWebEngineSettings.DisallowUnknownUrlSchemes, + 'allow-from-user-interaction': getattr( # noqa: B009 + QWebEngineSettings, + "AllowUnknownUrlSchemesFromUserInteraction", + ), + 'allow-all': QWebEngineSettings.AllowAllUnknownUrlSchemes, } # Mapping from WebEngineSettings::initDefaults in # qtwebengine/src/core/web_engine_settings.cpp _FONT_TO_QFONT = { - QtWebEngineWidgets.QWebEngineSettings.StandardFont: QtGui.QFont.Serif, - QtWebEngineWidgets.QWebEngineSettings.FixedFont: QtGui.QFont.Monospace, - QtWebEngineWidgets.QWebEngineSettings.SerifFont: QtGui.QFont.Serif, - QtWebEngineWidgets.QWebEngineSettings.SansSerifFont: QtGui.QFont.SansSerif, - QtWebEngineWidgets.QWebEngineSettings.CursiveFont: QtGui.QFont.Cursive, - QtWebEngineWidgets.QWebEngineSettings.FantasyFont: QtGui.QFont.Fantasy, + QWebEngineSettings.StandardFont: QtGui.QFont.Serif, + QWebEngineSettings.FixedFont: QtGui.QFont.Monospace, + QWebEngineSettings.SerifFont: QtGui.QFont.Serif, + QWebEngineSettings.SansSerifFont: QtGui.QFont.SansSerif, + QWebEngineSettings.CursiveFont: QtGui.QFont.Cursive, + QWebEngineSettings.FantasyFont: QtGui.QFont.Fantasy, } def set_unknown_url_scheme_policy( diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index fa8d9288f..8e9e51e5d 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -39,6 +39,9 @@ from qutebrowser.qt import QtCore, sip from qutebrowser.misc import objects, miscwidgets +QWebEnginePage = QtWebEngineWidgets.QWebEnginePage + + # Mapping worlds from usertypes.JsWorld to QWebEngineScript world IDs. _JS_WORLD_MAP = { usertypes.JsWorld.main: QtWebEngineWidgets.QWebEngineScript.MainWorld, @@ -191,7 +194,9 @@ class WebEngineSearch(browsertab.AbstractSearch): self._wrap_handler = _WebEngineSearchWrapHandler() def _empty_flags(self): - return QtWebEngineWidgets.QWebEnginePage.FindFlags(0) # type: ignore[call-overload] + return QtWebEngineWidgets.QWebEnginePage.FindFlags( + 0 + ) # type: ignore[call-overload] def _args_to_flags(self, reverse, ignore_case): flags = self._empty_flags() @@ -874,24 +879,24 @@ class _WebEnginePermissions(QtCore.QObject): _options = { 0: 'content.notifications.enabled', - QtWebEngineWidgets.QWebEnginePage.Geolocation: 'content.geolocation', - QtWebEngineWidgets.QWebEnginePage.MediaAudioCapture: 'content.media.audio_capture', - QtWebEngineWidgets.QWebEnginePage.MediaVideoCapture: 'content.media.video_capture', - QtWebEngineWidgets.QWebEnginePage.MediaAudioVideoCapture: 'content.media.audio_video_capture', - QtWebEngineWidgets.QWebEnginePage.MouseLock: 'content.mouse_lock', - QtWebEngineWidgets.QWebEnginePage.DesktopVideoCapture: 'content.desktop_capture', - QtWebEngineWidgets.QWebEnginePage.DesktopAudioVideoCapture: 'content.desktop_capture', + QWebEnginePage.Geolocation: 'content.geolocation', + QWebEnginePage.MediaAudioCapture: 'content.media.audio_capture', + QWebEnginePage.MediaVideoCapture: 'content.media.video_capture', + QWebEnginePage.MediaAudioVideoCapture: 'content.media.audio_video_capture', + QWebEnginePage.MouseLock: 'content.mouse_lock', + QWebEnginePage.DesktopVideoCapture: 'content.desktop_capture', + QWebEnginePage.DesktopAudioVideoCapture: 'content.desktop_capture', } _messages = { 0: 'show notifications', - QtWebEngineWidgets.QWebEnginePage.Geolocation: 'access your location', - QtWebEngineWidgets.QWebEnginePage.MediaAudioCapture: 'record audio', - QtWebEngineWidgets.QWebEnginePage.MediaVideoCapture: 'record video', - QtWebEngineWidgets.QWebEnginePage.MediaAudioVideoCapture: 'record audio/video', - QtWebEngineWidgets.QWebEnginePage.MouseLock: 'hide your mouse pointer', - QtWebEngineWidgets.QWebEnginePage.DesktopVideoCapture: 'capture your desktop', - QtWebEngineWidgets.QWebEnginePage.DesktopAudioVideoCapture: 'capture your desktop and audio', + QWebEnginePage.Geolocation: 'access your location', + QWebEnginePage.MediaAudioCapture: 'record audio', + QWebEnginePage.MediaVideoCapture: 'record video', + QWebEnginePage.MediaAudioVideoCapture: 'record audio/video', + QWebEnginePage.MouseLock: 'hide your mouse pointer', + QWebEnginePage.DesktopVideoCapture: 'capture your desktop', + QWebEnginePage.DesktopAudioVideoCapture: 'capture your desktop and audio', } def __init__(self, tab, parent=None): @@ -1536,12 +1541,13 @@ class WebEngineTab(browsertab.AbstractTab): # WORKAROUND for https://bugreports.qt.io/browse/QTBUG-58697 status = QtWebEngineWidgets.QWebEnginePage.CrashedTerminationStatus + term_status = browsertab.TerminationStatus status_map = { - QtWebEngineWidgets.QWebEnginePage.NormalTerminationStatus: browsertab.TerminationStatus.normal, - QtWebEngineWidgets.QWebEnginePage.AbnormalTerminationStatus: browsertab.TerminationStatus.abnormal, - QtWebEngineWidgets.QWebEnginePage.CrashedTerminationStatus: browsertab.TerminationStatus.crashed, - QtWebEngineWidgets.QWebEnginePage.KilledTerminationStatus: browsertab.TerminationStatus.killed, - -1: browsertab.TerminationStatus.unknown, + QWebEnginePage.NormalTerminationStatus: term_status.normal, + QWebEnginePage.AbnormalTerminationStatus: term_status.abnormal, + QWebEnginePage.CrashedTerminationStatus: term_status.crashed, + QWebEnginePage.KilledTerminationStatus: term_status.killed, + -1: term_status.unknown, } self.renderer_process_terminated.emit(status_map[status], exitcode) diff --git a/qutebrowser/browser/webengine/webview.py b/qutebrowser/browser/webengine/webview.py index f6e266523..fdcbb224d 100644 --- a/qutebrowser/browser/webengine/webview.py +++ b/qutebrowser/browser/webengine/webview.py @@ -29,9 +29,12 @@ from qutebrowser.utils import log, debug, usertypes from qutebrowser.qt import QtCore +QWebEnginePage = QtWebEngineWidgets.QWebEnginePage + + _QB_FILESELECTION_MODES = { - QtWebEngineWidgets.QWebEnginePage.FileSelectOpen: shared.FileSelectionMode.single_file, - QtWebEngineWidgets.QWebEnginePage.FileSelectOpenMultiple: shared.FileSelectionMode.multiple_files, + QWebEnginePage.FileSelectOpen: shared.FileSelectionMode.single_file, + QWebEnginePage.FileSelectOpenMultiple: shared.FileSelectionMode.multiple_files, # WORKAROUND for https://bugreports.qt.io/browse/QTBUG-91489 # # QtWebEngine doesn't expose this value from its internal @@ -39,7 +42,7 @@ _QB_FILESELECTION_MODES = { # the public QWebEnginePage::FileSelectionMode enum). # However, QWebEnginePage::chooseFiles is still called with the matching value # (2) when a file input with "webkitdirectory" is used. - QtWebEngineWidgets.QWebEnginePage.FileSelectionMode( + QWebEnginePage.FileSelectionMode( 2 ): shared.FileSelectionMode.folder, } @@ -97,27 +100,27 @@ class WebEngineView(QtWebEngineWidgets.QWebEngineView): Return: The new QWebEngineView object. """ - debug_type = debug.qenum_key(QtWebEngineWidgets.QWebEnginePage, wintype) + debug_type = debug.qenum_key(QWebEnginePage, wintype) background = config.val.tabs.background log.webview.debug("createWindow with type {}, background {}".format( debug_type, background)) - if wintype == QtWebEngineWidgets.QWebEnginePage.WebBrowserWindow: + if wintype == QWebEnginePage.WebBrowserWindow: # Shift-Alt-Click target = usertypes.ClickTarget.window - elif wintype == QtWebEngineWidgets.QWebEnginePage.WebDialog: + elif wintype == QWebEnginePage.WebDialog: log.webview.warning("{} requested, but we don't support " "that!".format(debug_type)) target = usertypes.ClickTarget.tab - elif wintype == QtWebEngineWidgets.QWebEnginePage.WebBrowserTab: + elif wintype == QWebEnginePage.WebBrowserTab: # Middle-click / Ctrl-Click with Shift # FIXME:qtwebengine this also affects target=_blank links... if background: target = usertypes.ClickTarget.tab else: target = usertypes.ClickTarget.tab_bg - elif wintype == QtWebEngineWidgets.QWebEnginePage.WebBrowserBackgroundTab: + elif wintype == QWebEnginePage.WebBrowserBackgroundTab: # Middle-click / Ctrl-Click if background: target = usertypes.ClickTarget.tab_bg @@ -137,7 +140,7 @@ class WebEngineView(QtWebEngineWidgets.QWebEngineView): super().contextMenuEvent(ev) -class WebEnginePage(QtWebEngineWidgets.QWebEnginePage): +class WebEnginePage(QWebEnginePage): """Custom QWebEnginePage subclass with qutebrowser-specific features. @@ -214,46 +217,46 @@ class WebEnginePage(QtWebEngineWidgets.QWebEnginePage): def javaScriptConsoleMessage(self, level, msg, line, source): """Log javascript messages to qutebrowser's log.""" level_map = { - QtWebEngineWidgets.QWebEnginePage.InfoMessageLevel: usertypes.JsLogLevel.info, - QtWebEngineWidgets.QWebEnginePage.WarningMessageLevel: usertypes.JsLogLevel.warning, - QtWebEngineWidgets.QWebEnginePage.ErrorMessageLevel: usertypes.JsLogLevel.error, + QWebEnginePage.InfoMessageLevel: usertypes.JsLogLevel.info, + QWebEnginePage.WarningMessageLevel: usertypes.JsLogLevel.warning, + QWebEnginePage.ErrorMessageLevel: usertypes.JsLogLevel.error, } shared.javascript_log_message(level_map[level], source, line, msg) def acceptNavigationRequest( self, url: QtCore.QUrl, - typ: QtWebEngineWidgets.QWebEnginePage.NavigationType, + typ: QWebEnginePage.NavigationType, is_main_frame: bool, ) -> bool: """Override acceptNavigationRequest to forward it to the tab API.""" + nav_request_type = usertypes.NavigationRequest.Type type_map = { - QtWebEngineWidgets.QWebEnginePage.NavigationTypeLinkClicked: usertypes.NavigationRequest.Type.link_clicked, - QtWebEngineWidgets.QWebEnginePage.NavigationTypeTyped: usertypes.NavigationRequest.Type.typed, - QtWebEngineWidgets.QWebEnginePage.NavigationTypeFormSubmitted: usertypes.NavigationRequest.Type.form_submitted, - QtWebEngineWidgets.QWebEnginePage.NavigationTypeBackForward: usertypes.NavigationRequest.Type.back_forward, - QtWebEngineWidgets.QWebEnginePage.NavigationTypeReload: usertypes.NavigationRequest.Type.reloaded, - QtWebEngineWidgets.QWebEnginePage.NavigationTypeOther: usertypes.NavigationRequest.Type.other, + QWebEnginePage.NavigationTypeLinkClicked: nav_request_type.link_clicked, + QWebEnginePage.NavigationTypeTyped: nav_request_type.typed, + QWebEnginePage.NavigationTypeFormSubmitted: nav_request_type.form_submitted, + QWebEnginePage.NavigationTypeBackForward: nav_request_type.back_forward, + QWebEnginePage.NavigationTypeReload: nav_request_type.reloaded, + QWebEnginePage.NavigationTypeOther: nav_request_type.other, } try: type_map[ - QtWebEngineWidgets.QWebEnginePage.NavigationTypeRedirect - ] = usertypes.NavigationRequest.Type.redirect + QWebEnginePage.NavigationTypeRedirect + ] = nav_request_type.redirect except AttributeError: # Added in Qt 5.14 pass navigation = usertypes.NavigationRequest( url=url, - navigation_type=type_map.get( - typ, usertypes.NavigationRequest.Type.other), + navigation_type=type_map.get(typ, nav_request_type.other), is_main_frame=is_main_frame) self.navigation_request.emit(navigation) return navigation.accepted def chooseFiles( self, - mode: QtWebEngineWidgets.QWebEnginePage.FileSelectionMode, + mode: QWebEnginePage.FileSelectionMode, old_files: Iterable[str], accepted_mimetypes: Iterable[str], ) -> List[str]: diff --git a/qutebrowser/browser/webkit/network/webkitqutescheme.py b/qutebrowser/browser/webkit/network/webkitqutescheme.py index cbd0baa18..fa9678ea7 100644 --- a/qutebrowser/browser/webkit/network/webkitqutescheme.py +++ b/qutebrowser/browser/webkit/network/webkitqutescheme.py @@ -61,12 +61,13 @@ def handler(request, operation, current_url): try: mimetype, data = qutescheme.data_for_url(url) except qutescheme.Error as e: + qnet_reply = QtNetwork.QNetworkReply errors = { - qutescheme.NotFoundError: QtNetwork.QNetworkReply.ContentNotFoundError, - qutescheme.UrlInvalidError: QtNetwork.QNetworkReply.ContentOperationNotPermittedError, - qutescheme.RequestDeniedError: QtNetwork.QNetworkReply.ContentAccessDenied, - qutescheme.SchemeOSError: QtNetwork.QNetworkReply.ContentNotFoundError, - qutescheme.Error: QtNetwork.QNetworkReply.InternalServerError, + qutescheme.NotFoundError: qnet_reply.ContentNotFoundError, + qutescheme.UrlInvalidError: qnet_reply.ContentOperationNotPermittedError, + qutescheme.RequestDeniedError: qnet_reply.ContentAccessDenied, + qutescheme.SchemeOSError: qnet_reply.ContentNotFoundError, + qutescheme.Error: qnet_reply.InternalServerError, } exctype = type(e) log.misc.error("{} while handling qute://* URL".format( diff --git a/qutebrowser/browser/webkit/webpage.py b/qutebrowser/browser/webkit/webpage.py index 3c732a2dd..fd41c701e 100644 --- a/qutebrowser/browser/webkit/webpage.py +++ b/qutebrowser/browser/webkit/webpage.py @@ -61,9 +61,10 @@ class BrowserPage(QtWebKitWidgets.QWebPage): self._win_id = win_id self._tabdata = tabdata self._is_shutting_down = False + webpage = QtWebKitWidgets.QWebPage self._extension_handlers = { - QtWebKitWidgets.QWebPage.ErrorPageExtension: self._handle_errorpage, - QtWebKitWidgets.QWebPage.ChooseMultipleFilesExtension: self._handle_multiple_files, + webpage.ErrorPageExtension: self._handle_errorpage, + webpage.ChooseMultipleFilesExtension: self._handle_multiple_files, } self._ignore_load_started = False self.error_occurred = False @@ -523,13 +524,15 @@ class BrowserPage(QtWebKitWidgets.QWebPage): Checks if it should open it in a tab (middle-click or control) or not, and then conditionally opens the URL here or in another tab/window. """ + webpage = QtWebKitWidgets.QWebPage + nav_request = usertypes.NavigationRequest type_map = { - QtWebKitWidgets.QWebPage.NavigationTypeLinkClicked: usertypes.NavigationRequest.Type.link_clicked, - QtWebKitWidgets.QWebPage.NavigationTypeFormSubmitted: usertypes.NavigationRequest.Type.form_submitted, - QtWebKitWidgets.QWebPage.NavigationTypeFormResubmitted: usertypes.NavigationRequest.Type.form_resubmitted, - QtWebKitWidgets.QWebPage.NavigationTypeBackOrForward: usertypes.NavigationRequest.Type.back_forward, - QtWebKitWidgets.QWebPage.NavigationTypeReload: usertypes.NavigationRequest.Type.reloaded, - QtWebKitWidgets.QWebPage.NavigationTypeOther: usertypes.NavigationRequest.Type.other, + webpage.NavigationTypeLinkClicked: nav_request.Type.link_clicked, + webpage.NavigationTypeFormSubmitted: nav_request.Type.form_submitted, + webpage.NavigationTypeFormResubmitted: nav_request.Type.form_resubmitted, + webpage.NavigationTypeBackOrForward: nav_request.Type.back_forward, + webpage.NavigationTypeReload: nav_request.Type.reloaded, + webpage.NavigationTypeOther: nav_request.Type.other, } is_main_frame = frame is self.mainFrame() navigation = usertypes.NavigationRequest(url=request.url(), diff --git a/qutebrowser/misc/earlyinit.py b/qutebrowser/misc/earlyinit.py index 7ebe2c69f..1b4360156 100644 --- a/qutebrowser/misc/earlyinit.py +++ b/qutebrowser/misc/earlyinit.py @@ -186,7 +186,8 @@ def check_qt_version(): from qutebrowser.qt import QtCore try: qt_ver = QtCore.QLibraryInfo.version().normalized() - recent_qt_runtime = qt_ver >= QtCore.QVersionNumber(5, 12) # type: ignore[operator] + qt_512_ver = QtCore.QVersionNumber(5, 12) + recent_qt_runtime = qt_ver >= qt_512_ver # type: ignore[operator] except (ImportError, AttributeError): # QVersionNumber was added in Qt 5.6, QLibraryInfo.version() in 5.8 recent_qt_runtime = False diff --git a/tests/unit/utils/test_qtutils.py b/tests/unit/utils/test_qtutils.py index 84084de33..8a0071970 100644 --- a/tests/unit/utils/test_qtutils.py +++ b/tests/unit/utils/test_qtutils.py @@ -216,12 +216,12 @@ def test_ensure_valid(obj, raising, exc_reason, exc_str): ( QtCore.QDataStream.ReadCorruptData, True, - "The data stream has read corrupt " "data.", + "The data stream has read corrupt data.", ), ( QtCore.QDataStream.WriteFailed, True, - "The data stream cannot write to the " "underlying device.", + "The data stream cannot write to the underlying device.", ), ], ) -- cgit v1.2.3-54-g00ecf