Skip to content

widgets

Class Diagram

Click on class names to navigate to their documentation.

%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#e6f4f7', 'primaryBorderColor': '#035970', 'primaryTextColor': '#000000', 'lineColor': '#035970', 'secondaryColor': '#cce9ef', 'tertiaryColor': '#f5fafb', 'noteBkgColor': '#e6f4f7', 'noteBorderColor': '#035970', 'fontFamily': 'Arial, sans-serif'}}}%%
classDiagram
    direction TB

    %% External classes (not in this project)
    class QGraphicsItem:::externalStyle {
        <<external>>
    }

    class QGraphicsLineItem:::externalStyle {
        <<external>>
    }

    class QGraphicsView:::externalStyle {
        <<external>>
    }

    class QMainWindow:::externalStyle {
        <<external>>
    }

    class QObject:::externalStyle {
        <<external>>
    }

    class QSplitter:::externalStyle {
        <<external>>
    }

    class QSplitterHandle:::externalStyle {
        <<external>>
    }

    class QWidget:::externalStyle {
        <<external>>
    }

    class ChatPanel:::localStyle {
        +message_sent
        -_THINKING_MARKER
        +__init__(parent)
        +add_message(sender, text)
        +show_thinking()
        +remove_thinking()
        +show_response(text)
        ...
    }

    class CollapsibleSection:::localStyle {
        +user_toggled
        -_programmatic
        -_toggle_btn
        -_content
        -_content_layout
        +__init__(title, parent, ...)
        +content_layout()
        +set_expanded(expanded)
        +showEvent(event)
    }

    class _GripSplitterHandle:::localStyle {
        +paintEvent(event)
    }

    class _GripSplitter:::localStyle {
        +createHandle()
    }

    class DataSelectionPanel:::localStyle {
        +files_load_requested
        +selection_changed
        -_undo_stack
        -_data_handler
        -_pending_trees
        +__init__(parent)
        +set_data_handler(handler)
        +showEvent(event)
        +load_files()
        +populate_tree(entry_id, tree_structure)
        ...
    }

    class NodeItem:::localStyle {
        +node_id
        -_radius
        -_shape
        -_color
        -_pen
        -_brush
        -_label
        +__init__(node_id, x, ...)
        +boundingRect()
        +paint(painter, option, ...)
        +set_highlight(on)
    }

    class EdgeItem:::localStyle {
        -_color
        -_arrow
        +__init__(x1, y1, ...)
    }

    class GraphWidget:::localStyle {
        -_scene
        -_zoom_level
        -_max_zoom
        -_min_zoom
        +__init__(parent)
        +set_graph(graph_data)
        +clear()
        +update_theme()
        +wheelEvent(event)
        ...
    }

    class MainWindow:::localStyle {
        -_settings
        -_data_handler
        -_plot_handler
        -_topology_handler
        -_chat_handler
        -_auto_update_delegate
        -_topology_delegate
        ...
        +__init__(llm_config)
        +closeEvent(event)
    }

    class PlotCanvas:::localStyle {
        +image_saved
        +resized
        -_stack
        -_welcome
        -_panel
        +__init__(parent)
        +resizeEvent(event)
        +set_html(html, fig)
        +set_figure(fig)
        +refresh()
        ...
    }

    class _PlotSketchWidget:::localStyle {
        +__init__(parent)
        +paintEvent(event)
    }

    class PlotSettingsPanel:::localStyle {
        +settings_changed
        +customization_reset
        -_DEBOUNCE_MS
        -_INPUT_WIDTH
        -_ref_line_widgets
        -_legend_entries
        -_per_line_widgets
        ...
        +__init__(parent)
        +get_plot_config()
        +refresh_line_entries(plottable_data)
    }

    class _ImageSaveBridge:::localStyle {
        +image_saved
        -_FILTER_MAP
        +saveImage(fmt, ext, ...)
    }

    class PlotlyPanel:::localStyle {
        +image_saved
        -_layout
        -_bridge
        -_placeholder
        -_web_view
        -_html
        -_plotly_fig
        ...
        +__init__(placeholder_text, parent)
        +html()
        +figure()
        +set_html(html, fig)
        +set_figure(fig)
        ...
    }

    class _SwitchTrack:::localStyle {
        +toggled
        +thumb_x
        -_checked
        -_thumb_x
        -_anim
        +__init__(parent)
        +isChecked()
        +setChecked(checked)
        +mousePressEvent(event)
        +changeEvent(event)
        +paintEvent(event)
    }

    class ToggleSwitch:::localStyle {
        +toggled
        -_label
        -_switch
        +__init__(label, parent)
        +isChecked()
        +setChecked(checked)
        +setToolTip(tip)
    }

    class TopologyControlsWidget:::localStyle {
        +launch_requested
        +__init__(parent)
        +get_config()
        +showEvent(event)
    }

    class TopologyPanel:::localStyle {
        +topology_launch_requested
        +image_saved
        -_stack
        -_placeholder
        -_ph_divider
        -_ph_title
        -_graph_widget
        ...
        +__init__(parent)
        +display_graph(graph_data)
        +display_chart(fig_or_html)
        +display_html(html_content)
        +clear()
        +update_theme()
    }

    class AutoUpdateDelegate:::localStyle {
        -_data_handler
        -_auto_update_action
        -_status_bar
        -_worker
        +__init__(data_handler, auto_update_action, ...)
        +worker()
        +on_toggled(enabled)
        +manual_update()
        +stop()
    }

    class TopologyDelegate:::localStyle {
        +analysis_complete
        -_data_handler
        -_topology_handler
        -_chat_handler
        -_topology_panel
        -_chat_panel
        -_central_stack
        -_status_bar
        +__init__(data_handler, topology_handler, ...)
        +on_launch(config)
        +on_graph_ready(graph_data, analysis_type, ...)
        +on_chart_ready(fig_or_html, analysis_type, ...)
        +on_html_ready(html_content, analysis_type, ...)
        +on_error(message)
    }

    class WelcomeCard:::localStyle {
        -_title
        -_subtitle
        -_divider
        -_step_icons
        -_arrow_labels
        -_logo
        +__init__(parent)
        +showEvent(event)
    }

    QWidget <|-- ChatPanel
    QWidget <|-- CollapsibleSection
    QSplitterHandle <|-- _GripSplitterHandle
    QSplitter <|-- _GripSplitter
    QWidget <|-- DataSelectionPanel
    QGraphicsItem <|-- NodeItem
    QGraphicsLineItem <|-- EdgeItem
    QGraphicsView <|-- GraphWidget
    QMainWindow <|-- MainWindow
    QWidget <|-- PlotCanvas
    QWidget <|-- _PlotSketchWidget
    QWidget <|-- PlotSettingsPanel
    QObject <|-- _ImageSaveBridge
    QWidget <|-- PlotlyPanel
    QWidget <|-- _SwitchTrack
    QWidget <|-- ToggleSwitch
    QWidget <|-- TopologyControlsWidget
    QWidget <|-- TopologyPanel
    QObject <|-- AutoUpdateDelegate
    QObject <|-- TopologyDelegate
    QWidget <|-- WelcomeCard

    %% Click handlers for navigation to documentation
    click ChatPanel href "ChatPanel/" "View ChatPanel documentation"
    click CollapsibleSection href "CollapsibleSection/" "View CollapsibleSection documentation"
    click _GripSplitterHandle href "DataSelectionPanel/" "View _GripSplitterHandle documentation"
    click _GripSplitter href "DataSelectionPanel/" "View _GripSplitter documentation"
    click DataSelectionPanel href "DataSelectionPanel/" "View DataSelectionPanel documentation"
    click NodeItem href "GraphWidget/" "View NodeItem documentation"
    click EdgeItem href "GraphWidget/" "View EdgeItem documentation"
    click GraphWidget href "GraphWidget/" "View GraphWidget documentation"
    click MainWindow href "MainWindow/" "View MainWindow documentation"
    click PlotCanvas href "PlotCanvas/" "View PlotCanvas documentation"
    click _PlotSketchWidget href "PlotSettingsPanel/" "View _PlotSketchWidget documentation"
    click PlotSettingsPanel href "PlotSettingsPanel/" "View PlotSettingsPanel documentation"
    click _ImageSaveBridge href "PlotlyPanel/" "View _ImageSaveBridge documentation"
    click PlotlyPanel href "PlotlyPanel/" "View PlotlyPanel documentation"
    click _SwitchTrack href "ToggleSwitch/" "View _SwitchTrack documentation"
    click ToggleSwitch href "ToggleSwitch/" "View ToggleSwitch documentation"
    click TopologyControlsWidget href "TopologyControlsWidget/" "View TopologyControlsWidget documentation"
    click TopologyPanel href "TopologyPanel/" "View TopologyPanel documentation"
    click AutoUpdateDelegate href "_auto_update_delegate/" "View AutoUpdateDelegate documentation"
    click TopologyDelegate href "_topology_delegate/" "View TopologyDelegate documentation"
    click WelcomeCard href "_welcome_card/" "View WelcomeCard documentation"

    %% Style definitions
    classDef packageStyle fill:#e8e8e8,stroke:#999999,stroke-width:2px
    classDef externalStyle fill:#fff8e6,stroke:#FFCC80,stroke-width:2px
    classDef projectStyle fill:#e6f4f7,stroke:#035970,stroke-width:2px
    classDef projectAbstractStyle fill:#e6f4f7,stroke:#035970,stroke-width:2px,stroke-dasharray:5 5
    classDef localStyle fill:#e6f4f7,stroke:#035970,stroke-width:2px
    classDef abstractStyle fill:#e6f4f7,stroke:#035970,stroke-width:2px,stroke-dasharray:5 5
Hold "Alt" / "Option" to enable pan & zoom

Modules