Cleanup and naming conventions.
This commit is contained in:
parent
7c60c2e404
commit
0ebea4be53
|
@ -41,7 +41,7 @@ using namespace std::placeholders;
|
|||
BOARD_COMMIT::BOARD_COMMIT( PCB_TOOL_BASE* aTool )
|
||||
{
|
||||
m_toolMgr = aTool->GetManager();
|
||||
m_editModules = aTool->EditingModules();
|
||||
m_editModules = aTool->IsFootprintEditor();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -446,7 +446,7 @@ int PCBNEW_CONTROL::Print( const TOOL_EVENT& aEvent )
|
|||
PCBNEW_PRINTOUT_SETTINGS settings( m_frame->GetPageSettings() );
|
||||
DIALOG_PRINT_PCBNEW dlg( (PCB_BASE_EDIT_FRAME*) m_frame, &settings );
|
||||
|
||||
if( m_editModules )
|
||||
if( m_isFootprintEditor )
|
||||
dlg.ForcePrintBorder( false );
|
||||
|
||||
dlg.ShowModal();
|
||||
|
|
|
@ -889,15 +889,15 @@ void FOOTPRINT_EDIT_FRAME::setupTools()
|
|||
m_toolManager->RegisterTool( new GROUP_TOOL );
|
||||
m_toolManager->RegisterTool( new CONVERT_TOOL );
|
||||
|
||||
m_toolManager->GetTool<SELECTION_TOOL>()->SetEditModules( true );
|
||||
m_toolManager->GetTool<EDIT_TOOL>()->SetEditModules( true );
|
||||
m_toolManager->GetTool<PAD_TOOL>()->SetEditModules( true );
|
||||
m_toolManager->GetTool<DRAWING_TOOL>()->SetEditModules( true );
|
||||
m_toolManager->GetTool<POINT_EDITOR>()->SetEditModules( true );
|
||||
m_toolManager->GetTool<PCBNEW_CONTROL>()->SetEditModules( true );
|
||||
m_toolManager->GetTool<PCBNEW_PICKER_TOOL>()->SetEditModules( true );
|
||||
m_toolManager->GetTool<POSITION_RELATIVE_TOOL>()->SetEditModules( true );
|
||||
m_toolManager->GetTool<GROUP_TOOL>()->SetEditModules( true );
|
||||
m_toolManager->GetTool<SELECTION_TOOL>()->SetIsFootprintEditor( true );
|
||||
m_toolManager->GetTool<EDIT_TOOL>()->SetIsFootprintEditor( true );
|
||||
m_toolManager->GetTool<PAD_TOOL>()->SetIsFootprintEditor( true );
|
||||
m_toolManager->GetTool<DRAWING_TOOL>()->SetIsFootprintEditor( true );
|
||||
m_toolManager->GetTool<POINT_EDITOR>()->SetIsFootprintEditor( true );
|
||||
m_toolManager->GetTool<PCBNEW_CONTROL>()->SetIsFootprintEditor( true );
|
||||
m_toolManager->GetTool<PCBNEW_PICKER_TOOL>()->SetIsFootprintEditor( true );
|
||||
m_toolManager->GetTool<POSITION_RELATIVE_TOOL>()->SetIsFootprintEditor( true );
|
||||
m_toolManager->GetTool<GROUP_TOOL>()->SetIsFootprintEditor( true );
|
||||
|
||||
m_toolManager->GetTool<PCB_VIEWER_TOOLS>()->SetFootprintFrame( true );
|
||||
m_toolManager->InitTools();
|
||||
|
|
|
@ -232,11 +232,11 @@ DRAWING_TOOL::MODE DRAWING_TOOL::GetDrawingMode() const
|
|||
|
||||
int DRAWING_TOOL::DrawLine( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
if( m_editModules && !m_frame->GetModel() )
|
||||
if( m_isFootprintEditor && !m_frame->GetModel() )
|
||||
return 0;
|
||||
|
||||
MODULE* module = dynamic_cast<MODULE*>( m_frame->GetModel() );
|
||||
PCB_SHAPE* line = m_editModules ? new FP_SHAPE( module ) : new PCB_SHAPE;
|
||||
MODULE* parentFootprint = dynamic_cast<MODULE*>( m_frame->GetModel() );
|
||||
PCB_SHAPE* line = m_isFootprintEditor ? new FP_SHAPE( parentFootprint ) : new PCB_SHAPE;
|
||||
BOARD_COMMIT commit( m_frame );
|
||||
SCOPED_DRAW_MODE scopedDrawMode( m_mode, MODE::LINE );
|
||||
OPT<VECTOR2D> startingPoint = boost::make_optional<VECTOR2D>( false, VECTOR2D( 0, 0 ) );
|
||||
|
@ -255,7 +255,7 @@ int DRAWING_TOOL::DrawLine( const TOOL_EVENT& aEvent )
|
|||
{
|
||||
if( line )
|
||||
{
|
||||
if( m_editModules )
|
||||
if( m_isFootprintEditor )
|
||||
static_cast<FP_SHAPE*>( line )->SetLocalCoord();
|
||||
|
||||
commit.Add( line );
|
||||
|
@ -267,7 +267,7 @@ int DRAWING_TOOL::DrawLine( const TOOL_EVENT& aEvent )
|
|||
startingPoint = NULLOPT;
|
||||
}
|
||||
|
||||
line = m_editModules ? new FP_SHAPE( module ) : new PCB_SHAPE;
|
||||
line = m_isFootprintEditor ? new FP_SHAPE( parentFootprint ) : new PCB_SHAPE;
|
||||
line->SetShape( S_SEGMENT );
|
||||
line->SetFlags( IS_NEW );
|
||||
}
|
||||
|
@ -278,11 +278,11 @@ int DRAWING_TOOL::DrawLine( const TOOL_EVENT& aEvent )
|
|||
|
||||
int DRAWING_TOOL::DrawRectangle( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
if( m_editModules && !m_frame->GetModel() )
|
||||
if( m_isFootprintEditor && !m_frame->GetModel() )
|
||||
return 0;
|
||||
|
||||
MODULE* module = dynamic_cast<MODULE*>( m_frame->GetModel() );
|
||||
PCB_SHAPE* rect = m_editModules ? new FP_SHAPE( module ) : new PCB_SHAPE;
|
||||
MODULE* parentFootprint = dynamic_cast<MODULE*>( m_frame->GetModel() );
|
||||
PCB_SHAPE* rect = m_isFootprintEditor ? new FP_SHAPE( parentFootprint ) : new PCB_SHAPE;
|
||||
BOARD_COMMIT commit( m_frame );
|
||||
SCOPED_DRAW_MODE scopedDrawMode( m_mode, MODE::RECTANGLE );
|
||||
OPT<VECTOR2D> startingPoint = boost::make_optional<VECTOR2D>( false, VECTOR2D( 0, 0 ) );
|
||||
|
@ -301,7 +301,7 @@ int DRAWING_TOOL::DrawRectangle( const TOOL_EVENT& aEvent )
|
|||
{
|
||||
if( rect )
|
||||
{
|
||||
if( m_editModules )
|
||||
if( m_isFootprintEditor )
|
||||
static_cast<FP_SHAPE*>( rect )->SetLocalCoord();
|
||||
|
||||
commit.Add( rect );
|
||||
|
@ -310,7 +310,7 @@ int DRAWING_TOOL::DrawRectangle( const TOOL_EVENT& aEvent )
|
|||
m_toolMgr->RunAction( PCB_ACTIONS::selectItem, true, rect );
|
||||
}
|
||||
|
||||
rect = m_editModules ? new FP_SHAPE( module ) : new PCB_SHAPE;
|
||||
rect = m_isFootprintEditor ? new FP_SHAPE( parentFootprint ) : new PCB_SHAPE;
|
||||
rect->SetShape( S_RECT );
|
||||
rect->SetFlags(IS_NEW );
|
||||
startingPoint = NULLOPT;
|
||||
|
@ -322,11 +322,11 @@ int DRAWING_TOOL::DrawRectangle( const TOOL_EVENT& aEvent )
|
|||
|
||||
int DRAWING_TOOL::DrawCircle( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
if( m_editModules && !m_frame->GetModel() )
|
||||
if( m_isFootprintEditor && !m_frame->GetModel() )
|
||||
return 0;
|
||||
|
||||
MODULE* module = dynamic_cast<MODULE*>( m_frame->GetModel() );
|
||||
PCB_SHAPE* circle = m_editModules ? new FP_SHAPE( module ) : new PCB_SHAPE;
|
||||
MODULE* parentFootprint = dynamic_cast<MODULE*>( m_frame->GetModel() );
|
||||
PCB_SHAPE* circle = m_isFootprintEditor ? new FP_SHAPE( parentFootprint ) : new PCB_SHAPE;
|
||||
BOARD_COMMIT commit( m_frame );
|
||||
SCOPED_DRAW_MODE scopedDrawMode( m_mode, MODE::CIRCLE );
|
||||
OPT<VECTOR2D> startingPoint = boost::make_optional<VECTOR2D>( false, VECTOR2D( 0, 0 ) );
|
||||
|
@ -345,7 +345,7 @@ int DRAWING_TOOL::DrawCircle( const TOOL_EVENT& aEvent )
|
|||
{
|
||||
if( circle )
|
||||
{
|
||||
if( m_editModules )
|
||||
if( m_isFootprintEditor )
|
||||
static_cast<FP_SHAPE*>( circle )->SetLocalCoord();
|
||||
|
||||
commit.Add( circle );
|
||||
|
@ -354,7 +354,7 @@ int DRAWING_TOOL::DrawCircle( const TOOL_EVENT& aEvent )
|
|||
m_toolMgr->RunAction( PCB_ACTIONS::selectItem, true, circle );
|
||||
}
|
||||
|
||||
circle = m_editModules ? new FP_SHAPE( module ) : new PCB_SHAPE;
|
||||
circle = m_isFootprintEditor ? new FP_SHAPE( parentFootprint ) : new PCB_SHAPE;
|
||||
circle->SetShape( S_CIRCLE );
|
||||
circle->SetFlags( IS_NEW );
|
||||
startingPoint = NULLOPT;
|
||||
|
@ -366,11 +366,11 @@ int DRAWING_TOOL::DrawCircle( const TOOL_EVENT& aEvent )
|
|||
|
||||
int DRAWING_TOOL::DrawArc( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
if( m_editModules && !m_frame->GetModel() )
|
||||
if( m_isFootprintEditor && !m_frame->GetModel() )
|
||||
return 0;
|
||||
|
||||
MODULE* module = dynamic_cast<MODULE*>( m_frame->GetModel() );
|
||||
PCB_SHAPE* arc = m_editModules ? new FP_SHAPE( module ) : new PCB_SHAPE;
|
||||
MODULE* parentFootprint = dynamic_cast<MODULE*>( m_frame->GetModel() );
|
||||
PCB_SHAPE* arc = m_isFootprintEditor ? new FP_SHAPE( parentFootprint ) : new PCB_SHAPE;
|
||||
BOARD_COMMIT commit( m_frame );
|
||||
SCOPED_DRAW_MODE scopedDrawMode( m_mode, MODE::ARC );
|
||||
bool immediateMode = aEvent.HasPosition();
|
||||
|
@ -386,7 +386,7 @@ int DRAWING_TOOL::DrawArc( const TOOL_EVENT& aEvent )
|
|||
{
|
||||
if( arc )
|
||||
{
|
||||
if( m_editModules )
|
||||
if( m_isFootprintEditor )
|
||||
static_cast<FP_SHAPE*>( arc )->SetLocalCoord();
|
||||
|
||||
commit.Add( arc );
|
||||
|
@ -395,7 +395,7 @@ int DRAWING_TOOL::DrawArc( const TOOL_EVENT& aEvent )
|
|||
m_toolMgr->RunAction( PCB_ACTIONS::selectItem, true, arc );
|
||||
}
|
||||
|
||||
arc = m_editModules ? new FP_SHAPE( module ) : new PCB_SHAPE;
|
||||
arc = m_isFootprintEditor ? new FP_SHAPE( parentFootprint ) : new PCB_SHAPE;
|
||||
arc->SetShape( S_ARC );
|
||||
arc->SetFlags( IS_NEW );
|
||||
immediateMode = false;
|
||||
|
@ -407,7 +407,7 @@ int DRAWING_TOOL::DrawArc( const TOOL_EVENT& aEvent )
|
|||
|
||||
int DRAWING_TOOL::PlaceText( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
if( m_editModules && !m_frame->GetModel() )
|
||||
if( m_isFootprintEditor && !m_frame->GetModel() )
|
||||
return 0;
|
||||
|
||||
BOARD_ITEM* text = NULL;
|
||||
|
@ -497,7 +497,7 @@ int DRAWING_TOOL::PlaceText( const TOOL_EVENT& aEvent )
|
|||
PCB_LAYER_ID layer = m_frame->GetActiveLayer();
|
||||
|
||||
// Init the new item attributes
|
||||
if( m_editModules )
|
||||
if( m_isFootprintEditor )
|
||||
{
|
||||
FP_TEXT* fpText = new FP_TEXT( (MODULE*) m_frame->GetModel() );
|
||||
|
||||
|
@ -628,7 +628,7 @@ void DRAWING_TOOL::constrainDimension( DIMENSION* aDim )
|
|||
|
||||
int DRAWING_TOOL::DrawDimension( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
if( m_editModules && !m_frame->GetModel() )
|
||||
if( m_isFootprintEditor && !m_frame->GetModel() )
|
||||
return 0;
|
||||
|
||||
TOOL_EVENT originalEvent = aEvent;
|
||||
|
@ -988,7 +988,7 @@ int DRAWING_TOOL::PlaceImportedGraphics( const TOOL_EVENT& aEvent )
|
|||
|
||||
// Note: PlaceImportedGraphics() will convert PCB_SHAPE_T and PCB_TEXT_T to footprint
|
||||
// items if needed
|
||||
DIALOG_IMPORT_GFX dlg( m_frame, m_editModules );
|
||||
DIALOG_IMPORT_GFX dlg( m_frame, m_isFootprintEditor );
|
||||
int dlgResult = dlg.ShowModal();
|
||||
|
||||
std::list<std::unique_ptr<EDA_ITEM>>& list = dlg.GetImportedItems();
|
||||
|
@ -1012,7 +1012,7 @@ int DRAWING_TOOL::PlaceImportedGraphics( const TOOL_EVENT& aEvent )
|
|||
|
||||
if( dlg.ShouldGroupItems() )
|
||||
{
|
||||
if( m_editModules )
|
||||
if( m_isFootprintEditor )
|
||||
grp = new PCB_GROUP( m_frame->GetBoard()->GetFirstModule() );
|
||||
else
|
||||
grp = new PCB_GROUP( m_frame->GetBoard() );
|
||||
|
@ -1023,7 +1023,7 @@ int DRAWING_TOOL::PlaceImportedGraphics( const TOOL_EVENT& aEvent )
|
|||
{
|
||||
EDA_ITEM* item = ptr.get();
|
||||
|
||||
if( m_editModules )
|
||||
if( m_isFootprintEditor )
|
||||
wxASSERT( item->Type() == PCB_FP_SHAPE_T || item->Type() == PCB_FP_TEXT_T );
|
||||
else
|
||||
wxASSERT( item->Type() == PCB_SHAPE_T || item->Type() == PCB_TEXT_T );
|
||||
|
@ -1157,7 +1157,7 @@ int DRAWING_TOOL::PlaceImportedGraphics( const TOOL_EVENT& aEvent )
|
|||
|
||||
int DRAWING_TOOL::SetAnchor( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
wxASSERT( m_editModules );
|
||||
wxASSERT( m_isFootprintEditor );
|
||||
|
||||
if( !m_frame->GetModel() )
|
||||
return 0;
|
||||
|
@ -1798,7 +1798,7 @@ bool DRAWING_TOOL::getSourceZoneForAction( ZONE_MODE aMode, ZONE_CONTAINER** aZo
|
|||
|
||||
int DRAWING_TOOL::DrawZone( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
if( m_editModules && !m_frame->GetModel() )
|
||||
if( m_isFootprintEditor && !m_frame->GetModel() )
|
||||
return 0;
|
||||
|
||||
ZONE_MODE zoneMode = aEvent.Parameter<ZONE_MODE>();
|
||||
|
|
|
@ -158,13 +158,13 @@ bool EDIT_TOOL::Init()
|
|||
m_selectionTool = static_cast<SELECTION_TOOL*>( m_toolMgr->FindTool( "pcbnew.InteractiveSelection" ) );
|
||||
wxASSERT_MSG( m_selectionTool, "pcbnew.InteractiveSelection tool is not available" );
|
||||
|
||||
auto editingModuleCondition =
|
||||
auto inFootprintEditor =
|
||||
[ this ] ( const SELECTION& aSelection )
|
||||
{
|
||||
return m_editModules;
|
||||
return m_isFootprintEditor;
|
||||
};
|
||||
|
||||
auto singleModuleCondition = SELECTION_CONDITIONS::OnlyType( PCB_MODULE_T )
|
||||
auto singleFootprintCondition = SELECTION_CONDITIONS::OnlyType( PCB_MODULE_T )
|
||||
&& SELECTION_CONDITIONS::Count( 1 );
|
||||
|
||||
auto noActiveToolCondition =
|
||||
|
@ -198,7 +198,7 @@ bool EDIT_TOOL::Init()
|
|||
menu.AddItem( PCB_ACTIONS::rotateCcw, SELECTION_CONDITIONS::NotEmpty );
|
||||
menu.AddItem( PCB_ACTIONS::rotateCw, SELECTION_CONDITIONS::NotEmpty );
|
||||
menu.AddItem( PCB_ACTIONS::flip, SELECTION_CONDITIONS::NotEmpty );
|
||||
menu.AddItem( PCB_ACTIONS::mirror, editingModuleCondition && SELECTION_CONDITIONS::NotEmpty );
|
||||
menu.AddItem( PCB_ACTIONS::mirror, inFootprintEditor && SELECTION_CONDITIONS::NotEmpty );
|
||||
|
||||
menu.AddItem( ACTIONS::doDelete, SELECTION_CONDITIONS::NotEmpty );
|
||||
menu.AddItem( PCB_ACTIONS::properties, SELECTION_CONDITIONS::Count( 1 )
|
||||
|
@ -222,9 +222,9 @@ bool EDIT_TOOL::Init()
|
|||
|
||||
// Footprint actions
|
||||
menu.AddSeparator( 150 );
|
||||
menu.AddItem( PCB_ACTIONS::editFpInFpEditor, singleModuleCondition, 150 );
|
||||
menu.AddItem( PCB_ACTIONS::updateFootprint, singleModuleCondition, 150 );
|
||||
menu.AddItem( PCB_ACTIONS::changeFootprint, singleModuleCondition, 150 );
|
||||
menu.AddItem( PCB_ACTIONS::editFpInFpEditor, singleFootprintCondition, 150 );
|
||||
menu.AddItem( PCB_ACTIONS::updateFootprint, singleFootprintCondition, 150 );
|
||||
menu.AddItem( PCB_ACTIONS::changeFootprint, singleFootprintCondition, 150 );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -490,7 +490,7 @@ int EDIT_TOOL::doMoveSelection( TOOL_EVENT aEvent, bool aPickReference )
|
|||
m_dragging = true;
|
||||
|
||||
// When editing footprints, all items have the same parent
|
||||
if( EditingModules() )
|
||||
if( IsFootprintEditor() )
|
||||
{
|
||||
m_commit->Modify( selection.Front() );
|
||||
}
|
||||
|
@ -960,12 +960,12 @@ int EDIT_TOOL::Rotate( const TOOL_EVENT& aEvent )
|
|||
const int rotateAngle = TOOL_EVT_UTILS::GetEventRotationAngle( *editFrame, aEvent );
|
||||
|
||||
// When editing footprints, all items have the same parent
|
||||
if( EditingModules() )
|
||||
if( IsFootprintEditor() )
|
||||
m_commit->Modify( selection.Front() );
|
||||
|
||||
for( auto item : selection )
|
||||
{
|
||||
if( !item->IsNew() && !EditingModules() )
|
||||
if( !item->IsNew() && !IsFootprintEditor() )
|
||||
{
|
||||
m_commit->Modify( item );
|
||||
|
||||
|
@ -1060,7 +1060,7 @@ int EDIT_TOOL::Mirror( const TOOL_EVENT& aEvent )
|
|||
wxPoint mirrorPoint( refPoint.x, refPoint.y );
|
||||
|
||||
// When editing footprints, all items have the same parent
|
||||
if( EditingModules() )
|
||||
if( IsFootprintEditor() )
|
||||
m_commit->Modify( selection.Front() );
|
||||
|
||||
for( EDA_ITEM* item : selection )
|
||||
|
@ -1073,7 +1073,7 @@ int EDIT_TOOL::Mirror( const TOOL_EVENT& aEvent )
|
|||
case PCB_FP_ZONE_AREA_T:
|
||||
case PCB_PAD_T:
|
||||
// Only create undo entry for items on the board
|
||||
if( !item->IsNew() && !EditingModules() )
|
||||
if( !item->IsNew() && !IsFootprintEditor() )
|
||||
m_commit->Modify( item );
|
||||
|
||||
break;
|
||||
|
@ -1156,7 +1156,7 @@ int EDIT_TOOL::Flip( const TOOL_EVENT& aEvent )
|
|||
updateModificationPoint( selection );
|
||||
|
||||
// Flip around the anchor for footprints, and the bounding box center for board items
|
||||
VECTOR2I modPoint = EditingModules() ? VECTOR2I( 0, 0 ) : selection.GetCenter();
|
||||
VECTOR2I modPoint = IsFootprintEditor() ? VECTOR2I( 0, 0 ) : selection.GetCenter();
|
||||
|
||||
// If only one item selected, flip around the selection or item anchor point (instead
|
||||
// of the bounding box center) to avoid moving the item anchor
|
||||
|
@ -1171,12 +1171,12 @@ int EDIT_TOOL::Flip( const TOOL_EVENT& aEvent )
|
|||
bool leftRight = frame()->Settings().m_FlipLeftRight;
|
||||
|
||||
// When editing footprints, all items have the same parent
|
||||
if( EditingModules() )
|
||||
if( IsFootprintEditor() )
|
||||
m_commit->Modify( selection.Front() );
|
||||
|
||||
for( EDA_ITEM* item : selection )
|
||||
{
|
||||
if( !item->IsNew() && !EditingModules() )
|
||||
if( !item->IsNew() && !IsFootprintEditor() )
|
||||
m_commit->Modify( item );
|
||||
|
||||
if( item->Type() == PCB_GROUP_T )
|
||||
|
@ -1467,14 +1467,14 @@ int EDIT_TOOL::MoveExact( const TOOL_EVENT& aEvent )
|
|||
selCenter += translation;
|
||||
|
||||
// When editing footprints, all items have the same parent
|
||||
if( EditingModules() )
|
||||
if( IsFootprintEditor() )
|
||||
m_commit->Modify( selection.Front() );
|
||||
|
||||
for( EDA_ITEM* selItem : selection )
|
||||
{
|
||||
BOARD_ITEM* item = static_cast<BOARD_ITEM*>( selItem );
|
||||
|
||||
if( !item->IsNew() && !EditingModules() )
|
||||
if( !item->IsNew() && !IsFootprintEditor() )
|
||||
{
|
||||
m_commit->Modify( item );
|
||||
|
||||
|
@ -1563,7 +1563,7 @@ int EDIT_TOOL::Duplicate( const TOOL_EVENT& aEvent )
|
|||
BOARD_ITEM* dupe_item = nullptr;
|
||||
BOARD_ITEM* orig_item = static_cast<BOARD_ITEM*>( item );
|
||||
|
||||
if( m_editModules )
|
||||
if( m_isFootprintEditor )
|
||||
{
|
||||
MODULE* editModule = editFrame->GetBoard()->GetFirstModule();
|
||||
dupe_item = editModule->DuplicateItem( orig_item );
|
||||
|
@ -1679,7 +1679,7 @@ int EDIT_TOOL::CreateArray( const TOOL_EVENT& aEvent )
|
|||
|
||||
// we have a selection to work on now, so start the tool process
|
||||
PCB_BASE_FRAME* editFrame = getEditFrame<PCB_BASE_FRAME>();
|
||||
ARRAY_CREATOR array_creator( *editFrame, m_editModules, selection );
|
||||
ARRAY_CREATOR array_creator( *editFrame, m_isFootprintEditor, selection );
|
||||
array_creator.Invoke();
|
||||
|
||||
return 0;
|
||||
|
@ -1852,7 +1852,7 @@ int EDIT_TOOL::copyToClipboard( const TOOL_EVENT& aEvent )
|
|||
selection.SetReferencePoint( refPoint );
|
||||
|
||||
io.SetBoard( board() );
|
||||
io.SaveSelection( selection, m_editModules );
|
||||
io.SaveSelection( selection, m_isFootprintEditor );
|
||||
frame()->SetStatusText( _( "Selection copied" ) );
|
||||
}
|
||||
|
||||
|
|
|
@ -353,7 +353,7 @@ int GROUP_TOOL::Group( const TOOL_EVENT& aEvent )
|
|||
if( selection.Empty() )
|
||||
m_toolMgr->RunAction( PCB_ACTIONS::selectionCursor, true );
|
||||
|
||||
if( m_editModules )
|
||||
if( m_isFootprintEditor )
|
||||
{
|
||||
MODULE* module = board->GetFirstModule();
|
||||
|
||||
|
@ -411,7 +411,7 @@ int GROUP_TOOL::Ungroup( const TOOL_EVENT& aEvent )
|
|||
|
||||
if( group )
|
||||
{
|
||||
if( m_editModules )
|
||||
if( m_isFootprintEditor )
|
||||
{
|
||||
MODULE* module = board->GetFirstModule();
|
||||
|
||||
|
|
|
@ -89,7 +89,7 @@ bool PAD_TOOL::Init()
|
|||
|
||||
menu.AddSeparator( 400 );
|
||||
|
||||
if( m_editModules )
|
||||
if( m_isFootprintEditor )
|
||||
{
|
||||
menu.AddItem( PCB_ACTIONS::enumeratePads, SELECTION_CONDITIONS::ShowAlways, 400 );
|
||||
menu.AddItem( PCB_ACTIONS::recombinePad, recombineCondition, 400 );
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
#include "pcb_tool_base.h"
|
||||
|
||||
#include <view/view_controls.h>
|
||||
#include <view/view.h>
|
||||
#include <tool/tool_manager.h>
|
||||
#include <board_commit.h>
|
||||
#include <class_module.h>
|
||||
|
@ -59,25 +58,26 @@ void PCB_TOOL_BASE::doInteractiveItemPlacement( const std::string& aTool,
|
|||
aPlacer->m_frame = frame();
|
||||
aPlacer->m_modifiers = 0;
|
||||
|
||||
auto makeNewItem = [&] ( VECTOR2I aPosition )
|
||||
{
|
||||
if( frame()->GetModel() )
|
||||
newItem = aPlacer->CreateItem();
|
||||
|
||||
if( newItem )
|
||||
{
|
||||
newItem->SetPosition( (wxPoint) aPosition );
|
||||
preview.Add( newItem.get() );
|
||||
|
||||
if( newItem->Type() == PCB_MODULE_T )
|
||||
auto makeNewItem =
|
||||
[&]( VECTOR2I aPosition )
|
||||
{
|
||||
auto module = dyn_cast<MODULE*>( newItem.get() );
|
||||
if( frame()->GetModel() )
|
||||
newItem = aPlacer->CreateItem();
|
||||
|
||||
// footprints have more drawable parts
|
||||
module->RunOnChildren( std::bind( &KIGFX::VIEW_GROUP::Add, &preview, _1 ) );
|
||||
}
|
||||
}
|
||||
};
|
||||
if( newItem )
|
||||
{
|
||||
newItem->SetPosition( (wxPoint) aPosition );
|
||||
preview.Add( newItem.get() );
|
||||
|
||||
if( newItem->Type() == PCB_MODULE_T )
|
||||
{
|
||||
auto module = dyn_cast<MODULE*>( newItem.get() );
|
||||
|
||||
// footprints have more drawable parts
|
||||
module->RunOnChildren( std::bind( &KIGFX::VIEW_GROUP::Add, &preview, _1 ) );
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
if( aOptions & IPO_SINGLE_CLICK )
|
||||
makeNewItem( controls()->GetCursorPosition() );
|
||||
|
@ -102,15 +102,16 @@ void PCB_TOOL_BASE::doInteractiveItemPlacement( const std::string& aTool,
|
|||
VECTOR2I cursorPos = controls()->GetCursorPosition();
|
||||
aPlacer->m_modifiers = evt->Modifier();
|
||||
|
||||
auto cleanup = [&] ()
|
||||
{
|
||||
newItem = nullptr;
|
||||
preview.Clear();
|
||||
view()->Update( &preview );
|
||||
controls()->SetAutoPan( false );
|
||||
controls()->CaptureCursor( false );
|
||||
controls()->ShowCursor( true );
|
||||
};
|
||||
auto cleanup =
|
||||
[&] ()
|
||||
{
|
||||
newItem = nullptr;
|
||||
preview.Clear();
|
||||
view()->Update( &preview );
|
||||
controls()->SetAutoPan( false );
|
||||
controls()->CaptureCursor( false );
|
||||
controls()->ShowCursor( true );
|
||||
};
|
||||
|
||||
if( evt->IsCancelInteractive() )
|
||||
{
|
||||
|
@ -230,7 +231,6 @@ void PCB_TOOL_BASE::doInteractiveItemPlacement( const std::string& aTool,
|
|||
view()->Update( &preview );
|
||||
}
|
||||
}
|
||||
|
||||
else if( newItem && evt->IsMotion() )
|
||||
{
|
||||
// track the cursor
|
||||
|
@ -240,9 +240,10 @@ void PCB_TOOL_BASE::doInteractiveItemPlacement( const std::string& aTool,
|
|||
// Show a preview of the item
|
||||
view()->Update( &preview );
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
evt->SetPassEvent();
|
||||
}
|
||||
}
|
||||
|
||||
view()->Remove( &preview );
|
||||
|
@ -252,8 +253,7 @@ void PCB_TOOL_BASE::doInteractiveItemPlacement( const std::string& aTool,
|
|||
bool PCB_TOOL_BASE::Init()
|
||||
{
|
||||
// A basic context manu. Many (but not all) tools will choose to override this.
|
||||
|
||||
auto& ctxMenu = m_menu.GetMenu();
|
||||
CONDITIONAL_MENU& ctxMenu = m_menu.GetMenu();
|
||||
|
||||
// cancel current tool goes in main context menu at the top if present
|
||||
ctxMenu.AddItem( ACTIONS::cancelInteractive, SELECTION_CONDITIONS::ShowAlways, 1 );
|
||||
|
@ -289,17 +289,17 @@ PCB_DRAW_PANEL_GAL* PCB_TOOL_BASE::canvas() const
|
|||
|
||||
const PCBNEW_SELECTION& PCB_TOOL_BASE::selection() const
|
||||
{
|
||||
auto selTool = m_toolMgr->GetTool<SELECTION_TOOL>();
|
||||
const auto& selection = selTool->GetSelection();
|
||||
return selection;
|
||||
SELECTION_TOOL* selTool = m_toolMgr->GetTool<SELECTION_TOOL>();
|
||||
|
||||
return selTool->GetSelection();
|
||||
}
|
||||
|
||||
|
||||
PCBNEW_SELECTION& PCB_TOOL_BASE::selection()
|
||||
{
|
||||
auto selTool = m_toolMgr->GetTool<SELECTION_TOOL>();
|
||||
auto& selection = selTool->GetSelection();
|
||||
return selection;
|
||||
SELECTION_TOOL* selTool = m_toolMgr->GetTool<SELECTION_TOOL>();
|
||||
|
||||
return selTool->GetSelection();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2016 CERN
|
||||
* Copyright (C) 2017-2020 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
* @author Tomasz Wlostowski <tomasz.wlostowski@cern.ch>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
|
@ -56,12 +57,14 @@ struct INTERACTIVE_PLACER_BASE
|
|||
}
|
||||
|
||||
virtual std::unique_ptr<BOARD_ITEM> CreateItem() = 0;
|
||||
|
||||
virtual void SnapItem( BOARD_ITEM *aItem );
|
||||
|
||||
virtual bool PlaceItem( BOARD_ITEM *aItem, BOARD_COMMIT& aCommit );
|
||||
|
||||
PCB_BASE_EDIT_FRAME* m_frame;
|
||||
BOARD* m_board;
|
||||
int m_modifiers;
|
||||
BOARD* m_board;
|
||||
int m_modifiers;
|
||||
};
|
||||
|
||||
|
||||
|
@ -73,8 +76,8 @@ public:
|
|||
*
|
||||
* Creates a tool with given id & name. The name must be unique. */
|
||||
PCB_TOOL_BASE( TOOL_ID aId, const std::string& aName ) :
|
||||
TOOL_INTERACTIVE ( aId, aName ),
|
||||
m_editModules( false )
|
||||
TOOL_INTERACTIVE ( aId, aName ),
|
||||
m_isFootprintEditor( false )
|
||||
{};
|
||||
|
||||
/**
|
||||
|
@ -82,8 +85,8 @@ public:
|
|||
*
|
||||
* Creates a tool with given name. The name must be unique. */
|
||||
PCB_TOOL_BASE( const std::string& aName ) :
|
||||
TOOL_INTERACTIVE ( aName ),
|
||||
m_editModules( false )
|
||||
TOOL_INTERACTIVE ( aName ),
|
||||
m_isFootprintEditor( false )
|
||||
{};
|
||||
|
||||
virtual ~PCB_TOOL_BASE() {};
|
||||
|
@ -92,24 +95,16 @@ public:
|
|||
virtual void Reset( RESET_REASON aReason ) override;
|
||||
|
||||
/**
|
||||
* Function SetEditModules()
|
||||
* Function SetIsFootprintEditor()
|
||||
*
|
||||
* Toggles edit module mode. When enabled, one may select parts of footprints individually
|
||||
* (graphics, pads, etc.), so they can be modified.
|
||||
* @param aEnabled decides if the mode should be enabled.
|
||||
*/
|
||||
void SetEditModules( bool aEnabled )
|
||||
{
|
||||
m_editModules = aEnabled;
|
||||
}
|
||||
|
||||
bool EditingModules() const
|
||||
{
|
||||
return m_editModules;
|
||||
}
|
||||
void SetIsFootprintEditor( bool aEnabled ) { m_isFootprintEditor = aEnabled; }
|
||||
bool IsFootprintEditor() const { return m_isFootprintEditor; }
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
* Options for placing items interactively.
|
||||
*/
|
||||
|
@ -128,7 +123,6 @@ protected:
|
|||
IPO_REPEAT = 0x08
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Helper function for performing a common interactive idiom:
|
||||
* wait for a left click, place an item there (perhaps with a
|
||||
|
@ -171,11 +165,15 @@ protected:
|
|||
}
|
||||
|
||||
const PCB_DISPLAY_OPTIONS& displayOptions() const;
|
||||
|
||||
PCB_DRAW_PANEL_GAL* canvas() const;
|
||||
|
||||
const PCBNEW_SELECTION& selection() const;
|
||||
|
||||
PCBNEW_SELECTION& selection();
|
||||
|
||||
bool m_editModules;
|
||||
protected:
|
||||
bool m_isFootprintEditor;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -409,7 +409,7 @@ int PCBNEW_CONTROL::GridSetOrigin( const TOOL_EVENT& aEvent )
|
|||
}
|
||||
else
|
||||
{
|
||||
if( m_editModules && !getEditFrame<PCB_BASE_EDIT_FRAME>()->GetModel() )
|
||||
if( m_isFootprintEditor && !getEditFrame<PCB_BASE_EDIT_FRAME>()->GetModel() )
|
||||
return 0;
|
||||
|
||||
std::string tool = aEvent.GetCommandStr().get();
|
||||
|
@ -446,7 +446,7 @@ int PCBNEW_CONTROL::GridResetOrigin( const TOOL_EVENT& aEvent )
|
|||
|
||||
int PCBNEW_CONTROL::DeleteItemCursor( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
if( m_editModules && !m_frame->GetBoard()->GetFirstModule() )
|
||||
if( m_isFootprintEditor && !m_frame->GetBoard()->GetFirstModule() )
|
||||
return 0;
|
||||
|
||||
std::string tool = aEvent.GetCommandStr().get();
|
||||
|
@ -493,7 +493,7 @@ int PCBNEW_CONTROL::DeleteItemCursor( const TOOL_EVENT& aEvent )
|
|||
GENERAL_COLLECTOR collector;
|
||||
collector.m_Threshold = KiROUND( getView()->ToWorld( HITTEST_THRESHOLD_PIXELS ) );
|
||||
|
||||
if( m_editModules )
|
||||
if( m_isFootprintEditor )
|
||||
collector.Collect( board, GENERAL_COLLECTOR::ModuleItems, (wxPoint) aPos, guide );
|
||||
else
|
||||
collector.Collect( board, GENERAL_COLLECTOR::BoardLevelItems, (wxPoint) aPos, guide );
|
||||
|
@ -635,7 +635,7 @@ int PCBNEW_CONTROL::Paste( const TOOL_EVENT& aEvent )
|
|||
if( !frame()->IsType( FRAME_FOOTPRINT_EDITOR ) && !frame()->IsType( FRAME_PCB_EDITOR ) )
|
||||
return 0;
|
||||
|
||||
bool editModules = m_editModules || frame()->IsType( FRAME_FOOTPRINT_EDITOR );
|
||||
bool editModules = m_isFootprintEditor || frame()->IsType( FRAME_FOOTPRINT_EDITOR );
|
||||
|
||||
if( clipItem->Type() == PCB_T )
|
||||
{
|
||||
|
|
|
@ -534,8 +534,8 @@ bool SELECTION_TOOL::selectPoint( const VECTOR2I& aWhere, bool aOnDrag,
|
|||
ExitGroup();
|
||||
}
|
||||
|
||||
collector.Collect( board(), m_editModules ? GENERAL_COLLECTOR::ModuleItems
|
||||
: GENERAL_COLLECTOR::AllBoardItems,
|
||||
collector.Collect( board(), m_isFootprintEditor ? GENERAL_COLLECTOR::ModuleItems
|
||||
: GENERAL_COLLECTOR::AllBoardItems,
|
||||
(wxPoint) aWhere, guide );
|
||||
|
||||
// Remove unselectable items
|
||||
|
@ -769,7 +769,7 @@ bool SELECTION_TOOL::selectMultiple()
|
|||
|
||||
SELECTION_LOCK_FLAGS SELECTION_TOOL::CheckLock()
|
||||
{
|
||||
if( !m_locked || m_editModules )
|
||||
if( !m_locked || m_isFootprintEditor )
|
||||
return SELECTION_UNLOCKED;
|
||||
|
||||
bool containsLocked = false;
|
||||
|
@ -1632,8 +1632,8 @@ void SELECTION_TOOL::RebuildSelection()
|
|||
return SEARCH_RESULT::CONTINUE;
|
||||
};
|
||||
|
||||
board()->Visit( inspector, nullptr, m_editModules ? GENERAL_COLLECTOR::ModuleItems
|
||||
: GENERAL_COLLECTOR::AllBoardItems );
|
||||
board()->Visit( inspector, nullptr, m_isFootprintEditor ? GENERAL_COLLECTOR::ModuleItems
|
||||
: GENERAL_COLLECTOR::AllBoardItems );
|
||||
}
|
||||
|
||||
|
||||
|
@ -1860,7 +1860,7 @@ bool SELECTION_TOOL::Selectable( const BOARD_ITEM* aItem, bool checkVisibilityOn
|
|||
// If it is, and we are not editing the footprint, it should not be selectable
|
||||
bool zoneInFootprint = zone->GetParent() && zone->GetParent()->Type() == PCB_MODULE_T;
|
||||
|
||||
if( zoneInFootprint && !m_editModules && !checkVisibilityOnly )
|
||||
if( zoneInFootprint && !m_isFootprintEditor && !checkVisibilityOnly )
|
||||
return false;
|
||||
|
||||
// zones can exist on multiple layers!
|
||||
|
@ -1888,7 +1888,7 @@ bool SELECTION_TOOL::Selectable( const BOARD_ITEM* aItem, bool checkVisibilityOn
|
|||
case PCB_MODULE_T:
|
||||
{
|
||||
// In modedit, we do not want to select the module itself.
|
||||
if( m_editModules )
|
||||
if( m_isFootprintEditor )
|
||||
return false;
|
||||
|
||||
// Allow selection of footprints if some part of the footprint is visible.
|
||||
|
@ -1920,20 +1920,20 @@ bool SELECTION_TOOL::Selectable( const BOARD_ITEM* aItem, bool checkVisibilityOn
|
|||
// Multiple selection is only allowed in modedit mode. In pcbnew, you have to select
|
||||
// module subparts one by one, rather than with a drag selection. This is so you can
|
||||
// pick up items under an (unlocked) module without also moving the module's sub-parts.
|
||||
if( !m_editModules && !checkVisibilityOnly )
|
||||
if( !m_isFootprintEditor && !checkVisibilityOnly )
|
||||
{
|
||||
if( m_multiple && !settings->GetHighContrast() )
|
||||
return false;
|
||||
}
|
||||
|
||||
if( !m_editModules && !view()->IsVisible( aItem ) )
|
||||
if( !m_isFootprintEditor && !view()->IsVisible( aItem ) )
|
||||
return false;
|
||||
|
||||
break;
|
||||
|
||||
case PCB_FP_SHAPE_T:
|
||||
// Module edge selections are only allowed in modedit mode.
|
||||
if( !m_editModules && !checkVisibilityOnly )
|
||||
if( !m_isFootprintEditor && !checkVisibilityOnly )
|
||||
return false;
|
||||
|
||||
break;
|
||||
|
@ -1943,7 +1943,7 @@ bool SELECTION_TOOL::Selectable( const BOARD_ITEM* aItem, bool checkVisibilityOn
|
|||
// Multiple selection is only allowed in modedit mode. In pcbnew, you have to select
|
||||
// module subparts one by one, rather than with a drag selection. This is so you can
|
||||
// pick up items under an (unlocked) module without also moving the module's sub-parts.
|
||||
if( !m_editModules && !checkVisibilityOnly )
|
||||
if( !m_isFootprintEditor && !checkVisibilityOnly )
|
||||
{
|
||||
if( m_multiple )
|
||||
return false;
|
||||
|
|
|
@ -102,9 +102,9 @@ std::unique_ptr<ZONE_CONTAINER> ZONE_CREATE_HELPER::createNewZone( bool aKeepout
|
|||
|
||||
// The new zone is a ZONE_CONTAINER if created in the board editor
|
||||
// and a MODULE_ZONE_CONTAINER if created in the footprint editor
|
||||
wxASSERT( !m_tool.m_editModules || ( parent->Type() == PCB_MODULE_T ) );
|
||||
wxASSERT( !m_tool.m_isFootprintEditor || ( parent->Type() == PCB_MODULE_T ) );
|
||||
|
||||
std::unique_ptr<ZONE_CONTAINER> newZone = m_tool.m_editModules ?
|
||||
std::unique_ptr<ZONE_CONTAINER> newZone = m_tool.m_isFootprintEditor ?
|
||||
std::make_unique<MODULE_ZONE_CONTAINER>( parent ) :
|
||||
std::make_unique<ZONE_CONTAINER>( parent );
|
||||
|
||||
|
@ -235,8 +235,8 @@ void ZONE_CREATE_HELPER::commitZone( std::unique_ptr<ZONE_CONTAINER> aZone )
|
|||
|
||||
if( graphicPolygonsLayers.Contains( m_params.m_layer ) )
|
||||
{
|
||||
auto poly = m_tool.m_editModules ? new FP_SHAPE((MODULE *) parent )
|
||||
: new PCB_SHAPE();
|
||||
auto poly = m_tool.m_isFootprintEditor ? new FP_SHAPE((MODULE *) parent )
|
||||
: new PCB_SHAPE();
|
||||
poly->SetShape ( S_POLYGON );
|
||||
poly->SetLayer( m_params.m_layer );
|
||||
poly->SetPolyShape ( *aZone->Outline() );
|
||||
|
@ -249,8 +249,8 @@ void ZONE_CREATE_HELPER::commitZone( std::unique_ptr<ZONE_CONTAINER> aZone )
|
|||
|
||||
for( auto seg = outline->CIterateSegments( 0 ); seg; seg++ )
|
||||
{
|
||||
PCB_SHAPE* new_seg = m_tool.m_editModules ? new FP_SHAPE( (MODULE *) parent )
|
||||
: new PCB_SHAPE();
|
||||
auto* new_seg = m_tool.m_isFootprintEditor ? new FP_SHAPE((MODULE *) parent )
|
||||
: new PCB_SHAPE();
|
||||
new_seg->SetShape( S_SEGMENT );
|
||||
new_seg->SetLayer( m_params.m_layer );
|
||||
new_seg->SetStart( wxPoint( seg.Get().A.x, seg.Get().A.y ) );
|
||||
|
|
Loading…
Reference in New Issue