Commit Graph

30 Commits

Author SHA1 Message Date
Vojtech Bubnik
f58ee46687 WIP Refactoring of exceptions:
1) All slicer's exceptions are now derived from Slic3r::Exception.
2) New exceptions are defined for slicing errors.
3) Exceptions are propagated to the Plater to show.
It remains to modify the slicing back-end to throw the new SlicingError
exceptions instead of std::runtime_error and to show the other exceptions
by a message dialog instead of a notification.
2020-09-14 18:03:22 +02:00
Lukas Matena
080792f9ed Fixed some more warnings, moved function to get ExtrusionRole name into ExtrusionEntity.hpp
So it can be called from wherever it may be needed
2019-09-06 15:55:07 +02:00
Lukas Matena
b6e278cfc3 SLA gizmo now uses the new separate undo/redo stack for manual editing mode 2019-07-29 13:07:49 +02:00
bubnikv
4a3f64c4d2 New Undo / Redo stack for the gizmos. The Gizmo specific stack is
entered with Plater::enter_gizmos_stack(), and left with
Plater::enter_gizmos_stack(). Other than that, the 2nd Undo / Redo
stack is transparent to the user of the Plater.

WIP: Currently the Gizmo stack takes a snapshot of the whole scene on
Plater::enter_gizmos_stack(). While it should work, it may be cheaper
to modify the Undo/Redo stack to only take a snapshot of the gizmos
in the Gizmo mode.
2019-07-26 13:44:33 +02:00
YuSanka
ba998a20e9 Fix for 0592ae65ee 2019-07-24 12:32:38 +02:00
YuSanka
9aeb100de5 Completed setting of the item focus in ObjectList after undo/redo 2019-07-24 11:25:04 +02:00
Lukas Matena
393b6612fb Fixed a missing include in UndoRedo.cpp 2019-07-23 09:40:07 +02:00
bubnikv
a211156a15 Fixed compilation on clang. 2019-07-22 17:26:06 +02:00
bubnikv
53c06f5a84 Refactoring of the Undo / Redo stack interface:
The Snapshot specific data, which is fully provided from the outside
of the Undo / Redo stack is now stored as an StackData structure.
The StackData structure may be extended with small size data,
like the cursor position in the side bar.
2019-07-22 16:52:47 +02:00
bubnikv
5945c13ae6 Undo / Redo. Workaround for the Wipe tower. 2019-07-19 15:29:04 +02:00
bubnikv
1f727bca37 Memory statistics (total memory, memory usage, Undo / Redo stack size)
into the System INfo dialog.
2019-07-19 11:12:38 +02:00
bubnikv
f4fa4ff6e4 Adding a generic bitmap "flags" attrib to the Undo / Redo snapshot.
using this new "flags" attrib to store & recover the "Layers editing active"
flag and restoring the "Layers editing" tool state.
2019-07-19 10:29:06 +02:00
bubnikv
e103460386 Storing the active printer technology onto the Undo / Redo stack,
remembering the last selected Printer profile for the SLA and FDM
technologies separately, and activating them on Undo / Redo.

When switching the technologies, user is asked whether to discard
the modified profiles or not.
2019-07-18 17:41:47 +02:00
bubnikv
dcb1875e40 Undo / Redo memory conservation strategy: Release recoverable data
starting from the objects of lowest ObjectID.
(convex hulls are recoverable as well as the indexed triangle sets
inside the TriangleMeshes or the triangle connectivity information).

Now the top most snapshot (the temp one taken before Undo jump) will
never be released.
2019-07-18 11:51:06 +02:00
bubnikv
5e5eb8cfb2 Fix after merge 2019-07-17 16:00:09 +02:00
bubnikv
5a24b6af21 Merge remote-tracking branch 'remotes/origin/master' into vb_undo_redo2 2019-07-17 15:54:57 +02:00
bubnikv
d30229cc5f WIP: Undo / Redo memory limiting by releasing the least recently
used snapshots. Memory limit set to 10% of physical system memory.
2019-07-17 15:48:53 +02:00
Enrico Turri
96681151a9 Framework to serialize gizmos into undo/redo stack
Serialization into undo/redo of Cut gizmo

Refactoring of GLGizmosManager
2019-07-17 08:38:48 +02:00
bubnikv
445cd20919 Undo / Redo fixes 2019-07-05 19:06:19 +02:00
bubnikv
7dfc50e795 Trying to fix some Linux & OSX compilation issues. 2019-07-04 23:34:18 +02:00
bubnikv
2c3e630a36 Trying to make all C++ of the platforms happy. 2019-07-04 22:52:33 +02:00
bubnikv
b52a3cbb9e Merge remote-tracking branch 'origin/ys_undo_redo' into vb_undo_redo 2019-07-04 20:15:50 +02:00
bubnikv
79b4087ab3 Testing code for serialization of DynamicPrintConfig 2019-07-04 20:14:38 +02:00
YuSanka
0f682282bf Update object list after undo/redo 2019-07-04 19:46:46 +02:00
bubnikv
e402cd2aa5 WIP Undo / Redo: Optional debug print outs. 2019-07-04 17:14:15 +02:00
bubnikv
ef9495150e WIP Undo / Redo : serialization / deserialization of object selection. 2019-07-04 14:35:04 +02:00
bubnikv
2bde3e12f2 WIP Undo / Redo: First Undo in the history of PrusaSlicer! 2019-07-04 10:45:41 +02:00
bubnikv
07e2066dd3 WIP Undo / Redo: Serializing the configs of ModelObject / ModelVolume
/ ModelMaterial as separate objects to conserve memory.
2019-07-03 13:43:54 +02:00
bubnikv
27a0a2fe35 WIP Undo / Redo: Capturing of the triangle meshes. 2019-07-02 17:56:38 +02:00
bubnikv
1ba1fd2b97 WIP UndoRedo: Added Undo/Redo stack, added Platter::take_snapshot(),
experimental snapshots on loading STLs and increasing / decreasing
model instances.
2019-07-02 16:42:23 +02:00