Commit aafdfd01 authored by Maciej Suminski's avatar Maciej Suminski

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

parent 9bed4814
......@@ -79,7 +79,7 @@ protected:
LAYER_ID m_Layer;
static int getTrailingInt( wxString aStr );
static int getNextNumberInSequence( std::set<int> aSeq, bool aFillSequenceGaps);
static int getNextNumberInSequence( std::set<int> aSeq, bool aFillSequenceGaps );
public:
......
......@@ -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
......@@ -1631,7 +1643,7 @@ void PCB_BASE_EDIT_FRAME::createArray()
cachedString = text->GetText();
}
for( int ptN = 0; ptN < array_opts->GetArraySize(); ptN++)
for( int ptN = 0; ptN < array_opts->GetArraySize(); ptN++ )
{
BOARD_ITEM* new_item = NULL;
......
......@@ -56,7 +56,7 @@ TOOL_ACTION COMMON_ACTIONS::findDummy( "pcbnew.Find.Dummy", // only block the ho
AS_GLOBAL, MD_CTRL + int( 'F' ) );
TOOL_ACTION COMMON_ACTIONS::findMove( "pcbnew.InteractiveSelection.FindMove",
AS_GLOBAL, 'T');
AS_GLOBAL, 'T' );
// Edit tool actions
......@@ -77,7 +77,7 @@ TOOL_ACTION COMMON_ACTIONS::moveExact( "pcbnew.InteractiveEdit.moveExact",
"Move Exactly...", "Moves the selected item(s) by an exact amount" );
TOOL_ACTION COMMON_ACTIONS::createArray( "pcbnew.InteractiveEdit.createArray",
AS_GLOBAL, MD_CTRL + int('N'),
AS_GLOBAL, MD_CTRL + int( 'N' ),
"Create array", "Create array", AF_ACTIVATE );
TOOL_ACTION COMMON_ACTIONS::rotate( "pcbnew.InteractiveEdit.rotate",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment