- When working with the transform tool, the user performs many adjustments.
- These adjustments should be aggregated into one transform, and always
- performed from the original state of the image, as it was before the
- first transformation adjustment was applied -- because otherwise
- the quality degradation becomes too bad.
- That means that all work with the transform tool should eventually
- result in one transform command. However, when working with the transform
- tool, the user expects to be able to undo various stages of his transform
- actions. And undo should not undo to the original state, but to the previous
- When the user selects another tool, the definitive transform is applied.
- This happens because selecting another tool calls the clear function of
- the transform tool. One transform command should end up on the undo
- When the user selects an action from the menu, like a filter,
- the definitive transform should also be applied, and only
- then the action from the menu.
- Thus, we have two problems:
- * Transforms should always be done from the original image, but undoing
- the transform command should unto to the previous state.
- * Pending transforms should be committed before a menu action is taken.
- These problems can be solved in one go, without any of the complications
- I created yesterday by always committing the transform to the undo history
- in the transform() method, but by performing the transform from the original
- paint device, as it was when the tool got activated.
- Menu actions should reset the tool: for this we will need my complicated hack,
- I propose resetting the transform tool after a command is added.