View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001118 | FreeCAD | Bug | public | 2013-04-30 10:28 | 2016-07-23 10:37 |
Reporter | wmayer | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Fixed in Version | 0.17 | ||||
Summary | 0001118: The Undo/Redo function is broken and does sometimes not deliver the expected results. | ||||
Description | https://bugs.launchpad.net/ubuntu/+source/freecad/+bug/805073 | ||||
Tags | No tags attached. | ||||
FreeCAD Information | |||||
|
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 |
|
But the body object is only available for certain modules. Shouldn't we have something more general? |
|
Undo/redo for Gui objects is a big task.... |
|
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. |
|
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'). |
|
... because it doesn't crash or doesn't stop the user doing his work. |
|
I see. I thought a crash or stopping the user doing his work would be a 'Blocker'. |
|
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? |
FreeCAD: master f0e00311 2016-06-18 21:03:13 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 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 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 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 |
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 |
|
Note Added: 0003243 | |
2013-06-26 09:17 |
|
Assigned To | => Jriegel |
2013-06-26 09:17 |
|
Status | new => confirmed |
2013-06-27 14:18 | wmayer | Note Added: 0003274 | |
2013-06-27 19:02 |
|
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 |