Skip to content

SSH Tunnel Manager - GUI Components

This page documents the GUI components and architecture of the SSH Tunnel Manager.

Main Window (main_window.py)

The central GUI component that orchestrates all tunnel management functionality.

Key Features

  • Tunnel configuration management
  • Real-time status monitoring
  • Log viewing and filtering
  • System tray integration

Main Components

Tunnel Table Widget

Displays all configured tunnels with their status, ports, and connection information.

Control Buttons

  • Start/Stop: Control individual tunnel connections
  • Add/Edit: Manage tunnel configurations
  • Delete: Remove tunnel configurations

Status Bar

Shows application status, active tunnels count, and system notifications.

Dialog Components

Tunnel Configuration Dialog (tunnel_config.py)

Modal dialog for creating and editing tunnel configurations.

Fields: - Connection details (host, port, username) - Authentication (password, SSH key) - Port forwarding settings - Advanced options (compression, keep-alive)

Password Dialog (password_dialog.py)

Secure password input for SSH authentication.

Features: - Password masking - Remember option (encrypted storage) - Timeout handling

SFTP Browser (sftp_browser.py)

File browser for remote SFTP access through tunnels.

Capabilities: - Directory navigation - File upload/download - Permission management - Drag-and-drop support

RTSP Viewer (rtsp_viewer.py)

Video stream viewer for RTSP connections through tunnels.

Features: - Video playback controls - Stream quality settings - Recording capabilities - Multiple stream support

Multi-hop SFTP Browser (multi_hop_sftp_browser.py)

Advanced SFTP browser for multi-hop connections.

Widget Components

SSH Terminal Widget (ssh_terminal.py)

Embedded terminal for SSH sessions.

Features: - Terminal emulation - Command history - Copy/paste support - Customizable appearance

Log Widget (log_widget.py)

Displays application and tunnel logs.

Capabilities: - Log level filtering - Search functionality - Export options - Auto-scroll

Table Widget (table_widget.py)

Custom table widget for tunnel display.

Features: - Sortable columns - Context menus - Status indicators - Batch operations

Utility Components

Network Scanner (network_scanner.py)

Scans for available hosts and services.

Functions: - Port scanning - Service detection - Network discovery - Host availability checks

Network Visualizer (network_visualizer.py)

Visual representation of network topology.

Features: - Network diagrams - Connection mapping - Real-time updates - Interactive navigation

SSH Key Management (ssh_key_generator.py, ssh_key_deployment.py)

Tools for SSH key generation and deployment.

Capabilities: - Key generation (RSA, Ed25519) - Key deployment to remote hosts - Key format conversion - Security validation

PowerShell Generator (powershell_generator.py)

Generates PowerShell scripts for tunnel automation.

Output: - Windows batch files - PowerShell scripts - Scheduled task definitions - Registry entries

RDP Handler (rdp_handler.py)

Manages Remote Desktop Protocol connections through tunnels.

Features: - RDP file generation - Connection testing - Credential management - Session monitoring

RTSP Handler (rtsp_handler.py)

Handles RTSP video streams through tunnels.

Capabilities: - Stream discovery - Protocol negotiation - Quality adjustment - Recording management

File Operations (file_operations.py)

Handles file operations for tunnel configurations and logs.

Functions: - Configuration import/export - Log file management - Backup and restore - Template management

Toolbar (toolbar.py)

Main application toolbar with quick actions.

Buttons: - New tunnel - Import/Export - Settings - Help

Architecture Overview

Main Window
├── Menu Bar
├── Toolbar
├── Central Widget
│   ├── Tunnel Table
│   ├── Control Panel
│   └── Status Display
├── Dock Widgets
│   ├── Log Viewer
│   ├── Network Scanner
│   └── File Browser
└── Status Bar

Event Handling

Signals and Slots

The GUI uses Qt's signal-slot mechanism for component communication.

State Management

Application state is managed through a central configuration manager.

Error Handling

Comprehensive error handling with user-friendly messages and recovery options.

Styling and Themes

Custom Styles

  • Dark and light themes
  • Color-coded status indicators
  • Responsive layouts
  • Accessibility features

Platform Integration

  • Native look and feel
  • System tray integration
  • File associations
  • URL handlers

Performance Considerations

Threading

  • Background operations in separate threads
  • Non-blocking UI updates
  • Efficient data structures

Memory Management

  • Resource cleanup
  • Cache management
  • Memory leak prevention

Responsiveness

  • Asynchronous operations
  • Progress indicators
  • User feedback