Disabled 'Duplicate' & 'Create array' for pads in the layout editor.

This commit is contained in:
Maciej Suminski 2015-02-18 20:30:14 +01:00
parent 9bed4814a3
commit aafdfd015e
3 changed files with 19 additions and 7 deletions

View File

@ -1531,11 +1531,16 @@ void PCB_EDIT_FRAME::moveExact()
void PCB_EDIT_FRAME::duplicateItem( bool aIncrement )
{
BOARD_ITEM* item = GetScreen()->GetCurItem();
bool editingModule = NULL != dynamic_cast<FOOTPRINT_EDIT_FRAME*>( this );
int move_cmd = 0;
BOARD_ITEM* new_item = GetBoard()->DuplicateAndAddItem(
item, aIncrement );
if( item->Type() == PCB_PAD_T && !editingModule )
{
// If it is not the module editor, then duplicate the parent module instead
item = static_cast<MODULE*>( item )->GetParent();
}
BOARD_ITEM* new_item = GetBoard()->DuplicateAndAddItem( item, aIncrement );
SaveCopyInUndoList( new_item, UR_NEW );
@ -1595,6 +1600,7 @@ void PCB_BASE_EDIT_FRAME::createArray()
bool editingModule = NULL != dynamic_cast<FOOTPRINT_EDIT_FRAME*>( this );
BOARD* board = GetBoard();
// Remember it is valid only in the module editor
MODULE* module = static_cast<MODULE*>( item->GetParent() );
DIALOG_CREATE_ARRAY::ARRAY_OPTIONS* array_opts = NULL;
@ -1608,6 +1614,12 @@ void PCB_BASE_EDIT_FRAME::createArray()
{
PICKED_ITEMS_LIST newItemsList;
if( item->Type() == PCB_PAD_T && !editingModule )
{
// If it is not the module editor, then duplicate the parent module instead
item = static_cast<MODULE*>( item )->GetParent();
}
if( editingModule )
{
// modedit saves everything upfront