Browse Source

Add create-wire logic to labels.

Fixes https://gitlab.com/kicad/code/kicad/issues/11768
7.0
Jeff Young 3 years ago
parent
commit
29900cad34
  1. 26
      eeschema/tools/sch_move_tool.cpp

26
eeschema/tools/sch_move_tool.cpp

@ -1178,13 +1178,15 @@ void SCH_MOVE_TOOL::getConnectedDragItems( SCH_ITEM* aOriginalItem, const VECTOR
{
// Add a new wire between the symbol or junction and the selected item so
// the selected item can be dragged.
if( test->GetLayer() == LAYER_BUS_JUNCTION ||
aOriginalItem->GetLayer() == LAYER_BUS )
if( test->GetLayer() == LAYER_BUS_JUNCTION
|| aOriginalItem->GetLayer() == LAYER_BUS )
{
newWire = new SCH_LINE( aPoint, LAYER_BUS );
}
else
{
newWire = new SCH_LINE( aPoint, LAYER_WIRE );
}
newWire->SetFlags( IS_NEW );
m_frame->AddToScreen( newWire, m_frame->GetScreen() );
@ -1246,6 +1248,26 @@ void SCH_MOVE_TOOL::getConnectedDragItems( SCH_ITEM* aOriginalItem, const VECTOR
}
}
}
else if( test->IsConnected( aPoint ) && !newWire )
{
// Add a new wire between the label and the selected item so the selected item
// can be dragged.
if( test->GetLayer() == LAYER_BUS_JUNCTION
|| aOriginalItem->GetLayer() == LAYER_BUS )
{
newWire = new SCH_LINE( aPoint, LAYER_BUS );
}
else
{
newWire = new SCH_LINE( aPoint, LAYER_WIRE );
}
newWire->SetFlags( IS_NEW );
m_frame->AddToScreen( newWire, m_frame->GetScreen() );
newWire->SetFlags( SELECTED_BY_DRAG | STARTPOINT );
aList.push_back( newWire );
}
break;

Loading…
Cancel
Save