SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
ProfilePlotDialog Class Reference

#include <profileplotdialog.h>

Inheritance diagram for ProfilePlotDialog:
Collaboration diagram for ProfilePlotDialog:

Signals

void plotAttributeRequested (const SWMMObjectRef &ref, const openswmmvis::plot::ResultDescriptor &descriptor)
 Emitted when the user picks a specific variable from the "Plot Time Series…" submenu on a node / link right-click. Mirrors the map view's plotAttributeRequested so both entry points share the same ComparisonPlotDialog routing in SWMMVis. The descriptor carries a fixed attribute or a species BY NAME (Y2b-2, amendment D-Y4); an INVALID descriptor is the "All attributes" sentinel and the handler fans out one series per variable valid for the kind, species included.
 

Public Member Functions

 ProfilePlotDialog (SWMMModelLayer *model, AnimationController *anim, const ProfileRouter::Path &path, SWMMVisProjectWindow *projectWindow, QWidget *parent=nullptr)
 Constructs the dialog and binds it to the given path on the active model. Result sources are auto-discovered from anim 's primary and secondary layers; the primary controller drives the animation cursor.
 
 ~ProfilePlotDialog () override
 Sever every external signal/slot connection while children are still alive so that any cross-window teardown order (e.g. SWMMVis-level closeEvent → project close → dialog close all in one event-loop iteration) cannot deliver a signal into a half-destroyed dialog.
 

Protected Member Functions

void showEvent (QShowEvent *event) override
 After DialogLayoutWatcher restores the splitter state on this first Show, makes sure a shown attribute-tracks pane actually has height (a persisted zero-height split would otherwise read as the tracks never appearing).
 
bool eventFilter (QObject *watched, QEvent *event) override
 Watches the tracks widget for resizes so the profile's right gutter can absorb the tracks scroll area's vertical scrollbar (see syncTracksGutter).
 

Constructor & Destructor Documentation

◆ ProfilePlotDialog()

ProfilePlotDialog::ProfilePlotDialog ( SWMMModelLayer model,
AnimationController anim,
const ProfileRouter::Path path,
SWMMVisProjectWindow projectWindow,
QWidget *  parent = nullptr 
)

Constructs the dialog and binds it to the given path on the active model. Result sources are auto-discovered from anim 's primary and secondary layers; the primary controller drives the animation cursor.

Parameters
terrainOptional DEM raster; when non-null the dialog samples it at each path-node coordinate and uses the resulting elevations as the ground line. Pass nullptr to fall back to invert + maxDepth.
canvasSRSCRS of terrain's containing canvas; required only when terrain is non-null.
Here is the call graph for this function:

◆ ~ProfilePlotDialog()

ProfilePlotDialog::~ProfilePlotDialog ( )
override

Sever every external signal/slot connection while children are still alive so that any cross-window teardown order (e.g. SWMMVis-level closeEvent → project close → dialog close all in one event-loop iteration) cannot deliver a signal into a half-destroyed dialog.

Member Function Documentation

◆ eventFilter()

bool ProfilePlotDialog::eventFilter ( QObject *  watched,
QEvent *  event 
)
overrideprotected

Watches the tracks widget for resizes so the profile's right gutter can absorb the tracks scroll area's vertical scrollbar (see syncTracksGutter).

◆ plotAttributeRequested

void ProfilePlotDialog::plotAttributeRequested ( const SWMMObjectRef ref,
const openswmmvis::plot::ResultDescriptor descriptor 
)
signal

Emitted when the user picks a specific variable from the "Plot Time Series…" submenu on a node / link right-click. Mirrors the map view's plotAttributeRequested so both entry points share the same ComparisonPlotDialog routing in SWMMVis. The descriptor carries a fixed attribute or a species BY NAME (Y2b-2, amendment D-Y4); an INVALID descriptor is the "All attributes" sentinel and the handler fans out one series per variable valid for the kind, species included.

◆ showEvent()

void ProfilePlotDialog::showEvent ( QShowEvent *  event)
overrideprotected

After DialogLayoutWatcher restores the splitter state on this first Show, makes sure a shown attribute-tracks pane actually has height (a persisted zero-height split would otherwise read as the tracks never appearing).


The documentation for this class was generated from the following files: