Codebase dedublication and Cleanup refactor Documentation updated as well Preferences update Removed testfiles from repository
43 lines
1.6 KiB
Python
43 lines
1.6 KiB
Python
# gui/log_console_widget.py
|
|
import logging
|
|
from PySide6.QtWidgets import (
|
|
QWidget, QVBoxLayout, QTextEdit, QLabel, QSizePolicy
|
|
)
|
|
from PySide6.QtCore import Slot
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
class LogConsoleWidget(QWidget):
|
|
"""
|
|
A dedicated widget to display log messages.
|
|
"""
|
|
def __init__(self, parent=None):
|
|
super().__init__(parent)
|
|
self._init_ui()
|
|
|
|
def _init_ui(self):
|
|
"""Initializes the UI elements for the log console."""
|
|
layout = QVBoxLayout(self)
|
|
layout.setContentsMargins(0, 5, 0, 0) # Add some top margin
|
|
|
|
log_console_label = QLabel("Log Console:")
|
|
self.log_console_output = QTextEdit()
|
|
self.log_console_output.setReadOnly(True)
|
|
# self.log_console_output.setMaximumHeight(150) # Let the parent layout control height
|
|
self.log_console_output.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) # Allow vertical expansion
|
|
|
|
layout.addWidget(log_console_label)
|
|
layout.addWidget(self.log_console_output)
|
|
|
|
# Initially hidden, visibility controlled by MainWindow
|
|
self.setVisible(False)
|
|
|
|
@Slot(str)
|
|
def _append_log_message(self, message):
|
|
"""Appends a log message to the QTextEdit console."""
|
|
self.log_console_output.append(message)
|
|
# Auto-scroll to the bottom
|
|
self.log_console_output.verticalScrollBar().setValue(self.log_console_output.verticalScrollBar().maximum())
|
|
|
|
# Note: Visibility is controlled externally via setVisible(),
|
|
# so the _toggle_log_console_visibility slot is not needed here. |