sec_interp.plugin package
Plugin component mixins (lifecycle, input validation, render pipeline).
- class sec_interp.plugin.InputValidationMixin
Bases:
objectRetrieve and validate dialog inputs, then arm layer notifications.
- disconnect_layer_notifications() None
Disconnect the layer-change notification manager.
- class sec_interp.plugin.PluginLifecycleMixin
Bases:
objectMenu/toolbar actions and unload/cleanup lifecycle.
- add_action(icon_path: str, text: str, callback: Any, enabled_flag: bool = True, add_to_menu: bool = True, add_to_toolbar: bool = True, status_tip: str | None = None, whats_this: str | None = None, parent: Any = None) qgis.PyQt.QtWidgets.QAction
Add a toolbar icon to the toolbar.
- Parameters:
icon_path – Path to the icon for this action.
text – Text shown in menu items for this action.
callback – Function called when the action is triggered.
enabled_flag – Whether the action is enabled by default.
add_to_menu – Whether the action is added to the menu.
add_to_toolbar – Whether the action is added to the toolbar.
status_tip – Optional popup text on hover.
whats_this – Optional status-bar text on hover.
parent – Parent widget for the new action.
- Returns:
The created QAction (also appended to
self.actions).
- disconnect_signals() None
Disconnect all signals to prevent memory leaks.
- initGui() None
Create the menu entries and toolbar icons inside the QGIS GUI.
- process_data(inputs: dict[str, Any] | None = None) tuple[Any, Any, Any] | None
Process profile data by delegating to the dialog’s preview manager.
- Parameters:
inputs – Pre-validated inputs (optional)
- Returns:
Tuple of (profile_data, geol_data, struct_data) or None
- run() None
Run method that performs all the real work.
- unload() None
Remove the plugin menu item and icon from QGIS GUI.
- class sec_interp.plugin.RenderPipelineMixin
Bases:
objectDraw the interactive preview and filter its data by visibility options.
- draw_preview(topo_data: list, geol_data: list | None = None, struct_data: list | None = None, drillhole_data: list | None = None, max_points: int = 1000, vert_exag: float | None = None, **kwargs) None
Draw enhanced interactive preview using native PyQGIS renderer.