diff --git a/eeschema/block.cpp b/eeschema/block.cpp index 184d53f328..0e76ca770a 100644 --- a/eeschema/block.cpp +++ b/eeschema/block.cpp @@ -136,7 +136,12 @@ void SCH_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) if( block->GetCommand() != BLOCK_DUPLICATE ) SaveCopyInUndoList( block->GetItems(), UR_CHANGED, block->AppendUndo(), block->GetMoveVector() ); - MoveItemsInList( block->GetItems(), block->GetMoveVector() ); + for( unsigned ii = 0; ii < block->GetItems().GetCount(); ii++ ) + { + SCH_ITEM* item = dynamic_cast( block->GetItems().GetPickedItem( ii ) ); + item->Move( block->GetMoveVector() ); + GetCanvas()->GetView()->Update( item, KIGFX::GEOMETRY ); + } break; case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/ @@ -273,8 +278,7 @@ bool SCH_EDIT_FRAME::HandleBlockEnd( wxDC* aDC ) if( ( block->GetCommand() == BLOCK_CUT ) && block->GetCount() ) { wxPoint move_vector = -GetScreen()->m_BlockLocate.GetLastCursorPosition(); - copyBlockItems( block->GetItems() ); - MoveItemsInList( m_blockItems.GetItems(), move_vector ); + copyBlockItems( block->GetItems(), move_vector ); } // We set this in a while loop to catch any newly created items @@ -299,8 +303,7 @@ bool SCH_EDIT_FRAME::HandleBlockEnd( wxDC* aDC ) if( block->GetCount() ) { wxPoint move_vector = -GetScreen()->m_BlockLocate.GetLastCursorPosition(); - copyBlockItems( block->GetItems() ); - MoveItemsInList( m_blockItems.GetItems(), move_vector ); + copyBlockItems( block->GetItems(), move_vector ); } block->ClearItemsList(); @@ -367,7 +370,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx } -void SCH_EDIT_FRAME::copyBlockItems( PICKED_ITEMS_LIST& aItemsList ) +void SCH_EDIT_FRAME::copyBlockItems( PICKED_ITEMS_LIST& aItemsList, const wxPoint& aMoveVector ) { m_blockItems.ClearListAndDeleteItems(); // delete previous saved list, if exists @@ -380,6 +383,7 @@ void SCH_EDIT_FRAME::copyBlockItems( PICKED_ITEMS_LIST& aItemsList ) SCH_ITEM* copy = DuplicateStruct( (SCH_ITEM*) aItemsList.GetPickedItem( ii ) ); copy->SetParent( NULL ); copy->SetFlags( copy->GetFlags() | UR_TRANSIENT ); + copy->Move( aMoveVector ); ITEM_PICKER item( copy, UR_NEW ); m_blockItems.PushItem( item ); diff --git a/eeschema/list_operations.h b/eeschema/list_operations.h index f421e861bf..28e68d546c 100644 --- a/eeschema/list_operations.h +++ b/eeschema/list_operations.h @@ -40,14 +40,6 @@ void RotateListOfItems( PICKED_ITEMS_LIST& aItemsList, const wxPoint& rotationPo void MirrorY( PICKED_ITEMS_LIST& aItemsList, const wxPoint& aMirrorPoint ); void MirrorX( PICKED_ITEMS_LIST& aItemsList, const wxPoint& aMirrorPoint ); -/** - * Function MoveItemsInList - * Move a list of items to a given move vector - * @param aItemsList = list of picked items - * @param aMoveVector = the move vector value - */ -void MoveItemsInList( PICKED_ITEMS_LIST& aItemsList, const wxPoint& aMoveVector ); - /** * Function DeleteItemsInList * delete schematic items in aItemsList diff --git a/eeschema/operations_on_items_lists.cpp b/eeschema/operations_on_items_lists.cpp index fb258536b6..124b822a85 100644 --- a/eeschema/operations_on_items_lists.cpp +++ b/eeschema/operations_on_items_lists.cpp @@ -105,16 +105,6 @@ void MirrorX( PICKED_ITEMS_LIST& aItemsList, const wxPoint& aMirrorPoint ) } -void MoveItemsInList( PICKED_ITEMS_LIST& aItemsList, const wxPoint& aMoveVector ) -{ - for( unsigned ii = 0; ii < aItemsList.GetCount(); ii++ ) - { - SCH_ITEM* item = dynamic_cast( aItemsList.GetPickedItem( ii ) ); - item->Move( aMoveVector ); - } -} - - void SCH_EDIT_FRAME::CheckListConnections( PICKED_ITEMS_LIST& aItemsList, bool aAppend ) { std::vector< wxPoint > pts; diff --git a/eeschema/sch_edit_frame.h b/eeschema/sch_edit_frame.h index 37fd27ed64..2ea6a4bc87 100644 --- a/eeschema/sch_edit_frame.h +++ b/eeschema/sch_edit_frame.h @@ -1329,7 +1329,7 @@ private: * @sa m_blockItems * @param aItemsList List to copy the block select items into. */ - void copyBlockItems( PICKED_ITEMS_LIST& aItemsList ); + void copyBlockItems( PICKED_ITEMS_LIST& aItemsList, const wxPoint& aMoveVector ); /** * Add the context menu items to \a aMenu for \a aJunction.