Added delete button and warnings to GUI. Also some stability fixes.
This commit is contained in:
parent
1dfe472a57
commit
86f6cc2659
2 changed files with 74 additions and 23 deletions
|
@ -69,6 +69,10 @@ class AppFrame(ttk.Frame):
|
|||
text = "Save",
|
||||
command = self.command_save_button)
|
||||
self.profile_save_btn.grid(column = 3, row = 0)
|
||||
self.profile_delete_btn = ttk.Button(self,
|
||||
text = "Delete",
|
||||
command = self.command_delete_button)
|
||||
self.profile_delete_btn.grid(column = 4, row = 0)
|
||||
self.mod_list = ttk.Treeview(self,
|
||||
columns = ("name", "version", "author", "enabled"),
|
||||
height = 20,
|
||||
|
@ -81,7 +85,7 @@ class AppFrame(ttk.Frame):
|
|||
self.mod_list.tag_configure("ENABLED", foreground = "green")
|
||||
self.mod_list.tag_bind("DISABLED", '<<TreeviewSelect>>', lambda e: self.command_enable(self.mod_list.selection()[0]))
|
||||
self.mod_list.tag_bind("ENABLED", '<<TreeviewSelect>>', lambda e: self.command_disable(self.mod_list.selection()[0]))
|
||||
self.mod_list.grid(column = 0, row = 1, columnspan = 4, sticky = (N, E, S, W))
|
||||
self.mod_list.grid(column = 0, row = 1, columnspan = 5, sticky = (N, E, S, W))
|
||||
|
||||
def prompt_configuration_window(self):
|
||||
SEVEN_DIR = ""
|
||||
|
@ -157,7 +161,7 @@ class AppFrame(ttk.Frame):
|
|||
enabled_text = "DISABLED"
|
||||
if mod in loaded_mods:
|
||||
enabled_text = "ENABLED"
|
||||
values = *self.get_mod_data(mod), enabled_text
|
||||
values = *seven_mods.get_mod_data(mod, self.cfg), enabled_text
|
||||
self.mod_list.insert("", "end", mod, text = mod, values = values, tags = (enabled_text))
|
||||
|
||||
def refresh_profile_list(self):
|
||||
|
@ -184,9 +188,10 @@ class AppFrame(ttk.Frame):
|
|||
prof = self.profile_var.get()
|
||||
if prof in self.profiles.profiles:
|
||||
try:
|
||||
seven_mods.command_disable(["", "", "*"], self.cfg, self.profiles)
|
||||
seven_mods.command_enable(["", ""] + self.profiles.profiles[prof], self.cfg, self.profiles)
|
||||
self.refresh_mod_list()
|
||||
if not self.cfg.warn_load or messagebox.askokcancel(message = f'Are you sure you want to load profile"{prof}"?'):
|
||||
seven_mods.command_disable(["", "", "*"], self.cfg, self.profiles)
|
||||
seven_mods.command_enable(["", ""] + self.profiles.profiles[prof], self.cfg, self.profiles)
|
||||
self.refresh_mod_list()
|
||||
except seven_mods.SevenModsError as e:
|
||||
messagebox.showerror(message = str(e))
|
||||
else:
|
||||
|
@ -194,11 +199,25 @@ class AppFrame(ttk.Frame):
|
|||
|
||||
def command_save_button(self):
|
||||
prof = self.profile_var.get()
|
||||
print(f"prof={prof}")
|
||||
try:
|
||||
self.profiles.profiles[prof] = seven_mods.get_loaded_mods(self.cfg)
|
||||
self.profiles.save_mod_profiles()
|
||||
self.refresh_profile_list()
|
||||
if len(prof) == 0 or prof.isspace():
|
||||
raise seven_mods.SevenModsError("Profile must have a name.")
|
||||
if not self.cfg.warn_save or prof not in self.profiles.profiles or messagebox.askokcancel(message = f'Are you sure you want to overwrite profile"{prof}"?'):
|
||||
self.profiles.profiles[prof] = seven_mods.get_loaded_mods(self.cfg)
|
||||
self.profiles.save_mod_profiles()
|
||||
self.refresh_profile_list()
|
||||
except seven_mods.SevenModsError as e:
|
||||
messagebox.showerror(message = str(e))
|
||||
|
||||
def command_delete_button(self):
|
||||
prof = self.profile_var.get()
|
||||
try:
|
||||
if prof in self.profiles.profiles:
|
||||
if not self.cfg.warn_delete or messagebox.askokcancel(message = f'Are you sure you want to delete profile"{prof}"?'):
|
||||
del self.profiles.profiles[prof]
|
||||
self.profiles.save_mod_profiles()
|
||||
else:
|
||||
raise seven_mods.SevenModsError(f"Cannot delete non-existant profile: {prof}")
|
||||
except seven_mods.SevenModsError as e:
|
||||
messagebox.showerror(message = str(e))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue