mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
Merge pull request #480 from Textualize/event-method
diplay event method
This commit is contained in:
@@ -246,7 +246,9 @@ class MessagePump:
|
|||||||
if self._message_queue.empty():
|
if self._message_queue.empty():
|
||||||
if not self._closed:
|
if not self._closed:
|
||||||
event = events.Idle(self)
|
event = events.Idle(self)
|
||||||
for method in self._get_dispatch_methods("on_idle", event):
|
for _cls, method in self._get_dispatch_methods(
|
||||||
|
"on_idle", event
|
||||||
|
):
|
||||||
await invoke(method, event)
|
await invoke(method, event)
|
||||||
|
|
||||||
log("CLOSED", self)
|
log("CLOSED", self)
|
||||||
@@ -264,18 +266,25 @@ class MessagePump:
|
|||||||
|
|
||||||
def _get_dispatch_methods(
|
def _get_dispatch_methods(
|
||||||
self, method_name: str, message: Message
|
self, method_name: str, message: Message
|
||||||
) -> Iterable[Callable[[Message], Awaitable]]:
|
) -> Iterable[tuple[type, Callable[[Message], Awaitable]]]:
|
||||||
for cls in self.__class__.__mro__:
|
for cls in self.__class__.__mro__:
|
||||||
if message._no_default_action:
|
if message._no_default_action:
|
||||||
break
|
break
|
||||||
method = cls.__dict__.get(method_name, None)
|
method = cls.__dict__.get(method_name, None)
|
||||||
if method is not None:
|
if method is not None:
|
||||||
yield method.__get__(self, cls)
|
yield cls, method.__get__(self, cls)
|
||||||
|
|
||||||
async def on_event(self, event: events.Event) -> None:
|
async def on_event(self, event: events.Event) -> None:
|
||||||
_rich_traceback_guard = True
|
_rich_traceback_guard = True
|
||||||
for method in self._get_dispatch_methods(f"on_{event.name}", event):
|
|
||||||
log(event, ">>>", self, verbosity=event.verbosity)
|
for cls, method in self._get_dispatch_methods(f"on_{event.name}", event):
|
||||||
|
log(
|
||||||
|
event,
|
||||||
|
">>>",
|
||||||
|
self,
|
||||||
|
f"method=<{cls.__name__}.{method.__func__.__name__}>",
|
||||||
|
verbosity=event.verbosity,
|
||||||
|
)
|
||||||
await invoke(method, event)
|
await invoke(method, event)
|
||||||
|
|
||||||
if event.bubble and self._parent and not event._stop_propagation:
|
if event.bubble and self._parent and not event._stop_propagation:
|
||||||
|
|||||||
Reference in New Issue
Block a user