From 089d3905870791608ecfa084e16bb7b18bf0bf19 Mon Sep 17 00:00:00 2001 From: Artem30801 Date: Tue, 21 Jan 2020 15:28:57 +0300 Subject: [PATCH] Fix for copter config dialog call --- Server/config_editor_models.py | 8 ++++++++ Server/copter_table.py | 14 ++------------ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/Server/config_editor_models.py b/Server/config_editor_models.py index 4690eb6..cf5dec2 100644 --- a/Server/config_editor_models.py +++ b/Server/config_editor_models.py @@ -686,11 +686,14 @@ class ConfigTreeWidget(QTreeView): class ConfigDialog(QtWidgets.QDialog): + copter_editor_signal = QtCore.pyqtSignal(object, object) + def __init__(self, parent=None): super(ConfigDialog, self).__init__(parent) self.ui = config_editor.Ui_config_dialog() self.model = ConfigModel(widget=self) self.setupUi() + self.copter_editor_signal.connect(self._call_copter_dialog) def setupModel(self, data, pure_dict=False, convert_types=False): if pure_dict: @@ -749,6 +752,11 @@ class ConfigDialog(QtWidgets.QDialog): return True def call_copter_dialog(self, client, value): + self.copter_editor_signal.emit(client, value) + + @pyqtSlot(object, object) + def _call_copter_dialog(self, client, value): + logging.info("Opening dialog") config_dict, spec_dict = value["config"], value["configspec"] cfg = config.ConfigManager() cfg.load_from_dict(config_dict, spec_dict) diff --git a/Server/copter_table.py b/Server/copter_table.py index 0d89830..abb22c2 100644 --- a/Server/copter_table.py +++ b/Server/copter_table.py @@ -14,8 +14,6 @@ import copter_table_models as table class CopterTableWidget(QTableView): - config_dialog_signal = QtCore.pyqtSignal(object, object) - def __init__(self, model, data_model=table.StatedCopterData): QTableView.__init__(self) @@ -45,8 +43,6 @@ class CopterTableWidget(QTableView): self.setContextMenuPolicy(Qt.CustomContextMenu) self.customContextMenuRequested.connect(self.open_menu) - self.config_dialog_signal.connect(lambda x: x) - # Adjust properties self.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents) self.resizeColumnsToContents() @@ -121,14 +117,8 @@ class CopterTableWidget(QTableView): @pyqtSlot() def edit_config(self, copter): - try: - self.config_dialog_signal.disconnect() - except (TypeError, RuntimeError) as error: - logging.error(f"Disconnection of signal failed: {error}") - else: - call = ConfigDialog().call_copter_dialog - self.config_dialog_signal.connect(call) - copter.client.get_response("config", self.config_dialog_signal.emit) + dialog = ConfigDialog() + copter.client.get_response("config", dialog.call_copter_dialog) # def _selfcheck_shortener(self, data): # TODO!!! # shortened = []