@@ -304,16 +304,20 @@ def add_profile(self, event: wx.Event):
304304 new = default_spawn_settings ()
305305 self .profiles_list .Append ((new ['name' ],))
306306 self .settings ['profiles' ].append (new )
307+ self .on_save ()
307308 event .Skip ()
308309
309310 def del_profile (self , event : wx .Event ):
311+ # get index of item just before selection
312+ first = max (min (self .profiles_list .GetAllSelected ()) - 1 , 0 )
310313 for index in reversed (sorted (self .profiles_list .GetAllSelected ())):
311314 if index == 0 :
312315 continue
313316 self .profiles_list .DeleteItem (index )
314317 self .settings ['profiles' ].pop (index - 1 )
315- self .profiles_list .Select (0 )
316- self .set_state (0 )
318+ self .on_save ()
319+ self .profiles_list .Select (first )
320+ self .set_state (first )
317321
318322 def rename_profile (self , col , row ):
319323 for index , profile in enumerate (self .get_all_profiles ()):
@@ -326,6 +330,8 @@ def rename_profile(self, col, row):
326330 else :
327331 profile ['name' ] = self .profiles_list .GetItemText (index )
328332
333+ self .on_save ()
334+
329335 def populate_profiles (self ):
330336 for index in range (self .profiles_list .GetItemCount ()):
331337 self .profiles_list .DeleteItem (index )
@@ -360,3 +366,4 @@ def set_state(self, selected: Optional[int] = None):
360366
361367 def on_save (self , event = None ):
362368 self .settings_file .set ('on_window_spawn' , self .settings )
369+ self .settings_file .save ()
0 commit comments