@@ -36,7 +36,7 @@ def _openmcReload(threads=None, model_path='.'):
3636 args = ["-c" ]
3737 if threads is not None :
3838 args += ["-s" , str (threads )]
39- args .append (model_path )
39+ args .append (str ( model_path ) )
4040 openmc .lib .init (args )
4141 openmc .lib .settings .verbosity = 1
4242
@@ -159,7 +159,8 @@ def createMenuBar(self):
159159 self .saveImageAction .setShortcut ("Ctrl+Shift+S" )
160160 self .saveImageAction .setToolTip ('Save plot image' )
161161 self .saveImageAction .setStatusTip ('Save plot image' )
162- self .saveImageAction .triggered .connect (self .saveImage )
162+ save_image_connector = partial (self .saveImage , filename = None )
163+ self .saveImageAction .triggered .connect (save_image_connector )
163164
164165 self .saveViewAction = QAction ("Save &View..." , self )
165166 self .saveViewAction .setShortcut (QtGui .QKeySequence .Save )
@@ -449,6 +450,21 @@ def updateWindowMenu(self):
449450 self .colorDialogAction .setChecked (self .colorDialog .isActiveWindow ())
450451 self .mainWindowAction .setChecked (self .isActiveWindow ())
451452
453+ def saveBatchImage (self , view_file ):
454+ """
455+ Loads a view in the GUI and generates an image
456+
457+ Parameters
458+ ----------
459+ view_file : str or pathlib.Path
460+ The path to a view file that is compatible with the loaded model.
461+ """
462+ # store the
463+ cv = self .model .currentView
464+ # load the view from file
465+ self .loadViewFile (view_file )
466+ self .plotIm .saveImage (view_file .replace ('.pltvw' , '' ))
467+
452468 # Menu and shared methods
453469 def loadModel (self , reload = False , use_settings_pkl = True ):
454470 if reload :
@@ -472,15 +488,14 @@ def loadModel(self, reload=False, use_settings_pkl=True):
472488 self .plotIm .model = self .model
473489 self .applyChanges ()
474490
475- def saveImage (self ):
476- filename , ext = QFileDialog .getSaveFileName (self ,
477- "Save Plot Image" ,
478- "untitled" ,
479- "Images (*.png)" )
491+ def saveImage (self , filename = None ):
492+ if filename is None :
493+ filename , ext = QFileDialog .getSaveFileName (self ,
494+ "Save Plot Image" ,
495+ "untitled" ,
496+ "Images (*.png)" )
480497 if filename :
481- if "." not in filename :
482- filename += ".png"
483- self .plotIm .figure .savefig (filename , transparent = True )
498+ self .plotIm .saveImage (filename )
484499 self .statusBar ().showMessage ('Plot Image Saved' , 5000 )
485500
486501 def saveView (self ):
@@ -497,26 +512,29 @@ def saveView(self):
497512 with open (filename , 'wb' ) as file :
498513 pickle .dump (saved , file )
499514
515+ def loadViewFile (self , filename ):
516+ try :
517+ with open (filename , 'rb' ) as file :
518+ saved = pickle .load (file )
519+ except Exception :
520+ message = 'Error loading plot settings'
521+ saved = {'version' : None ,
522+ 'current' : None }
523+ if saved ['version' ] == self .model .version :
524+ self .model .activeView = saved ['current' ]
525+ self .dock .updateDock ()
526+ self .colorDialog .updateDialogValues ()
527+ self .applyChanges ()
528+ message = '{} settings loaded' .format (filename )
529+ else :
530+ message = 'Error loading plot settings. Incompatible model.'
531+ self .statusBar ().showMessage (message , 5000 )
532+
500533 def openView (self ):
501534 filename , ext = QFileDialog .getOpenFileName (self , "Open View Settings" ,
502535 "." , "*.pltvw" )
503536 if filename :
504- try :
505- with open (filename , 'rb' ) as file :
506- saved = pickle .load (file )
507- except Exception :
508- message = 'Error loading plot settings'
509- saved = {'version' : None ,
510- 'current' : None }
511- if saved ['version' ] == self .model .version :
512- self .model .activeView = saved ['current' ]
513- self .dock .updateDock ()
514- self .colorDialog .updateDialogValues ()
515- self .applyChanges ()
516- message = '{} settings loaded' .format (filename )
517- else :
518- message = 'Error loading plot settings. Incompatible model.'
519- self .statusBar ().showMessage (message , 5000 )
537+ self .loadViewFile (filename )
520538
521539 def openStatePoint (self ):
522540 # check for an alread-open statepoint
0 commit comments