Move LogHandler from app.py to log_handler.py (no behavior change)
Step 9 of the gui/app.py + gui/preview.py structural refactor. Pure copy: the Qt-aware logging.Handler that bridges the booru logger to the in-app QTextEdit log panel moves to its own module. app.py grows another shim line so any internal `LogHandler(...)` reference (the single one in BooruApp._setup_ui) keeps resolving through the module namespace. Shim removed in commit 14.
This commit is contained in:
parent
591c7c3118
commit
702fd5ca7b
@ -51,28 +51,6 @@ from .settings import SettingsDialog
|
|||||||
log = logging.getLogger("booru")
|
log = logging.getLogger("booru")
|
||||||
|
|
||||||
|
|
||||||
class LogHandler(logging.Handler, QObject):
|
|
||||||
"""Logging handler that emits to a QTextEdit."""
|
|
||||||
|
|
||||||
log_signal = Signal(str)
|
|
||||||
|
|
||||||
def __init__(self, widget: QTextEdit) -> None:
|
|
||||||
logging.Handler.__init__(self)
|
|
||||||
QObject.__init__(self)
|
|
||||||
self._widget = widget
|
|
||||||
self.log_signal.connect(self._append)
|
|
||||||
self.setFormatter(logging.Formatter("%(asctime)s %(levelname)-5s %(message)s", datefmt="%H:%M:%S"))
|
|
||||||
|
|
||||||
def emit(self, record: logging.LogRecord) -> None:
|
|
||||||
msg = self.format(record)
|
|
||||||
self.log_signal.emit(msg)
|
|
||||||
|
|
||||||
def _append(self, msg: str) -> None:
|
|
||||||
self._widget.append(msg)
|
|
||||||
sb = self._widget.verticalScrollBar()
|
|
||||||
sb.setValue(sb.maximum())
|
|
||||||
|
|
||||||
|
|
||||||
class AsyncSignals(QObject):
|
class AsyncSignals(QObject):
|
||||||
"""Signals for async worker results."""
|
"""Signals for async worker results."""
|
||||||
search_done = Signal(list)
|
search_done = Signal(list)
|
||||||
@ -3598,3 +3576,4 @@ def run() -> None:
|
|||||||
|
|
||||||
# -- Refactor compatibility shims (deleted in commit 14) --
|
# -- Refactor compatibility shims (deleted in commit 14) --
|
||||||
from .search_state import SearchState # re-export for refactor compat
|
from .search_state import SearchState # re-export for refactor compat
|
||||||
|
from .log_handler import LogHandler # re-export for refactor compat
|
||||||
|
|||||||
30
booru_viewer/gui/log_handler.py
Normal file
30
booru_viewer/gui/log_handler.py
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
"""Qt-aware logging handler that emits log lines to a QTextEdit."""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import logging
|
||||||
|
|
||||||
|
from PySide6.QtCore import QObject, Signal
|
||||||
|
from PySide6.QtWidgets import QTextEdit
|
||||||
|
|
||||||
|
|
||||||
|
class LogHandler(logging.Handler, QObject):
|
||||||
|
"""Logging handler that emits to a QTextEdit."""
|
||||||
|
|
||||||
|
log_signal = Signal(str)
|
||||||
|
|
||||||
|
def __init__(self, widget: QTextEdit) -> None:
|
||||||
|
logging.Handler.__init__(self)
|
||||||
|
QObject.__init__(self)
|
||||||
|
self._widget = widget
|
||||||
|
self.log_signal.connect(self._append)
|
||||||
|
self.setFormatter(logging.Formatter("%(asctime)s %(levelname)-5s %(message)s", datefmt="%H:%M:%S"))
|
||||||
|
|
||||||
|
def emit(self, record: logging.LogRecord) -> None:
|
||||||
|
msg = self.format(record)
|
||||||
|
self.log_signal.emit(msg)
|
||||||
|
|
||||||
|
def _append(self, msg: str) -> None:
|
||||||
|
self._widget.append(msg)
|
||||||
|
sb = self._widget.verticalScrollBar()
|
||||||
|
sb.setValue(sb.maximum())
|
||||||
Loading…
x
Reference in New Issue
Block a user