sec_interp.gui package
GUI module for SecInterp plugin.
Contains dialogs, widgets, and rendering components.
- class sec_interp.gui.PreviewRenderer(canvas: QgsMapCanvas | None = None)
Bases:
objectRenders interactive preview using native PyQGIS resources.
Acts as an orchestrator for several specialized modules: - PreviewLayerFactory: Handles layer creation and symbology. - PreviewAxesManager: Handles grid lines and axes labels. - PreviewOptimizer: Handles geometric simplification (LOD). - PreviewLegendRenderer: Handles legend drawing.
- __init__(canvas: QgsMapCanvas | None = None) None
Initialize preview renderer.
- Parameters:
canvas – QgsMapCanvas instance (optional)
- property active_units: dict[str, Any]
Expose active units from factory for legend compatibility.
- cleanup() None
Remove transient layers from the project and release resources.
Idempotent; safe to call on dialog close and plugin unload to avoid leaking temporary (memory) layers that trigger QGIS’s “scratch layers” warning on exit.
- draw_legend(painter: qgis.PyQt.QtGui.QPainter, rect: qgis.PyQt.QtCore.QRectF) None
Draw legend on the given painter honoring the configured layout.
- legend_units() list[tuple[str, str, Any, bool, str]]
Return
(name, label, color, hidden, source)for known units, ordered.sourceis"geology"or"drillholes"; a unit present in both is attributed to geology.
- render(topo_data: ProfileData, geol_data: GeologyData | None = None, struct_data: StructureData | None = None, vert_exag: float = 1.0, dip_line_length: float | None = None, max_points: int = 1000, preserve_extent: bool = False, use_adaptive_sampling: bool = False, drillhole_data: list | None = None, interp_data: list[InterpretationPolygon] | None = None, topo_color_mode: str = 'gradient', topo_ramp_name: str | None = None, topo_single_color: str | None = None, topo_smooth_data: ProfileData | None = None, layer_styles: dict | None = None, hidden_interp_ids: set[str] | None = None) tuple[QgsMapCanvas | None, list]
Render preview with all data layers.
- class sec_interp.gui.SecInterpDialog(*args: Any, **kwargs: Any)
Bases:
DialogLifecycleMixin,DialogMessageMixin,DialogFacadeMixin,SecInterpMainWindowDialog for the SecInterp QGIS plugin.
This dialog provides the user interface and helper methods to populate combo boxes with layers from the current QGIS project (raster and vector layers filtered by geometry type). It also exposes the interface and plugin instance for interaction with the host application.
- iface
The QGIS interface instance.
- Type:
QgsInterface
- messagebar
The message bar widget for notifications.
- Type:
QgsMessageBar
- __init__(iface=None, plugin_instance=None, parent=None) None
Initialize the dialog.
- open_help() None
Open the help file in the default browser based on user locale.
- show_dialog(title: str, message: str, level: str = 'info') Any
Show a message box dialog.
- Parameters:
title – Dialog title.
message – Dialog content.
level – Message level (“info”, “warning”, “critical”, “question”).
- validate_inputs() bool
Validate the inputs from the dialog via DialogInputManager.
Subpackages
- sec_interp.gui.adapters package
- Submodules
- sec_interp.gui.adapters.drillhole_extractor module
- sec_interp.gui.adapters.feature_fetcher module
- sec_interp.gui.adapters.geology_extractor module
- sec_interp.gui.adapters.geometry module
ProfileRasterStatsbuild_sampling_transform()calculate_segment_range()create_distance_area()densify_line_by_interval()extract_all_vertices()extract_lines_from_geometry()get_line_vertices()line_length()prepare_profile_context()profile_raster_statistics()raster_resolution_in_crs()resolve_sampling_interval()resolve_section_feature()resolve_section_geometry()sample_elevation_along_line()sample_point_elevation()section_line_start_point()
- sec_interp.gui.adapters.geometry_crs module
- sec_interp.gui.adapters.geometry_lines module
- sec_interp.gui.adapters.geometry_sampling module
- sec_interp.gui.adapters.geometry_sections module
- sec_interp.gui.adapters.geometry_stats module
- sec_interp.gui.adapters.layer_resolver module
- sec_interp.gui.adapters.profile_extractor module
- sec_interp.gui.adapters.qgs_settings_store module
- sec_interp.gui.adapters.structure_extractor module
- sec_interp.gui.adapters.validation_extractor module
- Submodules
- sec_interp.gui.preview_layers package
create_drillhole_interval_layer()create_drillhole_trace_layer()create_geol_layer()create_interp_layer()create_smoothed_topo_layer()create_struct_layer()create_topo_fill_layer()create_topo_layer()- Submodules
- sec_interp.gui.renderers package
- Submodules
- sec_interp.gui.renderers.base_renderer module
- sec_interp.gui.renderers.color_manager module
- sec_interp.gui.renderers.drillhole_renderer module
- sec_interp.gui.renderers.geology_renderer module
- sec_interp.gui.renderers.interpretation_renderer module
- sec_interp.gui.renderers.structure_renderer module
- sec_interp.gui.renderers.topo_renderer module
- Submodules
- sec_interp.gui.services package
- sec_interp.gui.tasks package
- sec_interp.gui.tools package
- sec_interp.gui.ui package
Submodules
- sec_interp.gui.dialog_dependencies module
- sec_interp.gui.dialog_export_manager module
- sec_interp.gui.dialog_facade_mixin module
DialogFacadeMixinDialogFacadeMixin.accept_handler()DialogFacadeMixin.clear_cache_handler()DialogFacadeMixin.export_preview()DialogFacadeMixin.getThemeIcon()DialogFacadeMixin.get_layer_names_by_geometry()DialogFacadeMixin.get_layer_names_by_type()DialogFacadeMixin.get_preview_options()DialogFacadeMixin.get_selected_values()DialogFacadeMixin.interpretationsDialogFacadeMixin.on_interpretation_finished()DialogFacadeMixin.preview_profile_handler()DialogFacadeMixin.reject_handler()DialogFacadeMixin.reset_defaults_handler()DialogFacadeMixin.toggle_interpretation_tool()DialogFacadeMixin.toggle_measure_tool()DialogFacadeMixin.update_button_state()DialogFacadeMixin.update_measurement_display()DialogFacadeMixin.update_preview_checkbox_states()DialogFacadeMixin.update_preview_from_checkboxes()
- sec_interp.gui.dialog_input_manager module
InputManagerInputManager.__init__()InputManager.can_export()InputManager.can_preview()InputManager.get_all_values()InputManager.get_crs_plausibility_error()InputManager.get_crs_warning()InputManager.get_section_error()InputManager.get_validation_params()InputManager.is_section_valid()InputManager.validate_inputs()InputManager.validate_preview_requirements()
- sec_interp.gui.dialog_interpretation_manager module
- sec_interp.gui.dialog_lifecycle_mixin module
- sec_interp.gui.dialog_message_mixin module
- sec_interp.gui.dialog_preview_manager module
- sec_interp.gui.dialog_settings_persistence module
- sec_interp.gui.dialog_signal_manager module
- sec_interp.gui.dialog_state_manager module
StateManagerStateManager.__init__()StateManager.connect_checked()StateManager.disconnect_signals()StateManager.load_settings()StateManager.reset_to_defaults()StateManager.save_settings()StateManager.setup_indicators()StateManager.update_all()StateManager.update_button_state()StateManager.update_preview_checkbox_states()StateManager.update_raster_status()StateManager.update_section_status()
- sec_interp.gui.dialog_tool_manager module
- sec_interp.gui.interpretation_inheritance_mixin module
- sec_interp.gui.interpretation_persistence_mixin module
- sec_interp.gui.layer_notification_manager module
- sec_interp.gui.main_dialog module
- sec_interp.gui.main_dialog_config module
DialogConfigDialogDefaultsDialogDefaults.AUTO_VERTICAL_EXAGGERATIONDialogDefaults.BACKGROUND_COLORDialogDefaults.BUFFER_DISTANCEDialogDefaults.DEFAULT_BANDDialogDefaults.DIP_SCALEDialogDefaults.DIP_SCALE_FACTORDialogDefaults.DPIDialogDefaults.EXPORT_QUALITYDialogDefaults.GRID_COLORDialogDefaults.PREVIEW_HEIGHTDialogDefaults.PREVIEW_WIDTHDialogDefaults.SAMPLING_INTERVALDialogDefaults.SCALEDialogDefaults.SUPPORTED_DOCUMENT_FORMATSDialogDefaults.SUPPORTED_IMAGE_FORMATSDialogDefaults.SUPPORTED_VECTOR_FORMATSDialogDefaults.TOPO_COLOR_MODEDialogDefaults.TOPO_RAMP_NAMEDialogDefaults.TOPO_SINGLE_COLOR_HEXDialogDefaults.VERTICAL_EXAGGERATION
UIConstantsUIConstants.ICON_CLEARUIConstants.ICON_EXPORTUIConstants.ICON_HELPUIConstants.ICON_REFRESHUIConstants.MAX_PREVIEW_HEIGHTUIConstants.MAX_PREVIEW_WIDTHUIConstants.MIN_PREVIEW_HEIGHTUIConstants.MIN_PREVIEW_WIDTHUIConstants.REQUIRED_COLORUIConstants.REQUIRED_INDICATORUIConstants.STATUS_ERRORUIConstants.STATUS_OKUIConstants.STATUS_WARNING
ValidationMessagesValidationMessages.empty_layer()ValidationMessages.invalid_field_type()ValidationMessages.invalid_geometry()ValidationMessages.invalid_output_path()ValidationMessages.invalid_raster()ValidationMessages.invalid_section_line()ValidationMessages.missing_dip_field()ValidationMessages.missing_field()ValidationMessages.missing_outcrop_field()ValidationMessages.missing_outcrop_layer()ValidationMessages.missing_output_path()ValidationMessages.missing_raster()ValidationMessages.missing_section_line()ValidationMessages.missing_strike_field()ValidationMessages.missing_structural_layer()ValidationMessages.unknown_error()ValidationMessages.validation_failed()ValidationMessages.wrong_geometry_type()
- sec_interp.gui.main_dialog_utils module
- sec_interp.gui.preview_axes_manager module
- sec_interp.gui.preview_callbacks_mixin module
- sec_interp.gui.preview_layer_factory module
PreviewLayerFactoryPreviewLayerFactory.__init__()PreviewLayerFactory.active_unitsPreviewLayerFactory.create_drillhole_interval_layer()PreviewLayerFactory.create_drillhole_trace_layer()PreviewLayerFactory.create_geol_layer()PreviewLayerFactory.create_interp_layer()PreviewLayerFactory.create_memory_layer()PreviewLayerFactory.create_smoothed_topo_layer()PreviewLayerFactory.create_struct_layer()PreviewLayerFactory.create_topo_fill_layer()PreviewLayerFactory.create_topo_layer()PreviewLayerFactory.get_color_for_unit()
- sec_interp.gui.preview_legend_renderer module
- sec_interp.gui.preview_param_hasher module
- sec_interp.gui.preview_render_mixin module
- sec_interp.gui.preview_renderer module
- sec_interp.gui.preview_renderer_cleanup module
- sec_interp.gui.preview_renderer_layers module
- sec_interp.gui.preview_reporter module
- sec_interp.gui.preview_side_panel module
PreviewSidePanelPreviewSidePanel.__init__()PreviewSidePanel.interpretation_color_requestedPreviewSidePanel.interpretation_visibility_changedPreviewSidePanel.layer_color_requestedPreviewSidePanel.layer_visibility_changedPreviewSidePanel.set_legend_visible()PreviewSidePanel.unit_color_requestedPreviewSidePanel.unit_visibility_changedPreviewSidePanel.update_interpretations()PreviewSidePanel.update_legend()
UnitStyleEditor
- sec_interp.gui.preview_state module
- sec_interp.gui.preview_task_orchestrator module
- sec_interp.gui.ui_status_manager module
- sec_interp.gui.utils module