From ee45bfd03ffaada5f6741a6a097654bfe3971167 Mon Sep 17 00:00:00 2001 From: onyx-and-iris Date: Sun, 22 Feb 2026 15:04:50 +0000 Subject: [PATCH] implement separate button handlers patch bump --- src/q3rcon_tui/__about__.py | 2 +- src/q3rcon_tui/tui.py | 32 +++++++++++++++++++------------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/q3rcon_tui/__about__.py b/src/q3rcon_tui/__about__.py index c635336..32fb64f 100644 --- a/src/q3rcon_tui/__about__.py +++ b/src/q3rcon_tui/__about__.py @@ -1,4 +1,4 @@ # SPDX-FileCopyrightText: 2026-present onyx-and-iris # # SPDX-License-Identifier: MIT -__version__ = '0.6.0' +__version__ = '0.6.1' diff --git a/src/q3rcon_tui/tui.py b/src/q3rcon_tui/tui.py index 5088b85..57a8eab 100644 --- a/src/q3rcon_tui/tui.py +++ b/src/q3rcon_tui/tui.py @@ -37,21 +37,27 @@ class RconApp(App): self.query_one('#config', Button).press() async def on_button_pressed(self, event: Button.Pressed) -> None: - if event.button.id == 'quit': - self.app.exit() - elif event.button.id == 'config': - result = await self.push_screen( - ConfigScreen(settings.host, settings.port, settings.password) + match event.button.id: + case 'quit': + self._quit_button_handler() + case 'config': + await self._config_button_handler() + case 'send': + await self._send_button_handler() + + def _quit_button_handler(self): + self.app.exit() + + async def _config_button_handler(self): + result = await self.push_screen( + ConfigScreen(settings.host, settings.port, settings.password) + ) + if result: + self.query_one('#response', RichLog).write( + f'Configuration updated: {settings.host}:{settings.port}' ) - if result: - self.query_one('#response', RichLog).write( - f'Configuration updated: {settings.host}:{settings.port}' - ) - return - - if event.button.id != 'send': - return + async def _send_button_handler(self): if not settings.append: self.query_one('#response', RichLog).clear()