From 6afc49503557d98b043602e3b973bf446de916b8 Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Sun, 10 Jan 2021 01:10:23 +0100 Subject: [PATCH] Activate toggle on hotkey invocation --- qt/aqt/editor.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/qt/aqt/editor.py b/qt/aqt/editor.py index 64c3ebbde..03626ab6e 100644 --- a/qt/aqt/editor.py +++ b/qt/aqt/editor.py @@ -11,6 +11,7 @@ import urllib.error import urllib.parse import urllib.request import warnings +from random import randrange from typing import Callable, List, Optional, Tuple import bs4 @@ -252,10 +253,23 @@ class Editor: if func: self._links[cmd] = func if keys: + def on_activated(): + func(self) + + if toggleable: + # generate a random id for triggering toggle + id = id or str(randrange(1_000_000)) + + def on_hotkey(): + on_activated() + self.web.eval(f'toggleEditorButton("#{id}");') + else: + on_hotkey = on_activated + QShortcut( # type: ignore QKeySequence(keys), self.widget, - activated=lambda s=self: func(s), + activated=on_hotkey, ) btn = self._addButton( icon,