Don't dirty connectivity when moving non-reference SCH_FIELD.
(cherry picked from commit 2e9ed67e05
)
This commit is contained in:
parent
b24ee1c44f
commit
a292bf7c83
|
@ -2317,20 +2317,19 @@ void SCH_PAINTER::draw( const SCH_SYMBOL* aSymbol, int aLayer )
|
||||||
|
|
||||||
if( aSymbol->GetDNP() )
|
if( aSymbol->GetDNP() )
|
||||||
{
|
{
|
||||||
|
COLOR_SETTINGS* colors = Pgm().GetSettingsManager().GetColorSettings();
|
||||||
BOX2I bbox = aSymbol->GetBodyAndPinsBoundingBox();
|
BOX2I bbox = aSymbol->GetBodyAndPinsBoundingBox();
|
||||||
|
VECTOR2I pt1 = bbox.GetOrigin();
|
||||||
|
VECTOR2I pt2 = bbox.GetEnd();
|
||||||
|
|
||||||
m_gal->SetIsStroke( true );
|
m_gal->SetIsStroke( true );
|
||||||
m_gal->SetIsFill( true );
|
m_gal->SetIsFill( true );
|
||||||
COLOR_SETTINGS* colors = Pgm().GetSettingsManager().GetColorSettings();
|
|
||||||
|
|
||||||
m_gal->SetStrokeColor( colors->GetColor( LAYER_ERC_ERR ) );
|
m_gal->SetStrokeColor( colors->GetColor( LAYER_ERC_ERR ) );
|
||||||
m_gal->SetFillColor( colors->GetColor( LAYER_ERC_ERR ) );
|
m_gal->SetFillColor( colors->GetColor( LAYER_ERC_ERR ) );
|
||||||
|
|
||||||
m_gal->DrawSegment( bbox.GetOrigin(), bbox.GetEnd(),
|
m_gal->DrawSegment( pt1, pt2, 3.0 * schIUScale.MilsToIU( DEFAULT_LINE_WIDTH_MILS ) );
|
||||||
3.0 * schIUScale.MilsToIU( DEFAULT_LINE_WIDTH_MILS ) );
|
std::swap( pt1.x, pt2.x );
|
||||||
m_gal->DrawSegment( bbox.GetOrigin() + VECTOR2I( bbox.GetWidth(), 0 ),
|
m_gal->DrawSegment( pt1, pt2, 3.0 * schIUScale.MilsToIU( DEFAULT_LINE_WIDTH_MILS ) );
|
||||||
bbox.GetOrigin() + VECTOR2I( 0, bbox.GetHeight() ),
|
|
||||||
3.0 * schIUScale.MilsToIU( DEFAULT_LINE_WIDTH_MILS ) );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2398,6 +2397,16 @@ void SCH_PAINTER::draw( const SCH_FIELD* aField, int aLayer, bool aDimmed )
|
||||||
bbox.Offset( label->GetSchematicTextOffset( &m_schSettings ) );
|
bbox.Offset( label->GetSchematicTextOffset( &m_schSettings ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( m_schSettings.GetDrawBoundingBoxes() )
|
||||||
|
{
|
||||||
|
m_gal->SetIsFill( false );
|
||||||
|
m_gal->SetIsStroke( true );
|
||||||
|
m_gal->SetStrokeColor( aField->IsSelected() ? COLOR4D( 1.0, 0.2, 0.2, 1 )
|
||||||
|
: COLOR4D( 0.2, 0.2, 0.2, 1 ) );
|
||||||
|
m_gal->SetLineWidth( schIUScale.MilsToIU( 3 ) );
|
||||||
|
m_gal->DrawRectangle( bbox.GetOrigin(), bbox.GetEnd() );
|
||||||
|
}
|
||||||
|
|
||||||
m_gal->SetStrokeColor( color );
|
m_gal->SetStrokeColor( color );
|
||||||
m_gal->SetFillColor( color );
|
m_gal->SetFillColor( color );
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2019 CERN
|
* Copyright (C) 2019 CERN
|
||||||
* Copyright (C) 2019-2022 KiCad Developers, see AUTHORS.txt for contributors.
|
* Copyright (C) 2019-2023 KiCad Developers, see AUTHORS.txt for contributors.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
@ -158,7 +158,14 @@ protected:
|
||||||
|
|
||||||
if( editFrame )
|
if( editFrame )
|
||||||
{
|
{
|
||||||
if( itemType == SCH_PIN_T || itemType == SCH_FIELD_T || itemType == SCH_SHEET_PIN_T )
|
if( itemType == SCH_FIELD_T )
|
||||||
|
{
|
||||||
|
editFrame->SaveCopyInUndoList( editFrame->GetScreen(),
|
||||||
|
static_cast<SCH_ITEM*>( aItem->GetParent() ),
|
||||||
|
UNDO_REDO::CHANGED, aAppend,
|
||||||
|
false );
|
||||||
|
}
|
||||||
|
else if( itemType == SCH_PIN_T || itemType == SCH_SHEET_PIN_T )
|
||||||
{
|
{
|
||||||
editFrame->SaveCopyInUndoList( editFrame->GetScreen(),
|
editFrame->SaveCopyInUndoList( editFrame->GetScreen(),
|
||||||
static_cast<SCH_ITEM*>( aItem->GetParent() ),
|
static_cast<SCH_ITEM*>( aItem->GetParent() ),
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2019 CERN
|
* Copyright (C) 2019 CERN
|
||||||
* Copyright (C) 2019-2022 KiCad Developers, see AUTHORS.txt for contributors.
|
* Copyright (C) 2019-2023 KiCad Developers, see AUTHORS.txt for contributors.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
@ -1361,11 +1361,15 @@ int SCH_EDIT_TOOL::DeleteItemCursor( const TOOL_EVENT& aEvent )
|
||||||
|
|
||||||
void SCH_EDIT_TOOL::editFieldText( SCH_FIELD* aField )
|
void SCH_EDIT_TOOL::editFieldText( SCH_FIELD* aField )
|
||||||
{
|
{
|
||||||
|
KICAD_T parentType = aField->GetParent() ? aField->GetParent()->Type() : SCHEMATIC_T;
|
||||||
|
|
||||||
// Save old symbol in undo list if not already in edit, or moving.
|
// Save old symbol in undo list if not already in edit, or moving.
|
||||||
if( aField->GetEditFlags() == 0 ) // i.e. not edited, or moved
|
if( aField->GetEditFlags() == 0 ) // i.e. not edited, or moved
|
||||||
saveCopyInUndoList( aField, UNDO_REDO::CHANGED );
|
saveCopyInUndoList( aField, UNDO_REDO::CHANGED );
|
||||||
|
|
||||||
KICAD_T parentType = aField->GetParent() ? aField->GetParent()->Type() : SCHEMATIC_T;
|
if( parentType == SCH_SYMBOL_T && aField->GetId() == REFERENCE_FIELD )
|
||||||
|
static_cast<SCH_ITEM*>( aField->GetParent() )->SetConnectivityDirty();
|
||||||
|
|
||||||
wxString caption;
|
wxString caption;
|
||||||
|
|
||||||
// Use title caps for mandatory fields. "Edit Sheet name Field" looks dorky.
|
// Use title caps for mandatory fields. "Edit Sheet name Field" looks dorky.
|
||||||
|
|
Loading…
Reference in New Issue