@@ -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