ci-gui: sort treeview by title name

This commit is contained in:
Ian Burgwin
2021-02-09 14:48:07 -08:00
parent d27e181c40
commit 4ec5bce712

View File

@@ -330,6 +330,7 @@ class CustomInstallGUI(ttk.Frame):
if results: if results:
title_read_fail_window = TitleReadFailResults(self.parent, failed=results) title_read_fail_window = TitleReadFailResults(self.parent, failed=results)
title_read_fail_window.focus() title_read_fail_window.focus()
self.sort_treeview()
add_cias = ttk.Button(titlelist_buttons, text='Add CIAs', command=add_cias_callback) add_cias = ttk.Button(titlelist_buttons, text='Add CIAs', command=add_cias_callback)
add_cias.grid(row=0, column=0) add_cias.grid(row=0, column=0)
@@ -342,6 +343,8 @@ class CustomInstallGUI(ttk.Frame):
success, reason = self.add_cia(d) success, reason = self.add_cia(d)
if not success: if not success:
self.show_error(f"Couldn't add {basename(d)}: {reason}") self.show_error(f"Couldn't add {basename(d)}: {reason}")
else:
self.sort_treeview()
else: else:
self.show_error('tmd file not found in the CDN directory:\n' + d) self.show_error('tmd file not found in the CDN directory:\n' + d)
@@ -361,6 +364,7 @@ class CustomInstallGUI(ttk.Frame):
if results: if results:
title_read_fail_window = TitleReadFailResults(self.parent, failed=results) title_read_fail_window = TitleReadFailResults(self.parent, failed=results)
title_read_fail_window.focus() title_read_fail_window.focus()
self.sort_treeview()
add_dirs = ttk.Button(titlelist_buttons, text='Add folder', command=add_dirs_callback) add_dirs = ttk.Button(titlelist_buttons, text='Add folder', command=add_dirs_callback)
add_dirs.grid(row=0, column=2) add_dirs.grid(row=0, column=2)
@@ -436,6 +440,14 @@ class CustomInstallGUI(ttk.Frame):
self.disable_during_install = (add_cias, add_dirs, remove_selected, start, *self.file_picker_textboxes.values()) self.disable_during_install = (add_cias, add_dirs, remove_selected, start, *self.file_picker_textboxes.values())
def sort_treeview(self):
l = [(self.treeview.set(k, 'titlename'), k) for k in self.treeview.get_children()]
# sort by title name
l.sort(key=lambda x: x[0].lower())
for idx, pair in enumerate(l):
self.treeview.move(pair[1], '', idx)
def add_cia(self, path): def add_cia(self, path):
path = abspath(path) path = abspath(path)
try: try:
@@ -548,7 +560,13 @@ class CustomInstallGUI(ttk.Frame):
skip_contents=self.skip_contents_var.get() == 1, skip_contents=self.skip_contents_var.get() == 1,
overwrite_saves=self.overwrite_saves_var.get() == 1) overwrite_saves=self.overwrite_saves_var.get() == 1)
installer.readers = self.readers.values() # use the treeview which has been sorted alphabetically
#installer.readers = self.readers.values()
readers_final = []
for k in self.treeview.get_children():
readers_final.append(self.readers[self.treeview.set(k, 'filepath')])
installer.readers = readers_final
finished_percent = 0 finished_percent = 0
max_percentage = 100 * len(self.readers) max_percentage = 100 * len(self.readers)