sec_interp.gui.ui.pages.base_page module

Base class for configuration pages.

class sec_interp.gui.ui.pages.base_page.BasePage(*args: Any, **kwargs: Any)

Bases: QWidget

Abstract base class for configuration pages.

Each page manages a specific set of parameters (e.g., DEM, Section, Geology).

__init__(title: str, parent: QWidget | None = None) → None

Initialize the page.

Parameters:
  • title (str) – Title for the group box.

  • parent (QWidget) – Parent widget.

connect_signals() → None

Connect internal signals for the page.

disconnect_signals() → None

Disconnect all signals to prevent memory leaks.

dump() → dict[str, Any]

Return the page’s persistable state as a plain dict.

Layer values are returned as QgsMapLayer objects (or None); every other value is a primitive (str, bool, int, float).

Returns:

Mapping of persistent keys to current values.

Return type:

dict

get_data() → dict[str, Any]

Get the current configuration data from the page.

Returns:

Dictionary with parameter names and values.

Return type:

dict

load(data: dict[str, Any]) → None

Apply persistable state to the page’s widgets.

Parameters:

data – Mapping of persistent keys to values. Layer values are expected as QgsMapLayer objects (already resolved).

reset() → None

Reset the page’s widgets to their default values.

validate() → tuple[bool, str]

Validate the current configuration.

Returns:

(is_valid, error_message)

Return type:

tuple[bool, str]

sec_interp.gui.ui.pages.base_page.set_combo_layer(combo: Any, layer: Any) → None

Set a layer on a map-layer combo without emitting its signals.

Parameters:
  • combo – A QgsMapLayerComboBox (or compatible mock).

  • layer – The layer to select, or None to clear.