Reenabled and corrected BOARD_COMMIT::Revert().

This commit is contained in:
Maciej Suminski 2016-06-16 12:19:58 +02:00
parent 497fb31ae0
commit 2ab7196035
1 changed files with 16 additions and 13 deletions

View File

@ -176,21 +176,19 @@ EDA_ITEM* BOARD_COMMIT::parentObject( EDA_ITEM* aItem ) const
void BOARD_COMMIT::Revert()
{
#if 0
PICKED_ITEMS_LIST undoList;
KIGFX::VIEW* view = m_toolMgr->GetView();
BOARD *board = (BOARD*) m_toolMgr->GetModel();
PCB_EDIT_FRAME *frame = (PCB_EDIT_FRAME*) m_toolMgr->GetEditFrame();
BOARD* board = (BOARD*) m_toolMgr->GetModel();
BOOST_FOREACH( COMMIT_LINE& ent, m_changes )
for( COMMIT_LINE& ent : m_changes )
{
BOARD_ITEM *item = static_cast<BOARD_ITEM *> (ent.m_item);
BOARD_ITEM *copy = static_cast<BOARD_ITEM *> (ent.m_copy);
BOARD_ITEM* item = static_cast<BOARD_ITEM*>( ent.m_item );
BOARD_ITEM* copy = static_cast<BOARD_ITEM*>( ent.m_copy );
if(ent.m_type == CHT_MODIFY)
switch( ent.m_type )
{
case CHT_MODIFY:
{
printf("revert %p\n", item );
RN_DATA *ratsnest = board->GetRatsnest();
if( item->Type() == PCB_MODULE_T )
@ -198,9 +196,9 @@ void BOARD_COMMIT::Revert()
MODULE* oldModule = static_cast<MODULE*>( item );
oldModule->RunOnChildren( boost::bind( &KIGFX::VIEW::Remove, view, _1 ) );
}
view->Remove( item );
ratsnest->Remove( static_cast<BOARD_ITEM*> ( item ) );
view->Remove( item );
ratsnest->Remove( static_cast<BOARD_ITEM*>( item ) );
item->SwapData( copy );
// Update all pads/drawings/texts, as they become invalid
@ -210,14 +208,19 @@ void BOARD_COMMIT::Revert()
MODULE* newModule = static_cast<MODULE*>( item );
newModule->RunOnChildren( boost::bind( &KIGFX::VIEW::Add, view, _1 ) );
}
view->Add( item );
ratsnest->Add( item );
item->ClearFlags( SELECTED );
break;
}
default:
assert( false ); // not implemented
break;
}
}
#endif
clear();
}