Skip to content

Commit

Permalink
Merge pull request #94 from tmck-code/fix-durview-16colors-crash
Browse files Browse the repository at this point in the history
Fix durview 16colors crash
  • Loading branch information
cmang authored Jan 31, 2025
2 parents bed6438 + 2e2dee0 commit 2892d5c
Showing 1 changed file with 38 additions and 37 deletions.
75 changes: 38 additions & 37 deletions durdraw/durdraw_ui_curses.py
Original file line number Diff line number Diff line change
Expand Up @@ -4292,6 +4292,24 @@ def sixteenc_update_diz_cache(self, year):
#for r in res:
# print(r.status_code)

def findLocalFiles(self, current_directory, folders, masks):
# update file list
self.log.debug('finding local files!!!', {'current_directory': current_directory, 'folders': folders, 'masks': masks})
file_list, matched_files = [], []
if self.appState.sixteenc_browsing:
search_files_list = []
else:
search_files_list = os.listdir(current_directory)
for file in search_files_list:
for mask in masks:
if fnmatch.fnmatch(file.lower(), mask.lower()):
matched_files.append(file)
break
for dirname in folders:
file_list.append(dirname)
file_list += sorted(matched_files)
self.log.debug('repopulated file list', {'file_list': file_list})
return file_list

def openFilePicker(self):
""" Draw UI for selecting a file to load, return the filename """
Expand Down Expand Up @@ -4516,19 +4534,23 @@ def openFilePicker(self):
if self.selected_item_number > len(file_list) - 1:
self.selected_item_number = 0

self.log.debug('selected item number', {'selected_item_number': self.selected_item_number, 'n_files': len(file_list)})

#if not self.appState.sixteenc_browsing:
# try:
# filename = file_list[self.selected_item_number]
# except:
# pdb.set_trace()
filename = file_list[self.selected_item_number]
filename = None
if len(file_list) > 0:
filename = file_list[self.selected_item_number]

if self.appState.sixteenc_browsing:
if self.appState.sixteenc_browsing or filename is None:
full_path = ''
else:
full_path = f"{current_directory}/{file_list[self.selected_item_number]}"

if filename not in folders:
if filename not in folders and filename is not None :
# read sauce, if available
#file_sauce = dursauce.SauceParser(full_path)
file_sauce = dursauce.SauceParser()
Expand All @@ -4550,7 +4572,7 @@ def openFilePicker(self):
#sauce_width = file_sauce.width
#sauce_height = file_sauce.height

if self.appState.sixteenc_browsing:
if self.appState.sixteenc_browsing or filename is None:
file_size = None
file_modtime_string = ""
else:
Expand Down Expand Up @@ -4751,27 +4773,12 @@ def openFilePicker(self):
folders = new_folders



# update file list
matched_files = []
file_list = []
full_file_list = []
if self.appState.sixteenc_browsing:
search_files_list = []
else:
search_files_list = os.listdir(current_directory)
for file in search_files_list:
for mask in masks:
if fnmatch.fnmatch(file.lower(), mask.lower()):
matched_files.append(file)
break
for dirname in folders:
file_list.append(dirname)
file_list += sorted(matched_files)
file_list = self.findLocalFiles(current_directory, folders, masks)
# reset ui
self.selected_item_number = 0
search_string = ""
full_file_list = file_list
self.log.debug('repopulated file list', {'file_list': file_list})

if not self.appState.hasMouseScroll:
curses.BUTTON5_PRESSED = 0
Expand Down Expand Up @@ -4899,35 +4906,29 @@ def openFilePicker(self):
pass


#else: # update with files, not 16c
else: # update with files, not 16c

# update file list
matched_files = []
file_list = []
full_file_list = []
if not self.appState.sixteenc_browsing:
search_files_list = os.listdir(current_directory)
for file in search_files_list:
for mask in masks:
if fnmatch.fnmatch(file.lower(), mask.lower()):
matched_files.append(file)
break
file_list += sorted(matched_files)
# reset ui
self.selected_item_number = 0
search_string = ""
full_file_list = file_list

folders = ['../'] + sorted(filter(os.path.isdir, glob.glob(os.path.join(current_directory, "*/"))))
# remove leading paths
new_folders = []
for path_string in folders:
new_folders.append(os.path.sep.join(path_string.split(os.path.sep)[-2:]))
folders = new_folders
for dirname in folders:
file_list.append(dirname)

file_list = folders
matched_files = self.findLocalFiles(current_directory, folders, masks)
self.log.debug('found', {'matched_files': matched_files, 'folders': folders, 'current_directory': current_directory, 'masks': masks})
file_list += matched_files
# reset ui
self.selected_item_number = 0
search_string = ""
full_file_list = file_list

# file_list = folders
full_file_list = file_list
search_files_list = file_list

Expand Down

0 comments on commit 2892d5c

Please sign in to comment.