commit 2444f6ea0afaf4faae96aae33b416a8ce545a141
parent dccc776ed89d325fce2972786865b967510671b4
Author: Anders Damsgaard <anders@adamsgaard.dk>
Date: Fri, 15 May 2026 23:27:46 +0200
feat(qgis): add DEM raster selector
Diffstat:
2 files changed, 54 insertions(+), 1 deletion(-)
diff --git a/tem_loader/tem_loader.py b/tem_loader/tem_loader.py
@@ -156,8 +156,16 @@ class _ImportOptionsDialog(QDialog):
)
self._dem_checkbox.setChecked(False)
+ self._dem_raster_combo = QgsMapLayerComboBox()
+ self._dem_raster_combo.setProject(QgsProject.instance())
+ self._dem_raster_combo.setFilters(_layer_filter('RasterLayer'))
+ self._dem_raster_combo.setAllowEmptyLayer(True, 'No elevation raster')
+ self._dem_raster_combo.setEnabled(False)
+ self._dem_checkbox.toggled.connect(self._dem_raster_combo.setEnabled)
+
form = QFormLayout()
form.addRow('Opacity', self._opacity_spinbox)
+ form.addRow('Elevation raster', self._dem_raster_combo)
buttons = QDialogButtonBox(_dialog_buttons())
buttons.accepted.connect(self.accept)
diff --git a/test/test_core.py b/test/test_core.py
@@ -553,7 +553,32 @@ class PluginTests(unittest.TestCase):
return self._value
class FakeMapLayerComboBox:
- pass
+ def __init__(self):
+ self.project = None
+ self.filters = None
+ self.allow_empty = False
+ self.empty_text = None
+ self.enabled = True
+ self._layer = None
+
+ def setProject(self, project):
+ self.project = project
+
+ def setFilters(self, filters):
+ self.filters = filters
+
+ def setAllowEmptyLayer(self, allow_empty, text=""):
+ self.allow_empty = bool(allow_empty)
+ self.empty_text = text
+
+ def setEnabled(self, enabled):
+ self.enabled = bool(enabled)
+
+ def currentLayer(self):
+ return self._layer
+
+ def setLayer(self, layer):
+ self._layer = layer
class FakeVBoxLayout:
def __init__(self):
@@ -917,6 +942,26 @@ class PluginTests(unittest.TestCase):
},
)
+ def test_import_options_dialog_dem_raster_combo_toggles_with_checkbox(self):
+ module, _, _ = self._import_plugin_module()
+
+ dialog = module._ImportOptionsDialog(object())
+
+ self.assertIs(dialog._dem_raster_combo.project, module.QgsProject.instance())
+ self.assertEqual(
+ dialog._dem_raster_combo.filters,
+ module.Qgis.LayerFilter.RasterLayer,
+ )
+ self.assertTrue(dialog._dem_raster_combo.allow_empty)
+ self.assertEqual(dialog._dem_raster_combo.empty_text, "No elevation raster")
+ self.assertFalse(dialog._dem_raster_combo.enabled)
+
+ dialog._dem_checkbox.setChecked(True)
+ self.assertTrue(dialog._dem_raster_combo.enabled)
+
+ dialog._dem_checkbox.setChecked(False)
+ self.assertFalse(dialog._dem_raster_combo.enabled)
+
def test_import_options_dialog_supports_qt6_button_namespace(self):
module, _, _ = self._import_plugin_module(qt6_enums=True)