diff options
author | Florian Bruhin <me@the-compiler.org> | 2023-06-07 22:02:11 +0200 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2023-06-07 22:02:11 +0200 |
commit | 16093eaf981cec0d71331679302470cad575d5af (patch) | |
tree | d5e322416e990adef0f15350e898bc17e2d49863 | |
parent | a71c25c2a092e9c59ed65ac3d21d761a26b447ab (diff) | |
download | qutebrowser-16093eaf981cec0d71331679302470cad575d5af.tar.gz qutebrowser-16093eaf981cec0d71331679302470cad575d5af.zip |
Add debug flag to log all Qt events
-rw-r--r-- | doc/changelog.asciidoc | 1 | ||||
-rw-r--r-- | qutebrowser/keyinput/eventfilter.py | 12 | ||||
-rw-r--r-- | qutebrowser/qutebrowser.py | 2 |
3 files changed, 13 insertions, 2 deletions
diff --git a/doc/changelog.asciidoc b/doc/changelog.asciidoc index cc9ca240d..551ba6a6a 100644 --- a/doc/changelog.asciidoc +++ b/doc/changelog.asciidoc @@ -52,6 +52,7 @@ Added selection via rofi, and inserting TOTP-codes (experimental). - New `colors.webpage.darkmode.increase_text_contrast` setting for Qt 6.3+ - New `fonts.tooltip`, `colors.tooltip.bg` and `colors.tooltip.fg` settings. +- New `log-qt-events` debug flag for `-D` Removed ~~~~~~~ diff --git a/qutebrowser/keyinput/eventfilter.py b/qutebrowser/keyinput/eventfilter.py index 31ffcc7f9..6688e62eb 100644 --- a/qutebrowser/keyinput/eventfilter.py +++ b/qutebrowser/keyinput/eventfilter.py @@ -26,7 +26,7 @@ from qutebrowser.qt.gui import QKeyEvent, QWindow from qutebrowser.keyinput import modeman from qutebrowser.misc import quitter, objects -from qutebrowser.utils import objreg +from qutebrowser.utils import objreg, debug, log class EventFilter(QObject): @@ -47,6 +47,7 @@ class EventFilter(QObject): QEvent.Type.KeyRelease: self._handle_key_event, QEvent.Type.ShortcutOverride: self._handle_key_event, } + self._log_qt_events = "log-qt-events" in objects.debug_flags def install(self) -> None: objects.qapp.installEventFilter(self) @@ -86,6 +87,15 @@ class EventFilter(QObject): Return: True if the event should be filtered, False if it's passed through. """ + if self._log_qt_events: + try: + source = repr(obj) + except AttributeError: # might not be fully initialized yet + source = type(obj).__name__ + + evtype = debug.qenum_key(QEvent.Type, event.type()) + log.misc.debug(f"{source} got event: {evtype}") + if not isinstance(obj, QWindow): # We already handled this same event at some point earlier, so # we're not interested in it anymore. diff --git a/qutebrowser/qutebrowser.py b/qutebrowser/qutebrowser.py index f1273dee3..ab2488301 100644 --- a/qutebrowser/qutebrowser.py +++ b/qutebrowser/qutebrowser.py @@ -190,7 +190,7 @@ def debug_flag_error(flag): 'no-scroll-filtering', 'log-requests', 'log-cookies', 'log-scroll-pos', 'log-sensitive-keys', 'stack', 'chromium', 'wait-renderer-process', 'avoid-chromium-init', 'werror', - 'test-notification-service'] + 'test-notification-service', 'log-qt-events'] if flag in valid_flags: return flag |