Jump to content

Undo and history


Recommended Posts

Affinity allows non-destructive editing, and has a great undo / history function.

What i am missing, maybe overlooked or never figured out if its possible:

Using undo / history, i want to undo one specific edit action, maybe replace it by a corrected one, but the redo again all later steps.

Like you edited a pixel layer, and made 8 overlapping brush strokes in changing colors. After the last stroke you see that stroke no 2 was in wrong color, but all other where perfect and you are unable to recreate those later strokes from scratch.

Is this possible (in Photo or Designer) to selectively undo one specific step in history, but then redo all later steps?

I‘m not talking about making the brush strokes in individual layers. It could be any operation to be undone, .e.g. deleting something, changing settings, adding something (destructively), applying destructive-only filters which cannot be seperated in layers.

Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080

LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5

iPad Air Gen 5 (2022) A2589

Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps.

My posts focus on technical aspects and leave out most of social grease like „maybe“, „in my opinion“, „I might be wrong“ etc. just add copy/paste all these softeners from this signature to make reading more comfortable for you. Otherwise I’m a fine person which respects you and everyone and wants to be respected.

 

Link to comment
Share on other sites

1 hour ago, NotMyFault said:

It could be any operation to be undone, .e.g. deleting something, changing settings, adding something (destructively), applying destructive-only filters which cannot be separated in layers.

Can't be done generically

The only thing remotely like that is the (very powerful) Undo Brush Tool but that only works at the pixel level. Which, admittedly can be very useful at times (e.g. for removing part of or all of a destructive filter) without affecting steps you did after applying the destructive filter but it is not a generic tool for deleting a history step

It's a complicated tool to understand initially but there are a few YouTube videos that attempt to explain it

 

To save time I am currently using an automated AI to reply to some posts on this forum. If any of "my" posts are wrong or appear to be total b*ll*cks they are the ones generated by the AI. If correct they were probably mine. I apologise for any mistakes made by my AI - I'm sure it will improve with time.

Link to comment
Share on other sites

1 hour ago, NotMyFault said:

i want to undo one specific edit action, maybe replace it by a corrected one, but the redo again all later steps.

"Cycle future" command? 

I haven't tried it, but from the description it looks like what you need.

P. S. It could be useful if selected steps from History could be saved as a macro.

Edited by Pšenda

Affinity Store (MSI/EXE): Affinity Suite (ADe, APh, APu) 2.5.5.2636 (Retail)
Dell OptiPlex 7060, i5-8500 3.00 GHz, 16 GB, Intel UHD Graphics 630, Dell P2417H 1920 x 1080, Windows 11 Pro, Version 23H2, Build 22631.4317.
Dell Latitude E5570, i5-6440HQ 2.60 GHz, 8 GB, Intel HD Graphics 530, 1920 x 1080, Windows 11 Pro, Version 23H2, Build 22631.4317.
Intel NUC5PGYH, Pentium N3700 2.40 GHz, 8 GB, Intel HD Graphics, EIZO EV2456 1920 x 1200, Windows 10 Pro, Version 21H1, Build 19043.2130.

Link to comment
Share on other sites

2 hours ago, Pšenda said:

"Cycle future" command? 

I haven't tried it, but from the description it looks like what you need.

P. S. It could be useful if selected steps from History could be saved as a macro.

No, you get Alternative future path once you have gone back to history, and start editing from that point. Those edits are recorded as alternative path.  You can switch between those paths, but it does not give the function I was asking for.

Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080

LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5

iPad Air Gen 5 (2022) A2589

Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps.

My posts focus on technical aspects and leave out most of social grease like „maybe“, „in my opinion“, „I might be wrong“ etc. just add copy/paste all these softeners from this signature to make reading more comfortable for you. Otherwise I’m a fine person which respects you and everyone and wants to be respected.

 

Link to comment
Share on other sites

2 hours ago, carl123 said:

Can't be done generically

The only thing remotely like that is the (very powerful) Undo Brush Tool but that only works at the pixel level. Which, admittedly can be very useful at times (e.g. for removing part of or all of a destructive filter) without affecting steps you did after applying the destructive filter but it is not a generic tool for deleting a history step

It's a complicated tool to understand initially but there are a few YouTube videos that attempt to explain it

 

Thanks. I know this function and tried it with test documents, but never used it. I think you need to create snapshots before you can use it, another hurdle.

It may help in special cases, but does not provide what I’m looking for.

Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080

LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5

iPad Air Gen 5 (2022) A2589

Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps.

My posts focus on technical aspects and leave out most of social grease like „maybe“, „in my opinion“, „I might be wrong“ etc. just add copy/paste all these softeners from this signature to make reading more comfortable for you. Otherwise I’m a fine person which respects you and everyone and wants to be respected.

 

Link to comment
Share on other sites

Hmm, at least in general theory it should be possible, if the whole is implemented in a somehow suitable way, as most undro/redo chains are implementation wise do use the command & memento software patterns. - Have to see (remember) if I might have seen something like that feature already in some other sort of software. BTW the whole would also be handy for an advanced & more complex macro steps editing.

☛ Affinity Designer 1.10.8 ◆ Affinity Photo 1.10.8 ◆ Affinity Publisher 1.10.8 ◆ OSX El Capitan
☛ Affinity V2.3 apps ◆ MacOS Sonoma 14.2 ◆ iPad OS 17.2

Link to comment
Share on other sites

I have not given this much thought but it seems like there would be many situations where this would not be possible, or at least not very straightforward or easy to use.

For instance, if some step created a new object & in later ones various edits were done that acted on it, what would those later steps act on if creating that object was undone or replaced with something that did not create that same object?

All 3 1.10.8, & all 3 V2.5.6 Mac apps; 2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
A
ll 3 V2 apps for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

It is absolutely no problem if you think in the way of a software developer.

Affinity apps can be seen as database apps, consisting of sql code (recorded macros) and data stored in the db (affinity documents, layers and their content).

it would no problem to load the source code into an editor, and change a line containing an error. Of course, if you remove a line defining a variable, all references to that variable name would become invalid. But as a software devolved you are capable to change all dependent lines, and modern editors support this with search/highlighting etc.

would you forbid editing source code because a developer could produce buggy code?
 

for me, editing images is equivalent to writing program statements (macro recordings does this), plus handling of stored data.

open a SVG document with a text editor: it contains just a list of drawing statements. You can edit any line, and as long as you keep the structure intact, editing some lines is absolutely no problem.

Again, you can break the document, but this is no reason to totally reject the option.

Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080

LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5

iPad Air Gen 5 (2022) A2589

Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps.

My posts focus on technical aspects and leave out most of social grease like „maybe“, „in my opinion“, „I might be wrong“ etc. just add copy/paste all these softeners from this signature to make reading more comfortable for you. Otherwise I’m a fine person which respects you and everyone and wants to be respected.

 

Link to comment
Share on other sites

7 minutes ago, NotMyFault said:

Again, you can break the document, but this is no reason to totally reject the option.

I don't understand why you would want to allow the app to do anything that breaks the document. I certainly would not.

All 3 1.10.8, & all 3 V2.5.6 Mac apps; 2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
A
ll 3 V2 apps for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

2 hours ago, R C-R said:

I don't understand why you would want to allow the app to do anything that breaks the document. I certainly would not.

A user can „destroy“ any document using the regular app in seconds, e.g. by deactivating history and deleting or flattening everything.

I want to give experts users the option to actually use the saved history, to selectively remove unwanted edit steps, naturally on their own risk. This will not damage the document in the sense of „save not possible“ or file structure damage, it will only render some edit actions in history to „no-ops“ which can be simply and safely ignored.

It is similar about getting the right to repair for documents which contain a defect. Of course you can destroy your iPhone when trying to swap the display or battery without the proper skills, spare parts and tools. Never the less, there are good reasons that Apple must allow such self-repairs. 
 

I just want the option to repair a sequence of edit steps (I made myself), and re-using a potentially lengthy chain of steps after the faulty one.

Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080

LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5

iPad Air Gen 5 (2022) A2589

Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps.

My posts focus on technical aspects and leave out most of social grease like „maybe“, „in my opinion“, „I might be wrong“ etc. just add copy/paste all these softeners from this signature to make reading more comfortable for you. Otherwise I’m a fine person which respects you and everyone and wants to be respected.

 

Link to comment
Share on other sites

31 minutes ago, NotMyFault said:

This will not damage the document in the sense of „save not possible“ or file structure damage, it will only render some edit actions in history to „no-ops“ which can be simply and safely ignored.

I'm still not sure how this could work when the 'no-op' steps create something that a user would not want removed from the document, but maybe that's just me. 

Regardless, since this is no currently possible, you could add a request for it in the feedback forum & see if the devs will consider adding it in the future.

All 3 1.10.8, & all 3 V2.5.6 Mac apps; 2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
A
ll 3 V2 apps for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

Already filed a day ago 😁

Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080

LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5

iPad Air Gen 5 (2022) A2589

Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps.

My posts focus on technical aspects and leave out most of social grease like „maybe“, „in my opinion“, „I might be wrong“ etc. just add copy/paste all these softeners from this signature to make reading more comfortable for you. Otherwise I’m a fine person which respects you and everyone and wants to be respected.

 

Link to comment
Share on other sites

17 hours ago, NotMyFault said:

What i am missing, maybe overlooked or never figured out if its possible:

Using undo / history, i want to undo one specific edit action, maybe replace it by a corrected one, but the redo again all later steps.

I don't think it's possible as you describe it.

But, without relying upon any specific undo/history capacities of the software, you could go back in the history of the file, and recover only some changed elements (text, images, objects, styles,…) by copy-paste from an old version — instead of restoring the whole file.

It's always possible to recover at least how file was before the last save, or older versions if you have some versioning, like the Revert command in the File menu of Apple's softwares, or manually by by systemically renaming files, or with Time Machine or other incremental backup solutions.

Here, I don't suggest to restore the file but only open it, peep in and copy what you want. 

 

In practice: 

(If you don't have any other version of the file, or unwanted change happened since last save, do this first:)

  1. "Save as" your current work, with a new name or place
  2. In File menu > Open recent, open your previous version.

 

  1. Open an old version containing the element you want to recover unchanged
  2. Search and select this element 
  3. Copy it "in its pristine state" 
  4. Back in your recently modified document, paste the original element (perhaps applying though the new modified style, depending on what you missed)
  5. Or conversely, paste only the unchanged style to new objects. 

Sounds simple but this saved me many times! 

Affinity Suite 2.5 – Monterey 12.7.5 – MacBookPro 14" 2021 M1 Pro 16Go/1To

I apologise for any approximations in my English. It is not my mother tongue.

Link to comment
Share on other sites

6 hours ago, Oufti said:

I don't think it's possible as you describe it.

But, without relying upon any specific undo/history capacities of the software, you could go back in the history of the file, and recover only some changed elements (text, images, objects, styles,…) by copy-paste from an old version — instead of restoring the whole file.

It's always possible to recover at least how file was before the last save, or older versions if you have some versioning, like the Revert command in the File menu of Apple's softwares, or manually by by systemically renaming files, or with Time Machine or other incremental backup solutions.

Here, I don't suggest to restore the file but only open it, peep in and copy what you want. 

 

In practice: 

(If you don't have any other version of the file, or unwanted change happened since last save, do this first:)

  1. "Save as" your current work, with a new name or place
  2. In File menu > Open recent, open your previous version.

 

  1. Open an old version containing the element you want to recover unchanged
  2. Search and select this element 
  3. Copy it "in its pristine state" 
  4. Back in your recently modified document, paste the original element (perhaps applying though the new modified style, depending on what you missed)
  5. Or conversely, paste only the unchanged style to new objects. 

Sounds simple but this saved me many times! 

Thank you for this reply. I’m aware of this method. What I’m looking is unfortunately not possible with that method: copying those steps after a specific point in history.

Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080

LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5

iPad Air Gen 5 (2022) A2589

Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps.

My posts focus on technical aspects and leave out most of social grease like „maybe“, „in my opinion“, „I might be wrong“ etc. just add copy/paste all these softeners from this signature to make reading more comfortable for you. Otherwise I’m a fine person which respects you and everyone and wants to be respected.

 

Link to comment
Share on other sites

To give some examples where this function could be beneficial, and technically possible:

  1. you have misplaced a layer to fractional positions, causing blurriness. You want to change the layer position to whole integers, and re-apply all later steps.
  2. you have created 1000 objects, using the same color (or layer fx). Now you detect that you need to change the color, starting with object 201. Or assign a layer tag color (label) starting for no 201, allowing to select them and change their colors / styles in one click
  3. you have deleted one layer by mistake. The layer never gets individually edited layer, it is just required that it is in the layer stack and gets included in layer blending. No later edit will affect specifically this edit.
  4. you have used power-duplicate to create 7 shapes along a circle, one for every family member, by entering 360/7 for rotation in transform panel. One year later you want to create the same document structure, but include a new-born, so change rotation to 360/8, and add one CMD-J. The newly duplicated shape can stay as it is. You will add steps to place a photo into the added shape after re-applying all steps from history.

Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080

LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5

iPad Air Gen 5 (2022) A2589

Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps.

My posts focus on technical aspects and leave out most of social grease like „maybe“, „in my opinion“, „I might be wrong“ etc. just add copy/paste all these softeners from this signature to make reading more comfortable for you. Otherwise I’m a fine person which respects you and everyone and wants to be respected.

 

Link to comment
Share on other sites

@NotMyFault, for your 4th example, wouldn't you need Save History with Document enabled if the document has been closed?

Aside from that, overall it sounds like you want a function that is somewhat like the macro one in AP so that all the steps after the one(s) you changed can be 'played back' taking into account the change(s) you made earlier. Does that sound anything like what you would like?

All 3 1.10.8, & all 3 V2.5.6 Mac apps; 2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
A
ll 3 V2 apps for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

10 hours ago, NotMyFault said:

3. you have deleted one layer by mistake. The layer never gets individually edited layer, it is just required that it is in the layer stack and gets included in layer blending. No later edit will affect specifically this edit.

Here the copy/paste workaround might help: Copy all objects that you edited after the layer deletion, then go back in the history to the step before the deletion, then paste. Or easier: copy everything -> go back -> paste.

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

1 hour ago, thomaso said:

Copy all objects that you edited after the layer deletion, then go back in the history to the step before the deletion, then paste. Or easier: copy everything -> go back -> paste.

I usually do the reverse, and certainly if the deletion dates back before what's currently in the History panel (file saved and closed perhaps):

I open an old version, copy only the deleted layer and paste it back in the newest document, on the same place in the layers stack – as if it wasn't never deleted. 

I prefer to do so as sometimes there have been changes made that I don't want to loose and that are not in the content/layers (e.g. document size, color settings,…).
It is also difficult to remember which are the objects edited since a given operation ; I find easier to only retrieve the missing object in any older version.

Affinity Suite 2.5 – Monterey 12.7.5 – MacBookPro 14" 2021 M1 Pro 16Go/1To

I apologise for any approximations in my English. It is not my mother tongue.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.