From 623b908478cf82648712d1cddf496bfcb2054a97 Mon Sep 17 00:00:00 2001 From: "Dr.-Ing. Amilcar do Carmo Lucas" Date: Mon, 16 Jun 2025 00:35:15 +0200 Subject: [PATCH] feat(param editor): Only display derived parameters on normal GUI complexity --- ...frontend_tkinter_parameter_editor_table.py | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/ardupilot_methodic_configurator/frontend_tkinter_parameter_editor_table.py b/ardupilot_methodic_configurator/frontend_tkinter_parameter_editor_table.py index 8770bd06..f99459c7 100644 --- a/ardupilot_methodic_configurator/frontend_tkinter_parameter_editor_table.py +++ b/ardupilot_methodic_configurator/frontend_tkinter_parameter_editor_table.py @@ -186,19 +186,37 @@ def _update_table(self, params: dict[str, ArduPilotParameter], gui_complexity: s """Update the parameter table with the given parameters.""" current_param_name: str = "" show_upload_column = self._should_show_upload_column(gui_complexity) + displayed_row_count = 0 try: - for i, (param_name, param) in enumerate(params.items(), 1): + for __, (param_name, param) in enumerate(params.items(), 1): current_param_name = param_name + # Create upload checkbutton variable for all parameters (even if not displayed) + # so they can be uploaded to the flight controller + self.upload_checkbutton_var[param_name] = tk.BooleanVar(value=bool(fc_parameters)) + + # Check if parameter should be displayed based on GUI complexity + if self.parameter_editor.gui_complexity == "simple" and (param.is_forced or param.is_derived): + # Do not display forced and derived parameters in simple mode + continue + + displayed_row_count += 1 + param_metadata = self.local_filesystem.doc_dict.get(param_name, {}) + param_default = self.local_filesystem.param_default_dict.get(param_name, None) + doc_tooltip = param_metadata.get( + "doc_tooltip", _("No documentation available in apm.pdef.xml for this parameter") + ) + column: list[tk.Widget] = self._create_column_widgets(param_name, param, show_upload_column) - self._grid_column_widgets(column, i, show_upload_column) + + self._grid_column_widgets(column, displayed_row_count, show_upload_column) # Add the "Add" button at the bottom of the table add_button = ttk.Button(self.view_port, text=_("Add"), style="narrow.TButton", command=self._on_parameter_add) tooltip_msg = _("Add a parameter to the {self.configuration_manager.current_file} file") show_tooltip(add_button, tooltip_msg.format(**locals())) - add_button.grid(row=len(params) + 2, column=0, sticky="w", padx=0) + add_button.grid(row=displayed_row_count + 2, column=0, sticky="w", padx=0) except KeyError as e: logging_critical(