@@ -129,6 +129,8 @@ def repopulate(self, selected_file: str, fc_parameters: dict[str, float], show_o
129129 self .parameter_editor .on_skip_click (force_focus_out_event = False )
130130 return
131131 else :
132+ # Use all parameters - don't filter by complexity here so they're processed for upload and save
133+ # The filtering for display will happen in __update_table
132134 self .__update_table (self .local_filesystem .file_parameters [selected_file ], fc_parameters )
133135 # Scroll to the top of the parameter table
134136 self .canvas .yview ("moveto" , 0 )
@@ -179,9 +181,30 @@ def rename_fc_connection(self, selected_file: str) -> None:
179181
180182 def __update_table (self , params : dict [str , Par ], fc_parameters : dict [str , float ]) -> None :
181183 current_param_name : str = ""
184+ displayed_row_count = 0
182185 try :
183- for i , (param_name , param ) in enumerate (params .items (), 1 ):
186+ for __ , (param_name , param ) in enumerate (params .items (), 1 ):
184187 current_param_name = param_name
188+
189+ # Create upload checkbutton variable for all parameters (even if not displayed)
190+ # so they can be uploaded to the flight controller
191+ self .upload_checkbutton_var [param_name ] = tk .BooleanVar (value = bool (fc_parameters ))
192+
193+ # Check if parameter should be displayed based on GUI complexity
194+ if self .parameter_editor .gui_complexity == "simple" :
195+ # Do not display forced and derived parameters in simple mode
196+ if (
197+ self .current_file in self .local_filesystem .forced_parameters
198+ and param_name in self .local_filesystem .forced_parameters [self .current_file ]
199+ ):
200+ continue
201+ if (
202+ self .current_file in self .local_filesystem .derived_parameters
203+ and param_name in self .local_filesystem .derived_parameters [self .current_file ]
204+ ):
205+ continue
206+
207+ displayed_row_count += 1
185208 param_metadata = self .local_filesystem .doc_dict .get (param_name , {})
186209 param_default = self .local_filesystem .param_default_dict .get (param_name , None )
187210 doc_tooltip = param_metadata .get (
@@ -198,21 +221,21 @@ def __update_table(self, params: dict[str, Par], fc_parameters: dict[str, float]
198221 # workaround a mypy issue
199222 column .append (self .__create_change_reason_entry (param_name , param , column [3 ])) # type: ignore[arg-type]
200223
201- column [0 ].grid (row = i , column = 0 , sticky = "w" , padx = 0 )
202- column [1 ].grid (row = i , column = 1 , sticky = "w" , padx = 0 )
203- column [2 ].grid (row = i , column = 2 , sticky = "e" , padx = 0 )
204- column [3 ].grid (row = i , column = 3 , sticky = "e" , padx = 0 )
205- column [4 ].grid (row = i , column = 4 , sticky = "e" , padx = 0 )
206- column [5 ].grid (row = i , column = 5 , sticky = "e" , padx = 0 )
207- column [6 ].grid (row = i , column = 6 , sticky = "ew" , padx = (0 , 5 ))
224+ column [0 ].grid (row = displayed_row_count , column = 0 , sticky = "w" , padx = 0 )
225+ column [1 ].grid (row = displayed_row_count , column = 1 , sticky = "w" , padx = 0 )
226+ column [2 ].grid (row = displayed_row_count , column = 2 , sticky = "e" , padx = 0 )
227+ column [3 ].grid (row = displayed_row_count , column = 3 , sticky = "e" , padx = 0 )
228+ column [4 ].grid (row = displayed_row_count , column = 4 , sticky = "e" , padx = 0 )
229+ column [5 ].grid (row = displayed_row_count , column = 5 , sticky = "e" , padx = 0 )
230+ column [6 ].grid (row = displayed_row_count , column = 6 , sticky = "ew" , padx = (0 , 5 ))
208231
209232 # Add the "Add" button at the bottom of the table
210233 add_button = ttk .Button (
211234 self .view_port , text = _ ("Add" ), style = "narrow.TButton" , command = lambda : self .__on_parameter_add (fc_parameters )
212235 )
213236 tooltip_msg = _ ("Add a parameter to the {self.current_file} file" )
214237 show_tooltip (add_button , tooltip_msg .format (** locals ()))
215- add_button .grid (row = len ( params ) + 2 , column = 0 , sticky = "w" , padx = 0 )
238+ add_button .grid (row = displayed_row_count + 2 , column = 0 , sticky = "w" , padx = 0 )
216239
217240 except KeyError as e :
218241 logging_critical (
0 commit comments