Re: Bunch of CoreData based NSDocument questions.
Re: Bunch of CoreData based NSDocument questions.
- Subject: Re: Bunch of CoreData based NSDocument questions.
- From: Ben Kennedy <email@hidden>
- Date: Sun, 29 Nov 2015 14:41:57 -0800
> On 28 Nov 2015, at 5:20 pm, Quincey Morris <email@hidden> wrote:
>
> 1. Quit. This is intended to preserve all of the current state so that it can be restored on relaunch. The idea is that the user can quit without changing anything that’s going on, then re-launch and be exactly where he was. [...]
>
> 2. Save. This is a user-initiated action that causes the on-disk document state to be updated, and you can no longer go back to the pre-save state (except via Versions, but that’s a different matter). Note that when autosavesInPlace==YES, an autosave is most definitely NOT a save from the UI point of view. It’s more like a forced write of memory to a swap file.
This doesn't seem to square with the behaviour of, e.g., Preview.app. I hate this app (and the auto-save architecture in general) because it gleefully allows me to damage my own files without realizing it.
More specifically: open an image in Preview; crop it arbitrarily; then quit. Go look at the source file on disk -- it has been irreparably damaged: the crop was immediately saved!
Re-launch Preview, and observe that there is no way to undo this damage. As far as I can tell, one is forced to dig in to the Time Machine BS in order to resurrect the file.
This seems inconsistent with your description above: not only does Quit imply a Save, but there is no way to recover from it undo-wise, either.
The new-style document architecture was, and is, one of the worst UX regressions in the history of Mac OS. I'm glad that most of the third-party apps I use have chosen to eschew it.
b
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden