crosswalker Posted January 20, 2007 Share Posted January 20, 2007 Hey Rick, How difficult would it be to make the undo history feature layer specific. Basically what I'm looking for is a way to undo things on one layer, while retaining the other layers. :idea: Perhaps a combined layers/undo box could expedite such a feature. Maybe something like this? Just a quick example, obviously there are some things that I didn't put in the window. Link to comment Share on other sites More sharing options...
Hellfire010 Posted January 20, 2007 Share Posted January 20, 2007 I think the history takes up a lot of memory... but then again, it would be the same amount of history, wouldn't it? Just different locations. Well, let's see, there'd be a couple problems. Obviously, we could put things like "merge layers" into a general history, what would happen to the histories once you merge layers? Idk... but I like the idea! Link to comment Share on other sites More sharing options...
BuzzKill Posted January 20, 2007 Share Posted January 20, 2007 I may be wrong but I think the history is stored as a temporary .txt file while using PdN. After PdN closes, the .txt file is deleted. I don't think memory would be an issue. I could be wrong on all counts. Anyway, it's still an interesting idea. - DO NOT contact me asking for the .pdn of my avatar or the PDN logo. Thank you. Have a nice day. Link to comment Share on other sites More sharing options...
Rick Brewster Posted January 20, 2007 Share Posted January 20, 2007 Memory isn't an issue. The history files are stored in %USERPROFILE%/AppData/Local/Paint.NET (Vista), or something like "%USERPROFILE%/Local Settings/Paint.NET" (XP) -- they aren't text files. The real issue here is that this would be horrendously confusing. If each layer has its own history, then where does image-wide history data go? If I create a new layer, or delete a layer, how does that affect the granularized history? It also becomes very confusing to develop and test, and to use. Things just wouldn't always happen as you'd expect them to even if it was indeed working correctly. No, it's just simpler to keep "time" as a one-dimensional entity in Paint.NET. The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
usedHONDA Posted January 20, 2007 Share Posted January 20, 2007 I'm happy with the system as it is right now (even if I'm being referred to as George). "The greatest thing about the Internet is that you can write anything you want and give it a false source." ~Ezra Pound twtr | dA | tmblr | yt | fb Link to comment Share on other sites More sharing options...
Hellfire010 Posted January 20, 2007 Share Posted January 20, 2007 Yeah, I think it would be easier to keep it the way it is. However, if there ever is a chance of this becoming part of the program it should have a toggle on/off option, that way it won't confuse you if you don't want it to. Link to comment Share on other sites More sharing options...
Rick Brewster Posted January 20, 2007 Share Posted January 20, 2007 Yeah, I think it would be easier to keep it the way it is. However, if there ever is a chance of this becoming part of the program it should have a toggle on/off option, that way it won't confuse you if you don't want it to. Which further enforces my conviction to not ever have this. The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
usedHONDA Posted January 20, 2007 Share Posted January 20, 2007 I have had a lot of ideas for improvements, but most of them are scraped because it would make things too complicated and I would forget how to use it after a day or two. "The greatest thing about the Internet is that you can write anything you want and give it a false source." ~Ezra Pound twtr | dA | tmblr | yt | fb Link to comment Share on other sites More sharing options...
crosswalker Posted January 21, 2007 Author Share Posted January 21, 2007 If each layer has its own history, then where does image-wide history data go? I'm not entirely sure how it is done now, but, in xml speak, it could be as follows: The image wide adjustments could perhaps have a separate area on screen, but in the same window. If I create a new layer, or delete a layer, how does that affect the granularized history? Continuing on the above, a new layer could simply add a new to the history file. It also becomes very confusing to develop and test, and to use. Things just wouldn't always happen as you'd expect them to even if it was indeed working correctly. How so? No, it's just simpler to keep "time" as a one-dimensional entity in Paint.NET. Aye, perhaps....maybe I should get the PDN source and try implementing it. In the process of which I will probably find that I agree wholeheartedly with Rick on this Link to comment Share on other sites More sharing options...
Rick Brewster Posted January 21, 2007 Share Posted January 21, 2007 crosswalker, Except that's not how history files are stored or organized at all. They are not XML, they are not plain text, they are not human understandable descriptions in any way. Nor are they designed to be. Continuing on the above, a new layer could simply add a new to the history file. This statement is a logical fallacy though, following from over-simplifying the engineering aspect of this whole thing. You can't just wave your hands and say, "it's a new layer!" How so? Because you'd suddenly be organizing the history data in a non-intuitive way. If you make changes to layer A, then layer B, then layer C, then go undo things from A, then make changes to C, then undo something from B, then make changes to C, then undo from layer B again ... and then you want to start redoing things ... it gets very confusing. The normal timeline, that is to say the history organized w.r.t. time instead of time+layer, gets totally maligned. Do we keep a separate undo list for the order in which you've undone things so that you can actually recreate the normal timeline? It's just way more confusing than you realize, trust me. The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
Hellfire010 Posted January 21, 2007 Share Posted January 21, 2007 In all honesty, I would not find that confusing at all. However, everything else seems to side with Rick on this one. Link to comment Share on other sites More sharing options...
crosswalker Posted January 22, 2007 Author Share Posted January 22, 2007 I agree with Rick. I hadn't considered trying to recreate a "normal" undo timeline or the non-human readable format. Link to comment Share on other sites More sharing options...
Rick Brewster Posted January 22, 2007 Share Posted January 22, 2007 Additionally, there are items that show up in the history that do not modify a layer directly, but which define the scope at which the image or layer is modified. Primarily, the selection, which is not actually part of the image (it is part of the "workspace"). When you change a selection, it affects where you can draw on the layer. However, the selection is independent of the layer. You can't have the selection's changes be part of any one layer's timeline because the scope of permitted modification (that is, the selection region) changes with the layer you have chosen in the Layers window (that is to say, changing the active layer affects which part of the image you can change). This is especially integral to the Move Selected Pixels tool, which must have a lock on the layer, a lock on which layer is active, and full control over the selection. If you made changes with this tool and then allowed each entity's timeline to be backtracked independently, then either: (1) you have to implement crazy locking and sychronization mechanisms to ensure that if "A" is undone but depends on state in "B" or "C", that B and C are also given a chance to reconcile themselves, or (2) your head explodes. The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
BoltBait Posted January 22, 2007 Share Posted January 22, 2007 How would you handle Crop to Selection? You can't undo *that* by layer... Rick, I'd mark this suggestion down as "more trouble than its worth" and move on. Download: BoltBait's Plugin Pack | CodeLab | and a Free Computer Dominos Game Link to comment Share on other sites More sharing options...
Rick Brewster Posted January 22, 2007 Share Posted January 22, 2007 That's what I did do The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
Rick Brewster Posted February 8, 2007 Share Posted February 8, 2007 Like I said, it is just way way way way way way way way way more complicated than you think, but in terms of implementation complexity and in terms of usability. This will not be added to Paint.NET. (Not trying to be stern here, just trying to divert energy away from this thread and on to other things that are much more productive.) Locked The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
Recommended Posts