From 6f6079eed04f515ec5bb674dafabb5746737c0fa Mon Sep 17 00:00:00 2001 From: Alexian Masson <12852383+AlexianMasson@users.noreply.github.com> Date: Fri, 28 Jun 2024 11:56:22 +0200 Subject: [PATCH] Finalize RepairProfilesAlgorithm --- PreCourlis/PreCourlis.py | 8 ++++++++ PreCourlis/processing/precourlis_provider.py | 3 +++ PreCourlis/processing/repair_profiles_algorithm.py | 10 ++++++---- PreCourlis/widgets/profile_dialog.py | 2 +- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/PreCourlis/PreCourlis.py b/PreCourlis/PreCourlis.py index 36b8a65..a89f661 100644 --- a/PreCourlis/PreCourlis.py +++ b/PreCourlis/PreCourlis.py @@ -193,6 +193,11 @@ class PreCourlisPlugin: self.import_points, icon=import_icon, ) + self.add_action( + self.tr("Repair profiles layer"), + self.repair_profiles, + icon=import_icon, + ) self.menu.addSeparator() @@ -368,6 +373,9 @@ class PreCourlisPlugin: params = {"DEFAULT_ELEVATION": settings.default_elevation} execAlgorithmDialog("precourlis:import_points", params) + def repair_profiles(self): + execAlgorithmDialog("precourlis:repair_profiles", {}) + def open_editor(self): dialog = ProfileDialog(self.iface.mainWindow()) dialog.setAttribute(Qt.WA_DeleteOnClose) diff --git a/PreCourlis/processing/precourlis_provider.py b/PreCourlis/processing/precourlis_provider.py index 604aa27..22c2aba 100644 --- a/PreCourlis/processing/precourlis_provider.py +++ b/PreCourlis/processing/precourlis_provider.py @@ -43,6 +43,8 @@ from PreCourlis.processing.add_intermediate_profiles_algorithm import ( AddIntermediateProfilesAlgorithm, ) from PreCourlis.processing.define_topo_bath_algorithm import DefineTopoBathAlgorithm +from PreCourlis.processing.repair_profiles_algorithm import RepairProfilesAlgorithm + PROFILE_LINE_STYLE = resource_filename( "PreCourlis", "resources/styles/profile_line.qml" @@ -90,6 +92,7 @@ class PreCourlisProvider(QgsProcessingProvider): self.addAlgorithm(PrepareTracksAlgorithm()) self.addAlgorithm(AddIntermediateProfilesAlgorithm()) self.addAlgorithm(DefineTopoBathAlgorithm()) + self.addAlgorithm(RepairProfilesAlgorithm()) # Set default style for some outputs RenderingStyles.loadStyles() diff --git a/PreCourlis/processing/repair_profiles_algorithm.py b/PreCourlis/processing/repair_profiles_algorithm.py index 24defbd..af7fcf5 100644 --- a/PreCourlis/processing/repair_profiles_algorithm.py +++ b/PreCourlis/processing/repair_profiles_algorithm.py @@ -2,10 +2,10 @@ from qgis.core import ( QgsProcessing, QgsProcessingParameterVectorLayer, QgsProcessingParameterFeatureSink, - QgsProcessingOutputLayerDefinition + QgsProcessingOutputLayerDefinition, ) -from PreCourlis import processing +import processing from PreCourlis.processing.precourlis_algorithm import PreCourlisAlgorithm @@ -39,7 +39,9 @@ class RepairProfilesAlgorithm(PreCourlisAlgorithm): output = QgsProcessingOutputLayerDefinition(parameters[self.OUTPUT]) output.destinationName = self.tr("Interpolated") - TOPO_BAT_EXPR = "'B' || replace(rpad('', num_points($geometry) - 1, ','), ',', ',B')" + TOPO_BAT_EXPR = ( + "'B' || replace(rpad('', num_points($geometry) - 1, ','), ',', ',B')" + ) processing.run( "native:refactorfields", @@ -117,7 +119,7 @@ class RepairProfilesAlgorithm(PreCourlisAlgorithm): "type": 10, }, ], - "OUTPUT": output + "OUTPUT": output, }, ) diff --git a/PreCourlis/widgets/profile_dialog.py b/PreCourlis/widgets/profile_dialog.py index 8c6e771..0f817b4 100644 --- a/PreCourlis/widgets/profile_dialog.py +++ b/PreCourlis/widgets/profile_dialog.py @@ -383,7 +383,7 @@ class ProfileDialog(QtWidgets.QDialog, FORM_CLASS): self.tr("Missing field"), self.tr( "The field 'topo_bath' is missing in the layer. " - "Please add it with hte re pair profiles algorithm before using this tool." + "Please add it with the repair profiles algorithm before using this tool." ), Qgis.MessageLevel.Critical, duration=5, -- GitLab