|
14 | 14 | QgsPointXY, |
15 | 15 | QgsField, |
16 | 16 | QgsFields, |
| 17 | + QgsMapLayerProxyModel |
17 | 18 | ) |
18 | 19 | from qgis.PyQt.QtCore import QVariant |
19 | 20 |
|
@@ -88,8 +89,14 @@ def _initialize_ui(self): |
88 | 89 | self.grid3DExtentWidget.setMapCanvas(canvas) |
89 | 90 | except: |
90 | 91 | pass |
91 | | - |
92 | | - # Set field combos to follow layer combos |
| 92 | + self.valueLayerCombo.setFilters(QgsMapLayerProxyModel.PointLayer | QgsMapLayerProxyModel.LineLayer) |
| 93 | + self.gradientLayerCombo.setFilters(QgsMapLayerProxyModel.PointLayer) |
| 94 | + self.pointLayerCombo.setFilters(QgsMapLayerProxyModel.PointLayer) |
| 95 | + # Allow empty selection for layer combos |
| 96 | + self.valueLayerCombo.setAllowEmptyLayer(True) |
| 97 | + self.gradientLayerCombo.setAllowEmptyLayer(True) |
| 98 | + self.pointLayerCombo.setAllowEmptyLayer(True) |
| 99 | + # Allow empty selection for field combos |
93 | 100 | self.valueFieldCombo.setLayer(None) |
94 | 101 | self.strikeFieldCombo.setLayer(None) |
95 | 102 | self.dipFieldCombo.setLayer(None) |
@@ -154,13 +161,14 @@ def _on_build_interpolator(self): |
154 | 161 | QMessageBox.warning(self, "Invalid Input", "Please select a value field.") |
155 | 162 | return |
156 | 163 |
|
157 | | - if gradient_layer and (not strike_field or not dip_field): |
158 | | - QMessageBox.warning( |
159 | | - self, |
160 | | - "Invalid Input", |
161 | | - "Please select both strike and dip fields for gradient data." |
162 | | - ) |
163 | | - return |
| 164 | + if gradient_layer: |
| 165 | + if not strike_field or not dip_field: |
| 166 | + QMessageBox.warning( |
| 167 | + self, |
| 168 | + "Invalid Input", |
| 169 | + "Please select both strike and dip fields for gradient data." |
| 170 | + ) |
| 171 | + return |
164 | 172 |
|
165 | 173 | # Get extent and pixel size |
166 | 174 | extent = self.extentWidget.outputExtent() |
|
0 commit comments