Skip to content

Commit e97906d

Browse files
committed
Fix various crashes
1 parent 2b3b682 commit e97906d

2 files changed

Lines changed: 15 additions & 8 deletions

File tree

autoBWF/BWFfileIO.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,11 @@ def check_wave(filename):
193193
dict: Technical metadata values indexed by the field name. If field is empty, the value is an empty string.
194194
If filename is not a Wave file, then the return value is None.
195195
"""
196-
md = get_bwf_tech(filename)
196+
try:
197+
md = get_bwf_tech(filename)
198+
except subprocess.CalledProcessError:
199+
return None
200+
197201
if md["Errors"] == "":
198202
return md
199203
else:

autoBWF/autoBWF.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ def __init__(self, filename, config, template):
198198
self.populate_template_info()
199199

200200
@staticmethod
201-
def load_file(file, die_on_error=True):
201+
def load_file(file, die_on_error=False):
202202
"""Read metadata from a BWF file.
203203
204204
Args:
@@ -217,7 +217,7 @@ def load_file(file, die_on_error=True):
217217

218218
msg = QMessageBox()
219219
msg.setIcon(QMessageBox.Critical)
220-
msg.setText(file + " does not appear to be a valid Wave file")
220+
msg.setText(file + " does not exist or is not a valid Wave file")
221221
msg.exec_()
222222

223223
if die_on_error:
@@ -308,11 +308,13 @@ def get_current_and_changed(self):
308308
"""
309309

310310
current_md = self.get_all_gui_texts()
311-
changed_xmp = {k: current_md[k] for k in self.xmp_fields if current_md[k] != self.original_md[k]}
312-
changed_bwf_riff = {k: current_md[k] for k in current_md.keys()
313-
if k not in self.xmp_fields and current_md[k] != self.original_md[k]}
314-
315-
return current_md, changed_bwf_riff, changed_xmp
311+
if self.original_md: # prevent crash if GUI is quit but there was no file was ever loaded
312+
changed_xmp = {k: current_md[k] for k in self.xmp_fields if current_md[k] != self.original_md[k]}
313+
changed_bwf_riff = {k: current_md[k] for k in current_md.keys()
314+
if k not in self.xmp_fields and current_md[k] != self.original_md[k]}
315+
return current_md, changed_bwf_riff, changed_xmp
316+
else:
317+
return None, None, None
316318

317319
def set_gui_text(self, widget_name, value, block=True):
318320
"""Set a GUI text element to a given value.
@@ -372,6 +374,7 @@ def open_file(self):
372374
self.original_md = self.load_file(fname)
373375
if self.original_md is not None:
374376
self.filename = fname
377+
self.filepath = str(Path(fname).resolve())
375378
self.tabWidget.setEnabled(True)
376379
self.actionUpdate_metadata.setEnabled(True)
377380
self.actionExport_metadata.setEnabled(True)

0 commit comments

Comments
 (0)