Skip to content

Commit 8ace55a

Browse files
committed
Fix an issue that occurs when layers are removed or changed in QGIS
1 parent c17cbe4 commit 8ace55a

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

gui/main_dialog.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -633,6 +633,18 @@ def closeEvent(self, event):
633633
# don't close
634634
event.ignore()
635635
return
636+
637+
# disconnect signals for combo boxes
638+
try:
639+
self.QCBox_LayerToEdit.layerChanged.disconnect()
640+
self.QCBox_band_LayerToEdit.currentIndexChanged.disconnect()
641+
# self.QCBox_RenderFile.layerChanged
642+
for view_widget in ThRasEDialog.view_widgets:
643+
for layer_toolbar in view_widget.layer_toolbars:
644+
layer_toolbar.QCBox_RenderFile.layerChanged.disconnect()
645+
except Exception:
646+
pass
647+
636648
# close
637649
self.closingPlugin.emit()
638650
event.accept()

gui/render_widget.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,9 @@ def update_render_layers(self):
7070
# use the crs set in Qgis
7171
self.canvas.setDestinationCrs(iface.mapCanvas().mapSettings().destinationCrs())
7272
# get all valid activated layers
73-
valid_layers = [layer_toolbar.layer for layer_toolbar in self.layer_toolbars if layer_toolbar.is_active]
73+
valid_layers = [layer_toolbar.layer for layer_toolbar in self.layer_toolbars
74+
if layer_toolbar.is_active and layer_toolbar.layer is not None
75+
and layer_toolbar.layer.isValid()]
7476
if len(valid_layers) == 0:
7577
self.canvas.setLayers([])
7678
self.refresh()

0 commit comments

Comments
 (0)