<html><head></head><body>Hi Juan,<br><br>Many thanks for your response. <br><br>I have used 'Save As New Version'. I had assumed it worked like 'Save', only incrementing the version number. I will try plain 'Save' and see if it works. Also I would like to know what is considered 'user data'?<br><br>Again, TIA<br><br><div class="gmail_quote">Am 15. September 2020 15:42:23 MESZ schrieb Juan Vuletich <juan@jvuletich.org>:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">Hi Alexander,<br><br>Welcome to the Cuis community!<br>(inline)<br><br>On 9/15/2020 6:48 AM, Alexander Shendi via Cuis-dev wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"> Hi folks,<br><br> As can be seen on /r/smalltalk I have managed to open an editor window <br> with the desired file contents. However, to my dismay, these windows <br> aren't persistent. When I save a new version of an image, the editor <br> windows are gone.<br><br> I would like to know why. To the best of my knowledge (which may not <br> be much), the entire current state of the VM should be saved. <br></blockquote><br>You are completely right. They should be saved.<br><br>In Cuis, there are several ways to save the image, all in the World <br>menu. The first 3 might overwrite the existing image file:<br>- Selecting 'Save' will overwrite the existing image file, the previous <br>state (before startup) will be lost.<br>- If you select 'Save and Quit', the image file will be overwritten, as <br>if selecting 'Save' and the system will exit.<br>- If you select 'Quit', the system will ask if you also want to save. If <br>you answer yes, then the behavior is as selecting 'Save and Quit'. If <br>you answer no, your session will be lost (but still the code you wrote <br>can be recovered).<br>- Doing 'Save as...' will ask for a file name for the image file. This <br>lets you avoid overwriting the existing image file.<br>All the previous save options will preserve the state of the image, <br>including all the objects you created (and haven't been garbage <br>collected), and any windows, including text editors.<br><br>- 'Save as New Version'. This option is a bit different. If you hover <br>your mouse over it, you'll see a post-it note like help bubble, saying <br>that user data will be lost.<br><br>Let's see how this is implemented. (Skip this paragraph if not <br>interested.) Open a Workspace. Type 'Save as New Version' (without the <br>quotes). Select the text. Now right click and select 'Method Source with <br>it'. You'll get a list with two methods. One of them is <br>#worldMenuOptions. Select it.You'll see that 2 lines below 'Save as New <br>Version' it says #saveAsNewVersion. This is a symbol, a selector for a <br>method. Double click to select that word, right click, select <br>'implementors of it'. You'll see that the last line of this method does<br>     "Try to clear all user state, including all class vars, <br>preferences, etc"<br>     self saveAs: newName andQuit: false clearAllClassState: true<br>The key here is the last parameter. This method is specifically asking <br>for all state to be cleared.<br><br>This menu option is intended for developing Cuis itself. We use it to <br>save the Cuis image file that is stored in the GitHub repo, that should <br>only include the "default desktop", with the Taskbar, a Transcript, and <br>an About Cuis window.<br><br>Alexander, Folks, would it be more clear if we rename it to 'Save as New <br>Release' or 'Save as New Cuis Release'? Any other suggestion?<br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;">I assume there are hooks to run user code after the image has loaded.<br></blockquote><br>Yes, this is true, but unrelated to the problem you experienced. If you <br>want, answer back telling a bit about your needs, as there are several <br>ways to do that, and we'd like to give useful advice.<br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"> Many thanks in advance.<br><br> Best Regards,<br> /Alexander<br> -- <br> All is (void *) ; <br></blockquote><br>You're most welcome.<br><br>Cheers,<br></pre></blockquote></div><br>-- <br>All is (void *) ;</body></html>