From 8df931e0330c159130af0d7b65595e7884d6636d Mon Sep 17 00:00:00 2001 From: Jan Caha Date: Tue, 28 Jan 2025 11:44:24 +0100 Subject: [PATCH] fix --- .../dialogs/dialog_select_sampling_distance_layer.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/los_tools/gui/dialogs/dialog_select_sampling_distance_layer.py b/los_tools/gui/dialogs/dialog_select_sampling_distance_layer.py index 732929f..7f0e762 100644 --- a/los_tools/gui/dialogs/dialog_select_sampling_distance_layer.py +++ b/los_tools/gui/dialogs/dialog_select_sampling_distance_layer.py @@ -41,19 +41,25 @@ def init_gui(self) -> None: selectedLayers.append(layer) self.layer_cb = QComboBox(self) - - for layer in selectedLayers: - self.layer_cb.addItem(layer.name(), layer) + self.layer_cb.currentIndexChanged.connect(self.on_layer_changed) self.buttons = QDialogButtonBox(self) self.buttons.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok) + self.buttons.button(QDialogButtonBox.Ok).setEnabled(False) + self.buttons.accepted.connect(self.accept) self.buttons.rejected.connect(self.reject) layout.addRow("Select Layer", self.layer_cb) layout.addWidget(self.buttons) + for layer in selectedLayers: + self.layer_cb.addItem(layer.name(), layer) + def layer(self) -> QgsVectorLayer: if self.layer_cb.currentIndex() == -1: return None return self.layer_cb.currentData(Qt.ItemDataRole.UserRole) + + def on_layer_changed(self, index: int) -> None: + self.buttons.button(QDialogButtonBox.Ok).setEnabled(index != -1)