@@ -582,31 +582,34 @@ def openView(self):
582582 self .loadViewFile (filename )
583583
584584 def openStatePoint (self ):
585- # check for an alread-open statepoint
585+ # confirm replacement when a statepoint is already open
586586 if self .model .statepoint :
587- msg_box = QMessageBox ()
588- msg_box .setText ("Please close the current statepoint file before "
589- "opening a new one. " )
587+ msg_box = QMessageBox (self )
588+ msg_box .setText ("A statepoint file is currently open. Continue to "
589+ "close it and open a new one? " )
590590 msg_box .setIcon (QMessageBox .Information )
591- msg_box .setStandardButtons (QMessageBox .Ok )
592- msg_box .exec ()
593- return
591+ msg_box .setStandardButtons (QMessageBox .Yes | QMessageBox .Cancel )
592+ msg_box .setDefaultButton (QMessageBox .Cancel )
593+ msg_box .button (QMessageBox .Yes ).setText ("Continue" )
594+ if msg_box .exec () != QMessageBox .Yes :
595+ return
596+ self .closeStatePoint ()
594597 filename , ext = QFileDialog .getOpenFileName (self , "Open StatePoint" ,
595598 "." , "*.h5" )
596599 if filename :
597600 try :
598601 self .model .openStatePoint (filename )
599- message = 'Opened statepoint file: {}'
600- except ( FileNotFoundError , OSError ) :
601- message = 'Error opening statepoint file: {}'
602+ message = f 'Opened statepoint file: { filename } '
603+ except Exception as e :
604+ message = f 'Error opening statepoint file: { filename } '
602605 msg_box = QMessageBox ()
603- msg = "Could not open statepoint file: \n \n {} \n "
604- msg_box .setText (msg . format ( filename ) )
606+ msg = f "Could not open statepoint file:\n { filename } \n \n { e } "
607+ msg_box .setText (msg )
605608 msg_box .setIcon (QMessageBox .Warning )
606609 msg_box .setStandardButtons (QMessageBox .Ok )
607610 msg_box .exec ()
608611 finally :
609- self .statusBar ().showMessage (message . format ( filename ) , 5000 )
612+ self .statusBar ().showMessage (message , 5000 )
610613 self .updateDataMenu ()
611614 self .tallyPanel .update ()
612615
@@ -635,6 +638,7 @@ def importProperties(self):
635638 def closeStatePoint (self ):
636639 # remove the statepoint object and update the data menu
637640 filename = self .model .statepoint .filename
641+ self .model .statepoint .close ()
638642 self .model .statepoint = None
639643 self .model .currentView .selectedTally = None
640644 self .model .activeView .selectedTally = None
0 commit comments