buzz/buzz/action.py
2023-08-18 22:32:18 +00:00

23 lines
708 B
Python

import typing
from PyQt6.QtGui import QAction, QKeySequence
class Action(QAction):
def setShortcut(
self,
shortcut: typing.Union["QKeySequence", "QKeySequence.StandardKey", str, int],
) -> None:
super().setShortcut(shortcut)
self.setToolTip(Action.get_tooltip(self))
@classmethod
def get_tooltip(cls, action: QAction):
tooltip = action.toolTip()
shortcut = action.shortcut()
if shortcut.isEmpty():
return tooltip
shortcut_text = shortcut.toString(QKeySequence.SequenceFormat.NativeText)
return f"<p style='white-space:pre'>{tooltip}&nbsp;&nbsp;<code style='font-size:small'>{shortcut_text}</code></p>"