Fix for copter config dialog call

This commit is contained in:
Artem30801
2020-01-21 15:28:57 +03:00
parent 2a1e16c612
commit 089d390587
2 changed files with 10 additions and 12 deletions

View File

@@ -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)

View File

@@ -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 = []