Fix duplicate to work like paste to keep pins from getting duplicated.
Also fixes the post-duplicate move to start at the cursor pos. Also fixes the fact that duplicate wasn't getting its hotkey. Fixes: lp:1830596 * https://bugs.launchpad.net/kicad/+bug/1830596
This commit is contained in:
parent
800cc1a11c
commit
d24a2afaca
|
@ -46,7 +46,6 @@ enum hotkey_id_command {
|
||||||
HK_EDIT_COMPONENT_WITH_LIBEDIT,
|
HK_EDIT_COMPONENT_WITH_LIBEDIT,
|
||||||
HK_MIRROR_X,
|
HK_MIRROR_X,
|
||||||
HK_MIRROR_Y,
|
HK_MIRROR_Y,
|
||||||
HK_DUPLICATE,
|
|
||||||
HK_MOVE,
|
HK_MOVE,
|
||||||
HK_DRAG,
|
HK_DRAG,
|
||||||
HK_SELECT_NODE,
|
HK_SELECT_NODE,
|
||||||
|
|
|
@ -131,6 +131,12 @@ void LIB_EDIT_FRAME::ReCreateMenuBar()
|
||||||
editMenu->AddItem( ACTIONS::undo, enableUndoCondition );
|
editMenu->AddItem( ACTIONS::undo, enableUndoCondition );
|
||||||
editMenu->AddItem( ACTIONS::redo, enableRedoCondition );
|
editMenu->AddItem( ACTIONS::redo, enableRedoCondition );
|
||||||
|
|
||||||
|
editMenu->AddSeparator();
|
||||||
|
editMenu->AddItem( ACTIONS::cut, EE_CONDITIONS::NotEmpty );
|
||||||
|
editMenu->AddItem( ACTIONS::copy, EE_CONDITIONS::NotEmpty );
|
||||||
|
editMenu->AddItem( ACTIONS::paste, EE_CONDITIONS::Idle );
|
||||||
|
editMenu->AddItem( ACTIONS::duplicate, EE_CONDITIONS::NotEmpty );
|
||||||
|
|
||||||
editMenu->AddSeparator();
|
editMenu->AddSeparator();
|
||||||
editMenu->AddItem( EE_ACTIONS::symbolProperties, havePartCondition );
|
editMenu->AddItem( EE_ACTIONS::symbolProperties, havePartCondition );
|
||||||
editMenu->AddItem( EE_ACTIONS::pinTable, havePartCondition );
|
editMenu->AddItem( EE_ACTIONS::pinTable, havePartCondition );
|
||||||
|
|
|
@ -152,31 +152,29 @@ void SCH_EDIT_FRAME::ReCreateMenuBar()
|
||||||
auto enableRedoCondition = [ this ] ( const SELECTION& sel ) {
|
auto enableRedoCondition = [ this ] ( const SELECTION& sel ) {
|
||||||
return GetScreen() && GetScreen()->GetRedoCommandCount() > 0;
|
return GetScreen() && GetScreen()->GetRedoCommandCount() > 0;
|
||||||
};
|
};
|
||||||
auto noActiveToolCondition = [ this ] ( const SELECTION& aSelection ) {
|
|
||||||
return GetToolId() == ID_NO_TOOL_SELECTED;
|
|
||||||
};
|
|
||||||
|
|
||||||
editMenu->AddItem( ACTIONS::undo, enableUndoCondition );
|
editMenu->AddItem( ACTIONS::undo, enableUndoCondition );
|
||||||
editMenu->AddItem( ACTIONS::redo, enableRedoCondition );
|
editMenu->AddItem( ACTIONS::redo, enableRedoCondition );
|
||||||
|
|
||||||
editMenu->AddSeparator();
|
editMenu->AddSeparator();
|
||||||
editMenu->AddItem( ACTIONS::cut, SELECTION_CONDITIONS::NotEmpty );
|
editMenu->AddItem( ACTIONS::cut, EE_CONDITIONS::NotEmpty );
|
||||||
editMenu->AddItem( ACTIONS::copy, SELECTION_CONDITIONS::NotEmpty );
|
editMenu->AddItem( ACTIONS::copy, EE_CONDITIONS::NotEmpty );
|
||||||
editMenu->AddItem( ACTIONS::paste, noActiveToolCondition );
|
editMenu->AddItem( ACTIONS::paste, EE_CONDITIONS::Idle );
|
||||||
|
editMenu->AddItem( ACTIONS::duplicate, EE_CONDITIONS::NotEmpty );
|
||||||
|
|
||||||
editMenu->AddSeparator();
|
editMenu->AddSeparator();
|
||||||
editMenu->AddItem( EE_ACTIONS::deleteItemCursor, SELECTION_CONDITIONS::ShowAlways );
|
editMenu->AddItem( EE_ACTIONS::deleteItemCursor, EE_CONDITIONS::ShowAlways );
|
||||||
|
|
||||||
// Find
|
// Find
|
||||||
editMenu->AddSeparator();
|
editMenu->AddSeparator();
|
||||||
editMenu->AddItem( ACTIONS::find, SELECTION_CONDITIONS::ShowAlways );
|
editMenu->AddItem( ACTIONS::find, EE_CONDITIONS::ShowAlways );
|
||||||
editMenu->AddItem( ACTIONS::findAndReplace, SELECTION_CONDITIONS::ShowAlways );
|
editMenu->AddItem( ACTIONS::findAndReplace, EE_CONDITIONS::ShowAlways );
|
||||||
|
|
||||||
editMenu->AddSeparator();
|
editMenu->AddSeparator();
|
||||||
// Update field values
|
// Update field values
|
||||||
editMenu->AddItem( ID_UPDATE_FIELDS, _( "Update Fields from Library..." ),
|
editMenu->AddItem( ID_UPDATE_FIELDS, _( "Update Fields from Library..." ),
|
||||||
_( "Sets symbol fields to original library values" ),
|
_( "Sets symbol fields to original library values" ),
|
||||||
update_fields_xpm, SELECTION_CONDITIONS::ShowAlways );
|
update_fields_xpm, EE_CONDITIONS::ShowAlways );
|
||||||
|
|
||||||
//
|
//
|
||||||
// Menu View:
|
// Menu View:
|
||||||
|
|
|
@ -76,7 +76,6 @@ bool LIB_EDIT_TOOL::Init()
|
||||||
moveMenu.AddItem( EE_ACTIONS::rotateCW, EE_CONDITIONS::NotEmpty, 200 );
|
moveMenu.AddItem( EE_ACTIONS::rotateCW, EE_CONDITIONS::NotEmpty, 200 );
|
||||||
moveMenu.AddItem( EE_ACTIONS::mirrorX, EE_CONDITIONS::NotEmpty, 200 );
|
moveMenu.AddItem( EE_ACTIONS::mirrorX, EE_CONDITIONS::NotEmpty, 200 );
|
||||||
moveMenu.AddItem( EE_ACTIONS::mirrorY, EE_CONDITIONS::NotEmpty, 200 );
|
moveMenu.AddItem( EE_ACTIONS::mirrorY, EE_CONDITIONS::NotEmpty, 200 );
|
||||||
moveMenu.AddItem( EE_ACTIONS::duplicate, EE_CONDITIONS::NotEmpty, 200 );
|
|
||||||
moveMenu.AddItem( EE_ACTIONS::doDelete, EE_CONDITIONS::NotEmpty, 200 );
|
moveMenu.AddItem( EE_ACTIONS::doDelete, EE_CONDITIONS::NotEmpty, 200 );
|
||||||
|
|
||||||
moveMenu.AddItem( EE_ACTIONS::properties, EE_CONDITIONS::Count( 1 ), 200 );
|
moveMenu.AddItem( EE_ACTIONS::properties, EE_CONDITIONS::Count( 1 ), 200 );
|
||||||
|
@ -84,6 +83,7 @@ bool LIB_EDIT_TOOL::Init()
|
||||||
moveMenu.AddSeparator( EE_CONDITIONS::IdleSelection, 300 );
|
moveMenu.AddSeparator( EE_CONDITIONS::IdleSelection, 300 );
|
||||||
moveMenu.AddItem( ACTIONS::cut, EE_CONDITIONS::IdleSelection, 300 );
|
moveMenu.AddItem( ACTIONS::cut, EE_CONDITIONS::IdleSelection, 300 );
|
||||||
moveMenu.AddItem( ACTIONS::copy, EE_CONDITIONS::IdleSelection, 300 );
|
moveMenu.AddItem( ACTIONS::copy, EE_CONDITIONS::IdleSelection, 300 );
|
||||||
|
moveMenu.AddItem( ACTIONS::duplicate, EE_CONDITIONS::NotEmpty, 300 );
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -92,12 +92,12 @@ bool LIB_EDIT_TOOL::Init()
|
||||||
CONDITIONAL_MENU& drawMenu = drawingTools->GetToolMenu().GetMenu();
|
CONDITIONAL_MENU& drawMenu = drawingTools->GetToolMenu().GetMenu();
|
||||||
|
|
||||||
drawMenu.AddSeparator( EE_CONDITIONS::NotEmpty, 200 );
|
drawMenu.AddSeparator( EE_CONDITIONS::NotEmpty, 200 );
|
||||||
drawMenu.AddItem( EE_ACTIONS::rotateCCW, EE_CONDITIONS::IdleSelection, 200 );
|
drawMenu.AddItem( EE_ACTIONS::rotateCCW, EE_CONDITIONS::IdleSelection, 200 );
|
||||||
drawMenu.AddItem( EE_ACTIONS::rotateCW, EE_CONDITIONS::IdleSelection, 200 );
|
drawMenu.AddItem( EE_ACTIONS::rotateCW, EE_CONDITIONS::IdleSelection, 200 );
|
||||||
drawMenu.AddItem( EE_ACTIONS::mirrorX, EE_CONDITIONS::IdleSelection, 200 );
|
drawMenu.AddItem( EE_ACTIONS::mirrorX, EE_CONDITIONS::IdleSelection, 200 );
|
||||||
drawMenu.AddItem( EE_ACTIONS::mirrorY, EE_CONDITIONS::IdleSelection, 200 );
|
drawMenu.AddItem( EE_ACTIONS::mirrorY, EE_CONDITIONS::IdleSelection, 200 );
|
||||||
|
|
||||||
drawMenu.AddItem( EE_ACTIONS::properties, EE_CONDITIONS::Count( 1 ), 200 );
|
drawMenu.AddItem( EE_ACTIONS::properties, EE_CONDITIONS::Count( 1 ), 200 );
|
||||||
|
|
||||||
//
|
//
|
||||||
// Add editing actions to the selection tool menu
|
// Add editing actions to the selection tool menu
|
||||||
|
@ -108,7 +108,6 @@ bool LIB_EDIT_TOOL::Init()
|
||||||
selToolMenu.AddItem( EE_ACTIONS::rotateCW, EE_CONDITIONS::NotEmpty, 200 );
|
selToolMenu.AddItem( EE_ACTIONS::rotateCW, EE_CONDITIONS::NotEmpty, 200 );
|
||||||
selToolMenu.AddItem( EE_ACTIONS::mirrorX, EE_CONDITIONS::NotEmpty, 200 );
|
selToolMenu.AddItem( EE_ACTIONS::mirrorX, EE_CONDITIONS::NotEmpty, 200 );
|
||||||
selToolMenu.AddItem( EE_ACTIONS::mirrorY, EE_CONDITIONS::NotEmpty, 200 );
|
selToolMenu.AddItem( EE_ACTIONS::mirrorY, EE_CONDITIONS::NotEmpty, 200 );
|
||||||
selToolMenu.AddItem( EE_ACTIONS::duplicate, EE_CONDITIONS::NotEmpty, 200 );
|
|
||||||
selToolMenu.AddItem( EE_ACTIONS::doDelete, EE_CONDITIONS::NotEmpty, 200 );
|
selToolMenu.AddItem( EE_ACTIONS::doDelete, EE_CONDITIONS::NotEmpty, 200 );
|
||||||
|
|
||||||
selToolMenu.AddItem( EE_ACTIONS::properties, EE_CONDITIONS::Count( 1 ), 200 );
|
selToolMenu.AddItem( EE_ACTIONS::properties, EE_CONDITIONS::Count( 1 ), 200 );
|
||||||
|
@ -117,6 +116,7 @@ bool LIB_EDIT_TOOL::Init()
|
||||||
selToolMenu.AddItem( ACTIONS::cut, EE_CONDITIONS::IdleSelection, 300 );
|
selToolMenu.AddItem( ACTIONS::cut, EE_CONDITIONS::IdleSelection, 300 );
|
||||||
selToolMenu.AddItem( ACTIONS::copy, EE_CONDITIONS::IdleSelection, 300 );
|
selToolMenu.AddItem( ACTIONS::copy, EE_CONDITIONS::IdleSelection, 300 );
|
||||||
selToolMenu.AddItem( ACTIONS::paste, EE_CONDITIONS::Idle, 300 );
|
selToolMenu.AddItem( ACTIONS::paste, EE_CONDITIONS::Idle, 300 );
|
||||||
|
selToolMenu.AddItem( ACTIONS::duplicate, EE_CONDITIONS::NotEmpty, 300 );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -222,43 +222,6 @@ static KICAD_T nonFields[] =
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
int LIB_EDIT_TOOL::Duplicate( const TOOL_EVENT& aEvent )
|
|
||||||
{
|
|
||||||
LIB_PART* part = m_frame->GetCurPart();
|
|
||||||
SELECTION& selection = m_selectionTool->RequestSelection( nonFields );
|
|
||||||
|
|
||||||
if( selection.GetSize() == 0 )
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
// Doing a duplicate of a new object doesn't really make any sense; we'd just end
|
|
||||||
// up dragging around a stack of objects...
|
|
||||||
if( selection.Front()->IsNew() )
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if( !selection.Front()->IsMoving() )
|
|
||||||
saveCopyInUndoList( m_frame->GetCurPart(), UR_LIBEDIT );
|
|
||||||
|
|
||||||
EDA_ITEMS newItems;
|
|
||||||
|
|
||||||
for( unsigned ii = 0; ii < selection.GetSize(); ++ii )
|
|
||||||
{
|
|
||||||
LIB_ITEM* oldItem = static_cast<LIB_ITEM*>( selection.GetItem( ii ) );
|
|
||||||
LIB_ITEM* newItem = (LIB_ITEM*) oldItem->Clone();
|
|
||||||
newItem->SetFlags( IS_NEW );
|
|
||||||
newItems.push_back( newItem );
|
|
||||||
|
|
||||||
part->GetDrawItems().push_back( newItem );
|
|
||||||
getView()->Add( newItem );
|
|
||||||
}
|
|
||||||
|
|
||||||
m_toolMgr->RunAction( EE_ACTIONS::clearSelection, true );
|
|
||||||
m_toolMgr->RunAction( EE_ACTIONS::addItemsToSel, true, &newItems );
|
|
||||||
m_toolMgr->RunAction( EE_ACTIONS::move, false );
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int LIB_EDIT_TOOL::DoDelete( const TOOL_EVENT& aEvent )
|
int LIB_EDIT_TOOL::DoDelete( const TOOL_EVENT& aEvent )
|
||||||
{
|
{
|
||||||
LIB_PART* part = m_frame->GetCurPart();
|
LIB_PART* part = m_frame->GetCurPart();
|
||||||
|
@ -667,7 +630,51 @@ int LIB_EDIT_TOOL::Paste( const TOOL_EVENT& aEvent )
|
||||||
{
|
{
|
||||||
LIB_ITEM* item = (LIB_ITEM*) selection.GetTopLeftItem();
|
LIB_ITEM* item = (LIB_ITEM*) selection.GetTopLeftItem();
|
||||||
|
|
||||||
selection.SetReferencePoint( item->GetPosition() );
|
selection.SetReferencePoint( wxPoint( item->GetPosition().x, -item->GetPosition().y ) );
|
||||||
|
m_toolMgr->RunAction( EE_ACTIONS::move, false );
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int LIB_EDIT_TOOL::Duplicate( const TOOL_EVENT& aEvent )
|
||||||
|
{
|
||||||
|
LIB_PART* part = m_frame->GetCurPart();
|
||||||
|
SELECTION& selection = m_selectionTool->RequestSelection( nonFields );
|
||||||
|
|
||||||
|
if( selection.GetSize() == 0 )
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
// Doing a duplicate of a new object doesn't really make any sense; we'd just end
|
||||||
|
// up dragging around a stack of objects...
|
||||||
|
if( selection.Front()->IsNew() )
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if( !selection.Front()->IsMoving() )
|
||||||
|
saveCopyInUndoList( m_frame->GetCurPart(), UR_LIBEDIT );
|
||||||
|
|
||||||
|
EDA_ITEMS newItems;
|
||||||
|
|
||||||
|
for( unsigned ii = 0; ii < selection.GetSize(); ++ii )
|
||||||
|
{
|
||||||
|
LIB_ITEM* oldItem = static_cast<LIB_ITEM*>( selection.GetItem( ii ) );
|
||||||
|
LIB_ITEM* newItem = (LIB_ITEM*) oldItem->Clone();
|
||||||
|
oldItem->ClearFlags( SELECTED );
|
||||||
|
newItem->SetFlags( IS_NEW | IS_PASTED | SELECTED );
|
||||||
|
newItems.push_back( newItem );
|
||||||
|
|
||||||
|
part->GetDrawItems().push_back( newItem );
|
||||||
|
getView()->Add( newItem );
|
||||||
|
}
|
||||||
|
|
||||||
|
m_selectionTool->RebuildSelection();
|
||||||
|
|
||||||
|
if( !selection.Empty() )
|
||||||
|
{
|
||||||
|
LIB_ITEM* item = (LIB_ITEM*) selection.GetTopLeftItem();
|
||||||
|
|
||||||
|
selection.SetReferencePoint( wxPoint( item->GetPosition().x, -item->GetPosition().y ) );
|
||||||
m_toolMgr->RunAction( EE_ACTIONS::move, false );
|
m_toolMgr->RunAction( EE_ACTIONS::move, false );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -677,7 +684,7 @@ int LIB_EDIT_TOOL::Paste( const TOOL_EVENT& aEvent )
|
||||||
|
|
||||||
void LIB_EDIT_TOOL::setTransitions()
|
void LIB_EDIT_TOOL::setTransitions()
|
||||||
{
|
{
|
||||||
Go( &LIB_EDIT_TOOL::Duplicate, EE_ACTIONS::duplicate.MakeEvent() );
|
Go( &LIB_EDIT_TOOL::Duplicate, ACTIONS::duplicate.MakeEvent() );
|
||||||
Go( &LIB_EDIT_TOOL::Rotate, EE_ACTIONS::rotateCW.MakeEvent() );
|
Go( &LIB_EDIT_TOOL::Rotate, EE_ACTIONS::rotateCW.MakeEvent() );
|
||||||
Go( &LIB_EDIT_TOOL::Rotate, EE_ACTIONS::rotateCCW.MakeEvent() );
|
Go( &LIB_EDIT_TOOL::Rotate, EE_ACTIONS::rotateCCW.MakeEvent() );
|
||||||
Go( &LIB_EDIT_TOOL::Mirror, EE_ACTIONS::mirrorX.MakeEvent() );
|
Go( &LIB_EDIT_TOOL::Mirror, EE_ACTIONS::mirrorX.MakeEvent() );
|
||||||
|
|
|
@ -221,7 +221,7 @@ int LIB_MOVE_TOOL::Main( const TOOL_EVENT& aEvent )
|
||||||
// Exit on a remove operation; there is no further processing for removed items.
|
// Exit on a remove operation; there is no further processing for removed items.
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if( evt->IsAction( &EE_ACTIONS::duplicate ) )
|
else if( evt->IsAction( &ACTIONS::duplicate ) )
|
||||||
{
|
{
|
||||||
if( selection.Front()->IsNew() )
|
if( selection.Front()->IsNew() )
|
||||||
{
|
{
|
||||||
|
|
|
@ -341,7 +341,6 @@ bool SCH_EDIT_TOOL::Init()
|
||||||
moveMenu.AddItem( EE_ACTIONS::rotateCW, orientCondition );
|
moveMenu.AddItem( EE_ACTIONS::rotateCW, orientCondition );
|
||||||
moveMenu.AddItem( EE_ACTIONS::mirrorX, orientCondition );
|
moveMenu.AddItem( EE_ACTIONS::mirrorX, orientCondition );
|
||||||
moveMenu.AddItem( EE_ACTIONS::mirrorY, orientCondition );
|
moveMenu.AddItem( EE_ACTIONS::mirrorY, orientCondition );
|
||||||
moveMenu.AddItem( EE_ACTIONS::duplicate, duplicateCondition );
|
|
||||||
moveMenu.AddItem( EE_ACTIONS::doDelete, E_C::NotEmpty );
|
moveMenu.AddItem( EE_ACTIONS::doDelete, E_C::NotEmpty );
|
||||||
|
|
||||||
moveMenu.AddItem( EE_ACTIONS::properties, propertiesCondition );
|
moveMenu.AddItem( EE_ACTIONS::properties, propertiesCondition );
|
||||||
|
@ -358,6 +357,7 @@ bool SCH_EDIT_TOOL::Init()
|
||||||
moveMenu.AddSeparator( E_C::IdleSelection );
|
moveMenu.AddSeparator( E_C::IdleSelection );
|
||||||
moveMenu.AddItem( ACTIONS::cut, E_C::IdleSelection );
|
moveMenu.AddItem( ACTIONS::cut, E_C::IdleSelection );
|
||||||
moveMenu.AddItem( ACTIONS::copy, E_C::IdleSelection );
|
moveMenu.AddItem( ACTIONS::copy, E_C::IdleSelection );
|
||||||
|
moveMenu.AddItem( ACTIONS::duplicate, duplicateCondition );
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -401,7 +401,6 @@ bool SCH_EDIT_TOOL::Init()
|
||||||
selToolMenu.AddItem( EE_ACTIONS::rotateCW, orientCondition, 200 );
|
selToolMenu.AddItem( EE_ACTIONS::rotateCW, orientCondition, 200 );
|
||||||
selToolMenu.AddItem( EE_ACTIONS::mirrorX, orientCondition, 200 );
|
selToolMenu.AddItem( EE_ACTIONS::mirrorX, orientCondition, 200 );
|
||||||
selToolMenu.AddItem( EE_ACTIONS::mirrorY, orientCondition, 200 );
|
selToolMenu.AddItem( EE_ACTIONS::mirrorY, orientCondition, 200 );
|
||||||
selToolMenu.AddItem( EE_ACTIONS::duplicate, duplicateCondition, 200 );
|
|
||||||
selToolMenu.AddItem( EE_ACTIONS::doDelete, E_C::NotEmpty, 200 );
|
selToolMenu.AddItem( EE_ACTIONS::doDelete, E_C::NotEmpty, 200 );
|
||||||
|
|
||||||
selToolMenu.AddItem( EE_ACTIONS::properties, propertiesCondition, 200 );
|
selToolMenu.AddItem( EE_ACTIONS::properties, propertiesCondition, 200 );
|
||||||
|
@ -430,6 +429,7 @@ bool SCH_EDIT_TOOL::Init()
|
||||||
selToolMenu.AddItem( ACTIONS::cut, E_C::IdleSelection, 300 );
|
selToolMenu.AddItem( ACTIONS::cut, E_C::IdleSelection, 300 );
|
||||||
selToolMenu.AddItem( ACTIONS::copy, E_C::IdleSelection, 300 );
|
selToolMenu.AddItem( ACTIONS::copy, E_C::IdleSelection, 300 );
|
||||||
selToolMenu.AddItem( ACTIONS::paste, E_C::Idle, 300 );
|
selToolMenu.AddItem( ACTIONS::paste, E_C::Idle, 300 );
|
||||||
|
selToolMenu.AddItem( ACTIONS::duplicate, duplicateCondition, 300 );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1336,7 +1336,7 @@ int SCH_EDIT_TOOL::CleanupSheetPins( const TOOL_EVENT& aEvent )
|
||||||
|
|
||||||
void SCH_EDIT_TOOL::setTransitions()
|
void SCH_EDIT_TOOL::setTransitions()
|
||||||
{
|
{
|
||||||
Go( &SCH_EDIT_TOOL::Duplicate, EE_ACTIONS::duplicate.MakeEvent() );
|
Go( &SCH_EDIT_TOOL::Duplicate, ACTIONS::duplicate.MakeEvent() );
|
||||||
Go( &SCH_EDIT_TOOL::RepeatDrawItem, EE_ACTIONS::repeatDrawItem.MakeEvent() );
|
Go( &SCH_EDIT_TOOL::RepeatDrawItem, EE_ACTIONS::repeatDrawItem.MakeEvent() );
|
||||||
Go( &SCH_EDIT_TOOL::Rotate, EE_ACTIONS::rotateCW.MakeEvent() );
|
Go( &SCH_EDIT_TOOL::Rotate, EE_ACTIONS::rotateCW.MakeEvent() );
|
||||||
Go( &SCH_EDIT_TOOL::Rotate, EE_ACTIONS::rotateCCW.MakeEvent() );
|
Go( &SCH_EDIT_TOOL::Rotate, EE_ACTIONS::rotateCCW.MakeEvent() );
|
||||||
|
|
|
@ -378,7 +378,7 @@ int SCH_MOVE_TOOL::Main( const TOOL_EVENT& aEvent )
|
||||||
// Exit on a remove operation; there is no further processing for removed items.
|
// Exit on a remove operation; there is no further processing for removed items.
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if( evt->IsAction( &EE_ACTIONS::duplicate ) )
|
else if( evt->IsAction( &ACTIONS::duplicate ) )
|
||||||
{
|
{
|
||||||
if( selection.Front()->IsNew() )
|
if( selection.Front()->IsNew() )
|
||||||
{
|
{
|
||||||
|
|
|
@ -270,6 +270,7 @@ enum common_hotkey_id_command {
|
||||||
HK_CUT,
|
HK_CUT,
|
||||||
HK_COPY,
|
HK_COPY,
|
||||||
HK_PASTE,
|
HK_PASTE,
|
||||||
|
HK_DUPLICATE,
|
||||||
HK_DELETE,
|
HK_DELETE,
|
||||||
HK_FIND,
|
HK_FIND,
|
||||||
HK_FIND_NEXT,
|
HK_FIND_NEXT,
|
||||||
|
|
|
@ -66,7 +66,6 @@ enum hotkey_id_command {
|
||||||
HK_3D_VIEWER,
|
HK_3D_VIEWER,
|
||||||
HK_EDIT_ITEM,
|
HK_EDIT_ITEM,
|
||||||
HK_EDIT_MODULE_WITH_MODEDIT,
|
HK_EDIT_MODULE_WITH_MODEDIT,
|
||||||
HK_DUPLICATE,
|
|
||||||
HK_DUPLICATE_ITEM_AND_INCREMENT,
|
HK_DUPLICATE_ITEM_AND_INCREMENT,
|
||||||
HK_CREATE_ARRAY,
|
HK_CREATE_ARRAY,
|
||||||
HK_PLACE_ITEM,
|
HK_PLACE_ITEM,
|
||||||
|
|
Loading…
Reference in New Issue