dark compact theme

This commit is contained in:
2025-07-26 00:02:25 -04:00
parent d77dd386f3
commit e9573d0e5f
6 changed files with 1244 additions and 387 deletions

View File

@@ -44,15 +44,23 @@ python streamlens.py --live --filter "port 319 or port 320"
## Features
### 🖥️ Modern GUI Interface (New!)
- **Professional Qt Interface**: Cross-platform GUI built with PySide6
- **Interactive Flow List**: Sortable table showing flows with sigma deviations, protocols, and frame types
- **Automatic Plot Rendering**: Click any flow to instantly view signal plots (no button needed)
- **Embedded Matplotlib Plots**: Interactive signal visualization with zoom, pan, and navigation toolbar
### 🖥️ Modern Dark-Themed GUI Interface with Optimized Layout
- **Professional Dark Theme**: Modern color palette with #1e1e1e backgrounds and optimized contrast
- **Content-Fitted Columns**: Headers automatically resize to fit content, not wider than necessary
- **Full-Width Utilization**: Grid view uses entire screen width with prioritized wide signal plots
- **Optimized Row Height**: 25% taller rows (30px) for better visual balance and plot visibility
- **Wide Embedded Plots**: 8x2.5 figure size with minimal horizontal margins for maximum signal detail
- **Intelligent Column Sizing**: Auto-resizes to content with smart minimums and plot column priority
- **Professional Qt Interface**: Cross-platform GUI built with PySide6 with native look and feel
- **Embedded Signal Plots**: Chapter 10 signal plots rendered directly in the flow table cells
- **Synchronous Plot Rendering**: Plots appear immediately when table loads, no background threads
- **Chapter 10 Flow Highlighting**: Flows with Chapter 10 data are highlighted in modern blue and bold
- **Smart Signal Caching**: Avoids repeated processing of the same flow's signal data
- **Flow Detail Panel**: Dockable bottom panel with dark theme styling
- **Background PCAP Loading**: Progress bar with non-blocking file processing
- **File Management**: Open PCAP files via dialog or command line
- **Smart Status Feedback**: Color-coded status messages for different flow types and states
- **Threading Safety**: Proper Qt threading eliminates segmentation faults
- **Outlier Threshold Control**: Real-time adjustment of sigma-based outlier detection
- **Threading Safety**: Main-thread plot creation eliminates Qt threading violations
- **No Floating Windows**: All plots stay embedded in the grid interface
### Enhanced TUI Interface
- **Three-Panel Layout**: Flows list (top-left), flow details (top-right), timing visualization (bottom)
@@ -76,15 +84,18 @@ python streamlens.py --live --filter "port 319 or port 320"
- **PTP (IEEE 1588-2019)**: Precision Time Protocol message parsing with sync, delay, and announce messages
- **IENA (Airbus)**: Industrial Ethernet Network Architecture with P/D/N/M/Q message types
### 📊 Chapter 10 Signal Visualization
- **Interactive GUI Plots**: Select any flow to automatically view embedded matplotlib plots
### 📊 Chapter 10 Signal Visualization with Dark Theme Integration
- **Wide Embedded GUI Plots**: Chapter 10 flows display matplotlib plots directly in flow table with 8x2.5 sizing
- **Dark Theme Plot Integration**: Plots use #1e1e1e backgrounds with white text and modern #0078d4 signal colors
- **Optimized Plot Margins**: Minimal horizontal margins (8% left, 98% right) for maximum signal visualization area
- **TUI Signal Plots**: Press `v` in the TUI to generate signal files (threading-safe)
- **Signal Consolidation**: Automatically combines multiple packets from the same channel into continuous signals
- **TMATS Integration**: Automatically extracts channel metadata from TMATS frames for proper signal scaling
- **Multi-channel Support**: Displays multiple channels with proper engineering units and scaling
- **Threading Safety**: GUI uses proper Qt integration, TUI saves plots to files to avoid segfaults
- **Threading Safety**: GUI uses main-thread plot creation, TUI saves plots to files to avoid segfaults
- **No Floating Windows**: All GUI plots stay embedded in the table interface
- **Both Modes**: Works for both PCAP analysis and live capture
- **Matplotlib Features**: Full zoom, pan, save, and navigation capabilities
- **Enhanced Visual Quality**: 150px plot height with professional styling and grid overlays
### Protocol Detection & Fallbacks
- Automatic protocol identification based on port numbers and packet structure
@@ -122,16 +133,22 @@ Generate detailed outlier reports with `--report` flag showing frame-by-frame si
## GUI Usage
### Main Interface
- **Left Panel**: File information and flow list sorted by sigma deviation
- **Right Panel**: Interactive matplotlib plot area with navigation toolbar
- **Menu Bar**: File operations (Open PCAP, Monitor NIC), View controls, Help system
- **Toolbar**: File operations and outlier threshold adjustment
- **Central Flow Table**: Full-width table with file info, flow data, and integrated signal plots
- **Flow Detail Panel**: Dockable bottom panel showing comprehensive flow information
- **Status Bar**: Loading progress and operation feedback
### Workflow
1. **Launch GUI**: `python streamlens.py --gui`
2. **Open PCAP**: File → Open PCAP... or use command line `--pcap` flag
3. **Select Flow**: Click on any flow in the table to automatically view signal plots
4. **Interact**: Use matplotlib toolbar to zoom, pan, save plots
5. **Navigate**: Click different flows to instantly see their signal visualizations
1. **Launch GUI with PCAP**: `python streamlens.py --gui --pcap file.pcap` (recommended)
2. **Alternative Launch**: `python streamlens.py --gui`, then File → Open PCAP...
3. **Immediate Analysis**: Flow table displays instantly with all flow data and wide embedded plots
4. **Optimized Display**: Content-fitted columns, 25% taller rows, and full-width utilization
5. **Wide Plot Visualization**: Chapter 10 flows show detailed signal plots with minimal margins
6. **Browse Flows**: View flows in the dark-themed table (Chapter 10 flows highlighted in modern blue)
7. **Analyze Details**: Select flows to view detailed information in the dark-themed bottom panel
8. **Adjust Threshold**: Use toolbar spinner to change outlier detection sensitivity
9. **Multi-Flow Comparison**: Compare signals across different flows in the same optimized view
## TUI Controls
@@ -172,9 +189,10 @@ streamlens/
│ │ ├── ptp.py # IEEE 1588 Precision Time Protocol
│ │ ├── iena.py # Airbus IENA protocol
│ │ └── standard.py # Standard protocol detection
│ ├── gui/ # Modern GUI Interface (NEW!)
│ ├── gui/ # Modern GUI Interface with Docking Panels
│ │ ├── __init__.py # GUI package initialization
│ │ ── main_window.py # PySide6 main window with matplotlib integration
│ │ ── main_window.py # PySide6 main window with docking system
│ │ └── dock_panels.py # Dockable panel implementations (flow list, plots, details)
│ ├── tui/ # Text User Interface
│ │ ├── interface.py # Main TUI controller
│ │ ├── navigation.py # Navigation handling