pencil2d / pencil

Pencil2D is an easy, intuitive tool to make 2D hand-drawn animations. Pencil2D is open source and cross-platform.
http://pencil2d.org
GNU General Public License v2.0
1.47k stars 273 forks source link

Line Tool Undo Painfully Broken #1810

Closed killaketa closed 5 months ago

killaketa commented 8 months ago

Issue Summary

Whenever using undo after finishing using the line tool it undoes a lot more than just the last made line.

Actual Results

I was using the line tool for some basic rotoscoping when I had to undo a line. After using Ctrl+Z It undid alot more than just the last made line with the line tool. It undid almost every line tool line I made even spanning back to the previous frame with Ctrl+Shift+Z and Redo doing nothing.

Expected Results

When using Ctrl+Z it should undo the last series of lines made with line tool before pressing enter. It currently is very broken and unpredictable in the latest nightly build. Sometimes Ctrl+Z doesn't even work at all with the lines made.

Steps to reproduce

Make a line with line tool and press enter -> select pencil tool and draw a line somewhere -> go back to line tool and make a bunch of lines -> Ctrl+Z (Undo) and notice how all the lines you made disappeared (even the pencil line too) other than the first line we made. Ctrl+Shift+Z (Redo) won't bring them back and if you mess around a bit more you may even make a line that's impossible to undo.

System Information

commit: 4eb164396476eff449a74ff80aa6a2aca6cb7a31 date: 2024-01-19_21:53:22

Operating System: Windows 10 Version 2009 CPU Architecture: x86_64 Qt Version: 5.15.2

J5lx commented 8 months ago

Hi. I took a look at the issue you described but wasn’t able to reproduce exactly as you described. That said, the polyline tool can be a little finicky/unintuitive, so it might be just that we have a different understanding of the tool.

When you create a line with the polyline, everything from the initial click to the final enter or double-click is considered a single line made up of one or more segments, which are created by single-clicking. Until you finish the line with enter or double-click, it is only temporary (including all of its segments) and you can cancel it by pressing Escape. It is only once you finih the line that it is fully added to your drawing in its entirety.

The undo/redo functionality only concerns itself with complete lines. It is currently not possible to undo or redo individual segments (though it has been requested before).

Based on your description, it sounds like you might be trying to undo individual segments of your line. When you press Ctrl+Z while there is an unfinished, temporary line, that will undo the most recent action you performed before starting the line, while the temporary line itself will stay, allowing you to continue or cancel it. Does this sound like the issue you’re seeing?

If this is not what you meant, can you add a screen recording of the issue you’re seeing?

J5lx commented 5 months ago

Since we haven’t heard back, I’m assuming my previous comment addressed your issue.