Skip to content

Commit b5113a3

Browse files
Allow opening statepoint files when one is already open (#177)
Co-authored-by: Paul Romano <paul.k.romano@gmail.com>
1 parent 0754ca6 commit b5113a3

1 file changed

Lines changed: 17 additions & 13 deletions

File tree

openmc_plotter/main_window.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)