Can now undo/redo grid operations
This commit is contained in:
parent
36253d8f23
commit
6b3ce01e94
5 changed files with 64 additions and 5 deletions
|
|
@ -14,6 +14,7 @@ void GridModifyTool::set_grid_id(ServerClientID newGridID) {
|
|||
auto gridFoundIt = drawP.world.gridMan.grids.find(gridID);
|
||||
if(gridFoundIt != drawP.world.gridMan.grids.end()) {
|
||||
WorldGrid& g = gridFoundIt->second;
|
||||
oldGrid = g;
|
||||
CoordSpaceHelper newCam;
|
||||
newCam.inverseScale = g.size / WorldScalar(WorldGrid::GRID_UNIT_PIXEL_SIZE);
|
||||
newCam.pos = g.offset - drawP.world.main.window.size.cast<WorldScalar>() * newCam.inverseScale * WorldScalar(0.5);
|
||||
|
|
@ -173,5 +174,5 @@ void GridModifyTool::draw(SkCanvas* canvas, const DrawData& drawData) {
|
|||
}
|
||||
|
||||
void GridModifyTool::switch_tool(DrawingProgramToolType newTool) {
|
||||
drawP.world.gridMan.send_grid_info(gridID);
|
||||
drawP.world.gridMan.send_grid_info(oldGrid, gridID);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#pragma once
|
||||
#include "DrawingProgramToolBase.hpp"
|
||||
#include "../WorldGrid.hpp"
|
||||
|
||||
class DrawingProgram;
|
||||
|
||||
|
|
@ -14,6 +15,7 @@ class GridModifyTool : public DrawingProgramToolBase {
|
|||
virtual bool prevent_undo_or_redo() override;
|
||||
virtual void switch_tool(DrawingProgramToolType newTool) override;
|
||||
private:
|
||||
WorldGrid oldGrid;
|
||||
ServerClientID gridID;
|
||||
unsigned selectionMode = 0;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue