sec_interp.gui.ui.pages.section_page module

Cross-section configuration page.

class sec_interp.gui.ui.pages.section_page.SectionPage(*args: Any, **kwargs: Any)

Bases: BasePage

Configuration page for Cross Section settings.

__init__(parent: Any = None) → None

Initialize the section configuration page.

Parameters:

parent – Optional parent widget.

connect_signals() → None

Connect internal signals for the section page.

disconnect_signals() → None

Disconnect all signals to prevent memory leaks.

dump() → dict[str, Any]

Return the persistable section state.

get_data() → dict[str, Any]

Get section configuration.

is_complete() → bool

Check if the section line is a valid 2-point line.

layer_keys = frozenset({'section_layer'})
load(data: dict[str, Any]) → None

Apply persisted section state.

reset() → None

Reset section inputs to defaults.

set_dem_provider(provider: Any) → None

Set the callable returning (raster_layer, band_number) for stats.

Injected by the dialog so the Section page can read the DEM selection without importing the DEM page (avoids page-to-page coupling).

update_dem_stats() → None

Refresh the read-only perfil-vs-DEM statistics.

validate() → tuple[bool, str]

Validate page settings.

Enforces the simple 2-point section line invariant: the selected line must be a valid line with exactly two vertices (start and end) in a projected CRS.

Returns:

Tuple of (success, error message).