Disabled 'Duplicate' & 'Create array' for pads in the layout editor.
This commit is contained in:
@@ -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:
|
||||
|
||||
|
||||
+16
-4
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user