Disabled 'Duplicate' & 'Create array' for pads in the layout editor.
This commit is contained in:
parent
9bed4814a3
commit
aafdfd015e
|
@ -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",
|
||||
|
|
Loading…
Reference in New Issue