Skip to content

ssh_tunnel_manager.gui.components.log_widget

log_widget

SSH Tunnel Manager - Log Widget Component

Classes

LogWidget

Bases: QObject

Manages the log display widget.

Source code in src/ssh_tunnel_manager/gui/components/log_widget.py
class LogWidget(QObject):
    """Manages the log display widget."""

    def __init__(self, parent=None):
        super().__init__(parent)
        self.log_text = None

    def create_log_widget(self) -> QGroupBox:
        """Create the log widget group."""
        log_group = QGroupBox("Activity Log")
        log_layout = QVBoxLayout(log_group)

        # Log text area
        self.log_text = QTextEdit()
        self.log_text.setMaximumHeight(200)
        self.log_text.setFont(QFont("Consolas", LOG_FONT_SIZE))
        log_layout.addWidget(self.log_text)

        # Log controls
        log_controls = QHBoxLayout()

        clear_log_btn = QPushButton("Clear Log")
        clear_log_btn.clicked.connect(self.clear_log)

        log_controls.addWidget(clear_log_btn)
        log_controls.addStretch()
        log_layout.addLayout(log_controls)

        return log_group

    def log(self, message: str):
        """Add a timestamped message to the log."""
        if self.log_text:
            timestamp = time.strftime("%H:%M:%S")
            self.log_text.append(f"[{timestamp}] {message}")

    def clear_log(self):
        """Clear the log."""
        if self.log_text:
            self.log_text.clear()
Functions
clear_log()

Clear the log.

Source code in src/ssh_tunnel_manager/gui/components/log_widget.py
def clear_log(self):
    """Clear the log."""
    if self.log_text:
        self.log_text.clear()
create_log_widget()

Create the log widget group.

Source code in src/ssh_tunnel_manager/gui/components/log_widget.py
def create_log_widget(self) -> QGroupBox:
    """Create the log widget group."""
    log_group = QGroupBox("Activity Log")
    log_layout = QVBoxLayout(log_group)

    # Log text area
    self.log_text = QTextEdit()
    self.log_text.setMaximumHeight(200)
    self.log_text.setFont(QFont("Consolas", LOG_FONT_SIZE))
    log_layout.addWidget(self.log_text)

    # Log controls
    log_controls = QHBoxLayout()

    clear_log_btn = QPushButton("Clear Log")
    clear_log_btn.clicked.connect(self.clear_log)

    log_controls.addWidget(clear_log_btn)
    log_controls.addStretch()
    log_layout.addLayout(log_controls)

    return log_group
log(message)

Add a timestamped message to the log.

Source code in src/ssh_tunnel_manager/gui/components/log_widget.py
def log(self, message: str):
    """Add a timestamped message to the log."""
    if self.log_text:
        timestamp = time.strftime("%H:%M:%S")
        self.log_text.append(f"[{timestamp}] {message}")