Undo/redo support.
This commit is contained in:
parent
6e52e19367
commit
05de84d542
|
@ -197,6 +197,9 @@ int DRAWING_TOOL::DrawArc( TOOL_EVENT& aEvent )
|
||||||
m_view->Add( arc );
|
m_view->Add( arc );
|
||||||
m_board->Add( arc );
|
m_board->Add( arc );
|
||||||
arc->ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
|
arc->ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
|
||||||
|
|
||||||
|
m_frame->OnModify();
|
||||||
|
m_frame->SaveCopyInUndoList( arc, UR_NEW );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
--step; // one another chance to draw a proper arc
|
--step; // one another chance to draw a proper arc
|
||||||
|
@ -309,6 +312,10 @@ int DRAWING_TOOL::DrawText( TOOL_EVENT& aEvent )
|
||||||
m_view->Add( text );
|
m_view->Add( text );
|
||||||
// m_board->Add( text ); // it is already added by CreateTextePcb()
|
// m_board->Add( text ); // it is already added by CreateTextePcb()
|
||||||
text->ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
|
text->ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
|
||||||
|
|
||||||
|
m_frame->OnModify();
|
||||||
|
m_frame->SaveCopyInUndoList( text, UR_NEW );
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -431,6 +438,9 @@ int DRAWING_TOOL::DrawDimension( TOOL_EVENT& aEvent )
|
||||||
m_view->Add( dimension );
|
m_view->Add( dimension );
|
||||||
m_board->Add( dimension );
|
m_board->Add( dimension );
|
||||||
dimension->ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
|
dimension->ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
|
||||||
|
|
||||||
|
m_frame->OnModify();
|
||||||
|
m_frame->SaveCopyInUndoList( dimension, UR_NEW );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -507,6 +517,7 @@ int DRAWING_TOOL::PlaceTarget( TOOL_EVENT& aEvent )
|
||||||
preview.ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
|
preview.ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
|
||||||
|
|
||||||
m_controls->SetSnapping( true );
|
m_controls->SetSnapping( true );
|
||||||
|
m_controls->SetAutoPan( true );
|
||||||
|
|
||||||
Activate();
|
Activate();
|
||||||
|
|
||||||
|
@ -542,6 +553,10 @@ int DRAWING_TOOL::PlaceTarget( TOOL_EVENT& aEvent )
|
||||||
m_view->Add( target );
|
m_view->Add( target );
|
||||||
m_board->Add( target );
|
m_board->Add( target );
|
||||||
target->ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
|
target->ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
|
||||||
|
|
||||||
|
m_frame->OnModify();
|
||||||
|
m_frame->SaveCopyInUndoList( target, UR_NEW );
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -584,6 +599,7 @@ int DRAWING_TOOL::PlaceModule( TOOL_EVENT& aEvent )
|
||||||
preview.ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
|
preview.ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
|
||||||
|
|
||||||
m_controls->SetSnapping( true );
|
m_controls->SetSnapping( true );
|
||||||
|
m_controls->SetAutoPan( true );
|
||||||
|
|
||||||
Activate();
|
Activate();
|
||||||
|
|
||||||
|
@ -617,6 +633,10 @@ int DRAWING_TOOL::PlaceModule( TOOL_EVENT& aEvent )
|
||||||
module->RunOnChildren( std::bind1st( std::mem_fun( &KIGFX::VIEW::Add ), m_view ) );
|
module->RunOnChildren( std::bind1st( std::mem_fun( &KIGFX::VIEW::Add ), m_view ) );
|
||||||
m_view->Add( module );
|
m_view->Add( module );
|
||||||
module->ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
|
module->ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
|
||||||
|
|
||||||
|
m_frame->OnModify();
|
||||||
|
m_frame->SaveCopyInUndoList( module, UR_NEW );
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -748,6 +768,9 @@ int DRAWING_TOOL::drawSegment( int aShape, bool aContinous )
|
||||||
preview.Remove( graphic );
|
preview.Remove( graphic );
|
||||||
++addedSegments;
|
++addedSegments;
|
||||||
|
|
||||||
|
m_frame->OnModify();
|
||||||
|
m_frame->SaveCopyInUndoList( graphic, UR_NEW );
|
||||||
|
|
||||||
if( aContinous )
|
if( aContinous )
|
||||||
{
|
{
|
||||||
graphic = new DRAWSEGMENT( *graphic );
|
graphic = new DRAWSEGMENT( *graphic );
|
||||||
|
@ -902,6 +925,9 @@ int DRAWING_TOOL::drawZone( bool aKeepout )
|
||||||
m_frame->Fill_Zone( zone );
|
m_frame->Fill_Zone( zone );
|
||||||
|
|
||||||
zone->ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
|
zone->ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
|
||||||
|
|
||||||
|
m_frame->OnModify();
|
||||||
|
m_frame->SaveCopyInUndoList( zone, UR_NEW );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue