View Issue Details

IDProjectCategoryView StatusLast Update
0001118FreeCADBugpublic2016-07-23 10:37
Reporterwmayer Assigned ToJriegel 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Fixed in Version0.17 
Summary0001118: The Undo/Redo function is broken and does sometimes not deliver the expected results.
Descriptionhttps://bugs.launchpad.net/ubuntu/+source/freecad/+bug/805073
TagsNo tags attached.
FreeCAD Information

Relationships

related to 0000020 closedJriegel UndoRedo for Gui Elements 
related to 0002054 closedwmayer Undo/redo of fillet does not bring back previous visibility 

Activities

Jriegel

2013-06-26 09:17

administrator   ~0003243

Thats a known behavior since the undo not touches the ViewProvider and its information.

The right undo/redo behaivour will be managed with the new Body object in 0.14

wmayer

2013-06-27 14:18

administrator   ~0003274

But the body object is only available for certain modules. Shouldn't we have something more general?

Jriegel

2013-06-27 19:02

administrator   ~0003276

Undo/redo for Gui objects is a big task....

wmayer

2013-06-28 07:57

administrator   ~0003279

I wonder if we couldn't extend the transaction framework. At the moment it is highly focused on App::Document and App::DocumentObject which makes it impossible to work with Gui::Document and Gui::ViewProvider.

But what if we introduce a new type App::AbstractDocument and App::AbstractDocumentObject so that App::Document and Gui::Document inherit from App::AbstractDocument and App::DocumentObject and Gui::ViewProvider inherit from App::AbstractDocumentObject?

The transaction framework then can use App::AbstractDocument and App::AbstractDocumentObject.

jannekro

2013-12-10 21:20

reporter   ~0003931

How is a non-working Undo "minor"?

Undoing a boolean operation yields in no visible objects.
(Create a box and a cylinder and do 'box - cylinder').

wmayer

2013-12-11 08:41

administrator   ~0003932

... because it doesn't crash or doesn't stop the user doing his work.

jannekro

2013-12-11 21:56

reporter   ~0003933

I see. I thought a crash or stopping the user doing his work would be a 'Blocker'.

ian.rees

2014-07-11 03:57

developer   ~0004785

Last edited: 2014-07-11 03:58

I'd be interested in working on this - is wmayer's solution (comment 3279) a good place to start? Is anyone else working on this?

Related Changesets

FreeCAD: master f0e00311

2016-06-18 21:03:13

wmayer

Details Diff
prepare view provider for undo/redo Affected Issues
0000819, 0001118, 0002054
mod - src/App/Application.cpp Diff File
mod - src/App/CMakeLists.txt Diff File
mod - src/App/Document.cpp Diff File
mod - src/App/Document.h Diff File
mod - src/App/DocumentObject.cpp Diff File
mod - src/App/DocumentObject.h Diff File
add - src/App/TransactionalObject.cpp Diff File
add - src/App/TransactionalObject.h Diff File
mod - src/App/Transactions.cpp Diff File
mod - src/App/Transactions.h Diff File
mod - src/Gui/Application.cpp Diff File
mod - src/Gui/CMakeLists.txt Diff File
add - src/Gui/TransactionObject.cpp Diff File
add - src/Gui/TransactionObject.h Diff File
mod - src/Gui/ViewProvider.cpp Diff File
mod - src/Gui/ViewProvider.h Diff File
mod - src/Gui/ViewProviderDocumentObject.cpp Diff File
mod - src/Gui/ViewProviderDocumentObject.h Diff File

FreeCAD: master 9ec06b47

2016-06-20 12:50:21

wmayer

Details Diff
prepare view provider for undo/redo Affected Issues
0000819, 0001118, 0002054
mod - src/App/Document.cpp Diff File
mod - src/App/Document.h Diff File
mod - src/App/TransactionalObject.cpp Diff File
mod - src/App/TransactionalObject.h Diff File
mod - src/App/Transactions.h Diff File
mod - src/Gui/Document.cpp Diff File
mod - src/Gui/Document.h Diff File
mod - src/Gui/TransactionObject.cpp Diff File
mod - src/Gui/ViewProvider.cpp Diff File
mod - src/Gui/ViewProvider.h Diff File
mod - src/Gui/ViewProviderDocumentObject.cpp Diff File
mod - src/Gui/ViewProviderDocumentObject.h Diff File

FreeCAD: master 0f2db906

2016-06-20 14:00:47

wmayer

Details Diff
prepare view provider for undo/redo Affected Issues
0000819, 0001118, 0002054
mod - src/App/Document.cpp Diff File
mod - src/App/Transactions.cpp Diff File
mod - src/App/Transactions.h Diff File
mod - src/Gui/ViewProviderDocumentObject.cpp Diff File

FreeCAD: master f2bad459

2016-06-20 21:58:00

wmayer

Details Diff
+ fix order of removed objects in transaction list
+ add assert to check for obvious error
+ removed unneeded method
Affected Issues
0000819, 0001118, 0002054
mod - src/App/Transactions.cpp Diff File
mod - src/Gui/Document.cpp Diff File
mod - src/Gui/Document.h Diff File

Issue History

Date Modified Username Field Change
2013-04-30 10:28 wmayer New Issue
2013-06-18 15:07 wmayer Relationship added related to 0000020
2013-06-26 09:17 Jriegel Note Added: 0003243
2013-06-26 09:17 Jriegel Assigned To => Jriegel
2013-06-26 09:17 Jriegel Status new => confirmed
2013-06-27 14:18 wmayer Note Added: 0003274
2013-06-27 19:02 Jriegel Note Added: 0003276
2013-06-28 07:57 wmayer Note Added: 0003279
2013-12-10 21:20 jannekro Note Added: 0003931
2013-12-11 08:41 wmayer Note Added: 0003932
2013-12-11 21:56 jannekro Note Added: 0003933
2014-07-11 03:57 ian.rees Note Added: 0004785
2014-07-11 03:58 ian.rees Note Edited: 0004785
2015-04-13 14:07 wmayer Relationship added related to 0002054
2016-07-23 10:35 wmayer Changeset attached => FreeCAD Master master f0e00311
2016-07-23 10:35 wmayer Changeset attached => FreeCAD Master master 9ec06b47
2016-07-23 10:35 wmayer Changeset attached => FreeCAD Master master 0f2db906
2016-07-23 10:35 wmayer Changeset attached => FreeCAD Master master f2bad459
2016-07-23 10:37 wmayer Status confirmed => closed
2016-07-23 10:37 wmayer Resolution open => fixed
2016-07-23 10:37 wmayer Fixed in Version => 0.17