@@ -293,36 +293,39 @@ def set_value(self, listItem):
293293
294294 @log .log_function ()
295295 def set_release_channel (self , listItem ):
296- if listItem :
297- self .set_value (listItem )
296+ if 'value' in self .struct ['update' ]['settings' ]['ReleaseChannel' ]:
297+ old_release_channel = self .struct ['update' ]['settings' ]['ReleaseChannel' ]['value' ]
298+ self .set_value (listItem )
298299 release_channel = self .struct ['update' ]['settings' ]['ReleaseChannel' ]['value' ]
299300
300- # Show or hide menu elements based on selected channel
301- if release_channel == 'stable' :
302- # Automatic update only on stable releases
303- if 'hidden' in self .struct ['update' ]['settings' ]['AutoUpdate' ]:
304- del (self .struct ['update' ]['settings' ]['AutoUpdate' ]['hidden' ])
305- # Only show manual update options if automatic update disabled
306- if self .struct ['update' ]['settings' ]['AutoUpdate' ]['value' ] == '0' :
301+ # Only do work if ReleaseChannel changed
302+ if release_channel != old_release_channel :
303+ # Show or hide menu elements based on selected channel
304+ if release_channel == 'stable' :
305+ # Automatic update only on stable releases
306+ if 'hidden' in self .struct ['update' ]['settings' ]['AutoUpdate' ]:
307+ del (self .struct ['update' ]['settings' ]['AutoUpdate' ]['hidden' ])
308+ # Only show manual update options if automatic update disabled
309+ if self .struct ['update' ]['settings' ]['AutoUpdate' ]['value' ] == '0' :
310+ if 'hidden' in self .struct ['update' ]['settings' ]['Channel' ]:
311+ del (self .struct ['update' ]['settings' ]['Channel' ]['hidden' ])
312+ if 'hidden' in self .struct ['update' ]['settings' ]['Build' ]:
313+ del (self .struct ['update' ]['settings' ]['Build' ]['hidden' ])
314+ else :
315+ self .struct ['update' ]['settings' ]['Channel' ]['hidden' ] = 'true'
316+ self .struct ['update' ]['settings' ]['Build' ]['hidden' ] = 'true'
317+ else :
318+ # Hide automatic update and show manual update options
319+ self .struct ['update' ]['settings' ]['AutoUpdate' ]['hidden' ] = 'true'
307320 if 'hidden' in self .struct ['update' ]['settings' ]['Channel' ]:
308321 del (self .struct ['update' ]['settings' ]['Channel' ]['hidden' ])
309322 if 'hidden' in self .struct ['update' ]['settings' ]['Build' ]:
310323 del (self .struct ['update' ]['settings' ]['Build' ]['hidden' ])
311- else :
312- self .struct ['update' ]['settings' ]['Channel' ]['hidden' ] = 'true'
313- self .struct ['update' ]['settings' ]['Build' ]['hidden' ] = 'true'
314- else :
315- # Hide automatic update and show manual update options
316- self .struct ['update' ]['settings' ]['AutoUpdate' ]['hidden' ] = 'true'
317- if 'hidden' in self .struct ['update' ]['settings' ]['Channel' ]:
318- del (self .struct ['update' ]['settings' ]['Channel' ]['hidden' ])
319- if 'hidden' in self .struct ['update' ]['settings' ]['Build' ]:
320- del (self .struct ['update' ]['settings' ]['Build' ]['hidden' ])
321-
322- # Refresh json and available build channels if ReleaseChannel is stable, testing or custom with a custom URL set
323- if release_channel != 'custom' or (release_channel == 'custom' and self .struct ['update' ]['settings' ]['CustomChannel1' ]['value' ]):
324- self .update_json = self .build_json ()
325- self .struct ['update' ]['settings' ]['Channel' ]['values' ] = self .get_channels ()
324+
325+ # Refresh json for available build channels if ReleaseChannel is stable, testing, or custom with URL set
326+ if release_channel != 'custom' or (release_channel == 'custom' and self .struct ['update' ]['settings' ]['CustomChannel1' ]['value' ]):
327+ self .update_json = self .build_json ()
328+ self .struct ['update' ]['settings' ]['Channel' ]['values' ] = self .get_channels ()
326329
327330
328331 @log .log_function ()
0 commit comments