DEBUG: minimal OperationLog - no RichLog, just Static + Button

This commit is contained in:
shuki
2026-03-06 04:23:54 +02:00
parent 9d51a39282
commit 75259c9d34

View File

@@ -1,10 +1,8 @@
import asyncio
from rich.text import Text
from textual.app import ComposeResult
from textual.screen import ModalScreen
from textual.widgets import RichLog, Button, Static
from textual.containers import Vertical, Horizontal
from textual.containers import Vertical
class OperationLog(ModalScreen[None]):
@@ -18,10 +16,8 @@ class OperationLog(ModalScreen[None]):
def compose(self) -> ComposeResult:
with Vertical(id="op-log"):
with Horizontal(id="ol-header"):
yield Static(self._title, id="ol-title")
yield Static("", id="ol-spinner")
yield RichLog(id="ol-log", wrap=True, highlight=True, markup=True)
yield Static(self._title, id="ol-title")
yield Static("Running...", id="ol-status")
yield Button("Close", variant="primary", id="ol-close")
def on_button_pressed(self, event: Button.Pressed) -> None:
@@ -30,22 +26,15 @@ class OperationLog(ModalScreen[None]):
def action_close(self) -> None:
self.dismiss(None)
def _write_to_log(self, log: RichLog, text: str) -> None:
if "[" in text and "[/" in text:
log.write(Text.from_markup(text))
else:
log.write(text)
def finish(self) -> None:
self._running = False
try:
self.query_one("#ol-spinner", Static).update("")
self.query_one("#ol-status", Static).update("Done ")
except Exception:
pass
def write(self, text: str) -> None:
try:
log = self.query_one("#ol-log", RichLog)
self._write_to_log(log, text)
self.query_one("#ol-status", Static).update(text)
except Exception:
pass