From a91a5c1339b0fc633b5d125258d3ff0590a67d3d Mon Sep 17 00:00:00 2001 From: "Dr.-Ing. Amilcar do Carmo Lucas" Date: Thu, 6 Jun 2024 00:16:44 +0200 Subject: [PATCH] FEATURE: disable parameter upload if no FC is connected --- .../frontend_tkinter_parameter_editor.py | 1 + .../frontend_tkinter_parameter_editor_table.py | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/MethodicConfigurator/frontend_tkinter_parameter_editor.py b/MethodicConfigurator/frontend_tkinter_parameter_editor.py index de1f94d..913e124 100644 --- a/MethodicConfigurator/frontend_tkinter_parameter_editor.py +++ b/MethodicConfigurator/frontend_tkinter_parameter_editor.py @@ -271,6 +271,7 @@ def __create_parameter_area_widgets(self): # Create upload button upload_selected_button = tk.Button(buttons_frame, text="Upload selected params to FC, and advance to next param file", command=self.on_upload_selected_click) + upload_selected_button.configure(state='normal' if self.flight_controller.master else 'disabled') upload_selected_button.pack(side=tk.LEFT, padx=(8, 8)) # Add padding on both sides of the upload selected button show_tooltip(upload_selected_button, "Upload selected parameters to the flight controller and advance to the next " "intermediate parameter file\nIf changes have been made to the current file it will ask if you want " diff --git a/MethodicConfigurator/frontend_tkinter_parameter_editor_table.py b/MethodicConfigurator/frontend_tkinter_parameter_editor_table.py index 936f01c..8371445 100644 --- a/MethodicConfigurator/frontend_tkinter_parameter_editor_table.py +++ b/MethodicConfigurator/frontend_tkinter_parameter_editor_table.py @@ -139,7 +139,7 @@ def __update_table(self, params, fc_parameters): column.append(self.__create_flightcontroller_value(fc_parameters, param_name, param_default, doc_tooltip)) column.append(self.__create_new_value_entry(param_name, param, param_metadata, param_default, doc_tooltip)) column.append(self.__create_unit_label(param_metadata)) - column.append(self.__create_upload_checkbutton(param_name)) + column.append(self.__create_upload_checkbutton(param_name, bool(fc_parameters))) column.append(self.__create_change_reason_entry(param_name, param, column[3])) column[0].grid(row=i, column=0, sticky="w", padx=0) @@ -316,9 +316,10 @@ def __create_unit_label(self, param_metadata): show_tooltip(unit_label, unit_tooltip) return unit_label - def __create_upload_checkbutton(self, param_name): - self.upload_checkbutton_var[param_name] = tk.BooleanVar(value=True) # Default to selected - upload_checkbutton = ttk.Checkbutton(self.view_port, variable=self.upload_checkbutton_var[param_name]) + def __create_upload_checkbutton(self, param_name, fc_connected): + self.upload_checkbutton_var[param_name] = tk.BooleanVar(value=fc_connected) + upload_checkbutton = tk.Checkbutton(self.view_port, variable=self.upload_checkbutton_var[param_name]) + upload_checkbutton.configure(state='normal' if fc_connected else 'disabled') show_tooltip(upload_checkbutton, f'When selected upload {param_name} new value to the flight controller') return upload_checkbutton