Adjust net highlighting after edits.
Fixes: lp:1800291 * https://bugs.launchpad.net/kicad/+bug/1800291
This commit is contained in:
parent
51bfec8ef9
commit
25209516a6
|
@ -434,6 +434,8 @@ SCH_JUNCTION* SCH_EDIT_FRAME::AddJunction( const wxPoint& aPos, bool aUndoAppend
|
||||||
|
|
||||||
if( aFinal )
|
if( aFinal )
|
||||||
{
|
{
|
||||||
|
m_toolManager->PostEvent( EVENTS::SelectedItemsModified );
|
||||||
|
|
||||||
TestDanglingEnds();
|
TestDanglingEnds();
|
||||||
OnModify();
|
OnModify();
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,7 @@ void SCH_EDIT_FRAME::ExecuteRemoteCommand( const char* cmdline )
|
||||||
|
|
||||||
SetStatusText( _( "Selected net: " ) + UnescapeString( m_SelectedNetName ) );
|
SetStatusText( _( "Selected net: " ) + UnescapeString( m_SelectedNetName ) );
|
||||||
|
|
||||||
GetToolManager()->RunAction( EE_ACTIONS::highlightNetSelection, true );
|
GetToolManager()->RunAction( EE_ACTIONS::updateNetHighlighting, true );
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -286,6 +286,6 @@ void SCH_EDIT_FRAME::DisplayCurrentSheet()
|
||||||
|
|
||||||
UpdateTitle();
|
UpdateTitle();
|
||||||
|
|
||||||
GetToolManager()->RunAction( EE_ACTIONS::highlightNetSelection, true );
|
GetToolManager()->RunAction( EE_ACTIONS::updateNetHighlighting, true );
|
||||||
HardRedraw(); // Ensure any item has its view updated, especially the worksheet items
|
HardRedraw(); // Ensure any item has its view updated, especially the worksheet items
|
||||||
}
|
}
|
||||||
|
|
|
@ -1270,7 +1270,7 @@ void SCH_EDIT_FRAME::AddItemToScreenAndUndoList( SCH_ITEM* aItem, bool aUndoAppe
|
||||||
TrimWire( *i, *j );
|
TrimWire( *i, *j );
|
||||||
|
|
||||||
if( screen->IsJunctionNeeded( *i, true ) )
|
if( screen->IsJunctionNeeded( *i, true ) )
|
||||||
AddJunction( *i, true );
|
AddJunction( *i, true, false );
|
||||||
}
|
}
|
||||||
|
|
||||||
TestDanglingEnds();
|
TestDanglingEnds();
|
||||||
|
|
|
@ -177,7 +177,7 @@ public:
|
||||||
// Net highlighting
|
// Net highlighting
|
||||||
static TOOL_ACTION highlightNet;
|
static TOOL_ACTION highlightNet;
|
||||||
static TOOL_ACTION clearHighlight;
|
static TOOL_ACTION clearHighlight;
|
||||||
static TOOL_ACTION highlightNetSelection;
|
static TOOL_ACTION updateNetHighlighting;
|
||||||
static TOOL_ACTION highlightNetCursor;
|
static TOOL_ACTION highlightNetCursor;
|
||||||
|
|
||||||
///> @copydoc COMMON_ACTIONS::TranslateLegacyId()
|
///> @copydoc COMMON_ACTIONS::TranslateLegacyId()
|
||||||
|
|
|
@ -67,7 +67,7 @@ TOOL_ACTION EE_ACTIONS::highlightNet( "eeschema.EditorControl.highlightNet",
|
||||||
TOOL_ACTION EE_ACTIONS::clearHighlight( "eeschema.EditorControl.clearHighlight",
|
TOOL_ACTION EE_ACTIONS::clearHighlight( "eeschema.EditorControl.clearHighlight",
|
||||||
AS_GLOBAL, 0, "", "" );
|
AS_GLOBAL, 0, "", "" );
|
||||||
|
|
||||||
TOOL_ACTION EE_ACTIONS::highlightNetSelection( "eeschema.EditorControl.highlightNetSelection",
|
TOOL_ACTION EE_ACTIONS::updateNetHighlighting( "eeschema.EditorControl.updateNetHighlighting",
|
||||||
AS_GLOBAL, 0, "", "" );
|
AS_GLOBAL, 0, "", "" );
|
||||||
|
|
||||||
TOOL_ACTION EE_ACTIONS::highlightNetCursor( "eeschema.EditorControl.highlightNetCursor",
|
TOOL_ACTION EE_ACTIONS::highlightNetCursor( "eeschema.EditorControl.highlightNetCursor",
|
||||||
|
@ -334,7 +334,7 @@ static bool highlightNet( TOOL_MANAGER* aToolMgr, const VECTOR2D& aPosition )
|
||||||
|
|
||||||
editFrame->SetSelectedNetName( netName );
|
editFrame->SetSelectedNetName( netName );
|
||||||
TOOL_EVENT dummy;
|
TOOL_EVENT dummy;
|
||||||
editorControl->HighlightNetSelection( dummy );
|
editorControl->UpdateNetHighlighting( dummy );
|
||||||
|
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
@ -359,7 +359,7 @@ int SCH_EDITOR_CONTROL::ClearHighlight( const TOOL_EVENT& aEvent )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int SCH_EDITOR_CONTROL::HighlightNetSelection( const TOOL_EVENT& aEvent )
|
int SCH_EDITOR_CONTROL::UpdateNetHighlighting( const TOOL_EVENT& aEvent )
|
||||||
{
|
{
|
||||||
SCH_SCREEN* screen = g_CurrentSheet->LastScreen();
|
SCH_SCREEN* screen = g_CurrentSheet->LastScreen();
|
||||||
std::vector<EDA_ITEM*> itemsToRedraw;
|
std::vector<EDA_ITEM*> itemsToRedraw;
|
||||||
|
@ -710,7 +710,8 @@ void SCH_EDITOR_CONTROL::setTransitions()
|
||||||
Go( &SCH_EDITOR_CONTROL::HighlightNet, EE_ACTIONS::highlightNet.MakeEvent() );
|
Go( &SCH_EDITOR_CONTROL::HighlightNet, EE_ACTIONS::highlightNet.MakeEvent() );
|
||||||
Go( &SCH_EDITOR_CONTROL::ClearHighlight, EE_ACTIONS::clearHighlight.MakeEvent() );
|
Go( &SCH_EDITOR_CONTROL::ClearHighlight, EE_ACTIONS::clearHighlight.MakeEvent() );
|
||||||
Go( &SCH_EDITOR_CONTROL::HighlightNetCursor, EE_ACTIONS::highlightNetCursor.MakeEvent() );
|
Go( &SCH_EDITOR_CONTROL::HighlightNetCursor, EE_ACTIONS::highlightNetCursor.MakeEvent() );
|
||||||
Go( &SCH_EDITOR_CONTROL::HighlightNetSelection, EE_ACTIONS::highlightNetSelection.MakeEvent() );
|
Go( &SCH_EDITOR_CONTROL::UpdateNetHighlighting, EVENTS::SelectedItemsModified );
|
||||||
|
Go( &SCH_EDITOR_CONTROL::UpdateNetHighlighting, EE_ACTIONS::updateNetHighlighting.MakeEvent() );
|
||||||
|
|
||||||
Go( &SCH_EDITOR_CONTROL::Cut, EE_ACTIONS::cut.MakeEvent() );
|
Go( &SCH_EDITOR_CONTROL::Cut, EE_ACTIONS::cut.MakeEvent() );
|
||||||
Go( &SCH_EDITOR_CONTROL::Copy, EE_ACTIONS::copy.MakeEvent() );
|
Go( &SCH_EDITOR_CONTROL::Copy, EE_ACTIONS::copy.MakeEvent() );
|
||||||
|
|
|
@ -63,8 +63,8 @@ public:
|
||||||
///> Removes any net highlighting
|
///> Removes any net highlighting
|
||||||
int ClearHighlight( const TOOL_EVENT& aEvent );
|
int ClearHighlight( const TOOL_EVENT& aEvent );
|
||||||
|
|
||||||
///> Highlights frame's SelectedNetName.
|
///> Updates net highlighting after an edit
|
||||||
int HighlightNetSelection( const TOOL_EVENT& aEvent );
|
int UpdateNetHighlighting( const TOOL_EVENT& aEvent );
|
||||||
|
|
||||||
///> Launches a tool to highlight nets.
|
///> Launches a tool to highlight nets.
|
||||||
int HighlightNetCursor( const TOOL_EVENT& aEvent );
|
int HighlightNetCursor( const TOOL_EVENT& aEvent );
|
||||||
|
|
|
@ -566,7 +566,7 @@ void SCH_MOVE_TOOL::addJunctionsIfNeeded( SELECTION& aSelection )
|
||||||
for( auto point : pts )
|
for( auto point : pts )
|
||||||
{
|
{
|
||||||
if( m_frame->GetScreen()->IsJunctionNeeded( point, true ) )
|
if( m_frame->GetScreen()->IsJunctionNeeded( point, true ) )
|
||||||
m_frame->AddJunction( point, true );
|
m_frame->AddJunction( point, true, false );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -202,10 +202,6 @@ bool SCH_WIRE_BUS_TOOL::Init()
|
||||||
{
|
{
|
||||||
EE_TOOL_BASE::Init();
|
EE_TOOL_BASE::Init();
|
||||||
|
|
||||||
auto activeTool = [ this ] ( const SELECTION& aSel ) {
|
|
||||||
return ( m_frame->GetToolId() != ID_NO_TOOL_SELECTED );
|
|
||||||
};
|
|
||||||
|
|
||||||
auto wireOrBusTool = [ this ] ( const SELECTION& aSel ) {
|
auto wireOrBusTool = [ this ] ( const SELECTION& aSel ) {
|
||||||
return ( m_frame->GetToolId() == ID_WIRE_BUTT || m_frame->GetToolId() == ID_BUS_BUTT );
|
return ( m_frame->GetToolId() == ID_WIRE_BUTT || m_frame->GetToolId() == ID_BUS_BUTT );
|
||||||
};
|
};
|
||||||
|
@ -977,6 +973,7 @@ void SCH_WIRE_BUS_TOOL::finishSegments()
|
||||||
m_busUnfold = {};
|
m_busUnfold = {};
|
||||||
|
|
||||||
m_frame->TestDanglingEnds();
|
m_frame->TestDanglingEnds();
|
||||||
|
m_toolMgr->PostEvent( EVENTS::SelectedItemsModified );
|
||||||
|
|
||||||
m_frame->OnModify();
|
m_frame->OnModify();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue