<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
                                        Are there tests for this back-and-forth conversion? How safe is this new feature? May be flag it as experimental? :-)<div><br></div><div>Best,</div><div>Marcel</div><div class="mb_sig"></div><blockquote class="history_container" type="cite" style="border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 15.10.2019 14:58:16 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p><div style="font-family:Arial,Helvetica,sans-serif">A new version of EToys was added to project The Inbox:<br>http://source.squeak.org/inbox/EToys-ct.368.mcz<br><br>==================== Summary ====================<br><br>Name: EToys-ct.368<br>Author: ct<br>Time: 15 October 2019, 2:57:44.969129 pm<br>UUID: a02688f9-acfd-4240-a068-bdb24539e268<br>Ancestors: EToys-ct.366<br><br>Changes "revert to tile version" behavior in script editor: Instead of discarding the changed code, always use the new approach and convert the decompiled code back to tiles.<br><br>=============== Diff against EToys-ct.366 ===============<br><br>Item was added:<br>+ ----- Method: MethodWithInterface>>revertTileVersionFrom:for: (in category 'updating') -----<br>+ revertTileVersionFrom: anEditor for: playerScripted<br>+         "Only for universal tiles."<br>+ <br>+    anEditor removeAllButFirstSubmorph.<br>+  anEditor insertUniversalTiles.<br>+       anEditor showingMethodPane: false!<br><br>Item was changed:<br>  ----- Method: ScriptEditorMorph>>revertToTileVersion (in category 'save & revert') -----<br>  revertToTileVersion<br>          "The receiver, currently showing textual code,  is asked to revert to the last-saved tile version"<br>  <br>      | aUserScript |<br>  <br>   self <br>                 hResizing: #shrinkWrap;<br>               vResizing: #shrinkWrap.<br>       aUserScript := playerScripted class userScriptForPlayer: playerScripted selector: scriptName.<br>+        aUserScript revertTileVersionFrom: self for: playerScripted.<br>-         aUserScript revertToLastSavedTileVersionFor: self.<br>    self currentWorld startSteppingSubmorphsOf: self!<br><br>Item was changed:<br>  ----- Method: ScriptEditorMorph>>toggleWhetherShowingTiles (in category 'other') -----<br>  toggleWhetherShowingTiles<br>   "Toggle between showing the method pane and showing the tiles pane"<br>  <br>     self showingMethodPane<br>                ifFalse:                                "currently showing tiles"<br>                   [self showSourceInScriptor]<br>+          ifTrue:                                 "currently showing textual source"<br>+                         [self revertToTileVersion]!<br>- <br>-              ifTrue:                         "current showing textual source"<br>-                   [Preferences universalTiles<br>-                          ifTrue: [^ self revertToTileVersion].<br>-                        self savedTileVersionsCount >= 1<br>-                          ifTrue:<br>-                                      [(self userScriptObject lastSourceString = (playerScripted class sourceCodeAt: scriptName))<br>-                                          ifFalse:<br>-                                                     [(self confirm: <br>- 'Caution -- this script was changed<br>- textually; if you revert to tiles at this<br>- point you will lose all the changes you<br>- may have made textually.  Do you<br>- really want to do this?' translated) ifFalse: [^ self]].<br>-                                      self revertToTileVersion]<br>-                            ifFalse:<br>-                                     [Beeper beep]]!<br><br>Item was added:<br>+ ----- Method: UniclassScript>>revertTileVersionFrom:for: (in category 'updating') -----<br>+ revertTileVersionFrom: anEditor for: playerScripted<br>+ <br>+       anEditor removeAllButFirstSubmorph.<br>+  Preferences universalTiles<br>+           ifFalse: [<br>+                   ((self playerClass >> self selector) decompile asTileSetForPlayer: playerScripted)<br>+                             withIndexDo: [:tile :index |<br>+                                         anEditor insertTileRow: {tile} after: index].<br>+                        anEditor allMorphsDo: #layoutChanged]<br>+                ifTrue: [<br>+                    anEditor insertUniversalTiles].<br>+      anEditor showingMethodPane: false.<br>+   isTextuallyCoded := false.!<br><br>Item was added:<br>+ ----- Method: UserScript>>revertTileVersionFrom:for: (in category 'versions') -----<br>+ revertTileVersionFrom: anEditor for: playerScripted<br>+ <br>+       anEditor removeAllButFirstSubmorph.<br>+  ((self playerClass >> self selector) decompile asTileSetForPlayer: playerScripted)<br>+             withIndexDo: [:tile :index |<br>+                         anEditor insertTileRow: {tile} after: index].<br>+        anEditor allMorphsDo: #layoutChanged.<br>+        anEditor showingMethodPane: false.<br>+   self becomeTextuallyCoded.!<br><br><br></div></blockquote>
                                        </div></body>