@@ -463,14 +463,17 @@ def __init__(self):
463463
464464 new_from_file = QAction ("Import Script from File" , self )
465465 save_to_file = QAction ("Save Selected Script to File" , self )
466+ restore_saved = QAction ("Undo Changes to Selected Script" , self )
466467 save_to_file .setShortcut (QKeySequence (QKeySequence .SaveAs ))
467468
468469 new_from_file .triggered .connect (self .onAddScriptFromFile )
469470 save_to_file .triggered .connect (self .saveScript )
471+ restore_saved .triggered .connect (self .restoreSaved )
470472
471473 menu = QMenu (w )
472474 menu .addAction (new_from_file )
473475 menu .addAction (save_to_file )
476+ menu .addAction (restore_saved )
474477 action .setMenu (menu )
475478 button = w .addAction (action )
476479 button .setPopupMode (QToolButton .InstantPopup )
@@ -602,7 +605,6 @@ def onSelectedScriptChanged(self, selected, deselected):
602605 def documentForScript (self , script = 0 ):
603606 if type (script ) != Script :
604607 script = self .libraryList [script ]
605-
606608 if script not in self ._cachedDocuments :
607609 doc = QTextDocument (self )
608610 doc .setDocumentLayout (QPlainTextDocumentLayout (doc ))
@@ -630,6 +632,12 @@ def onModificationChanged(self, modified):
630632 def onSpliterMoved (self , pos , ind ):
631633 self .splitterState = bytes (self .splitCanvas .saveState ())
632634
635+ def restoreSaved (self ):
636+ index = self .selectedScriptIndex ()
637+ if index is not None :
638+ self .text .document ().setPlainText (self .libraryList [index ].script )
639+ self .text .document ().setModified (False )
640+
633641 def saveScript (self ):
634642 index = self .selectedScriptIndex ()
635643 if index is not None :
0 commit comments