mirror of
https://gitlab.com/kicad/code/kicad.git
synced 2025-04-20 16:21:41 +00:00
Bug fixes in new dangling symbol drawing code.
This commit is contained in:
parent
51eac3ba04
commit
c4336de868
@ -202,7 +202,13 @@ void PANEL_EESCHEMA_COLOR_SETTINGS::createSwatches()
|
||||
std::vector<SCH_LAYER_ID> layers;
|
||||
|
||||
for( SCH_LAYER_ID i = SCH_LAYER_ID_START; i < SCH_LAYER_ID_END; ++i )
|
||||
{
|
||||
if( g_excludedLayers.count( i ) )
|
||||
continue;
|
||||
|
||||
layers.push_back( i );
|
||||
}
|
||||
|
||||
|
||||
std::sort( layers.begin(), layers.end(),
|
||||
[]( SCH_LAYER_ID a, SCH_LAYER_ID b )
|
||||
|
@ -759,7 +759,8 @@ void SCH_PAINTER::draw( LIB_PIN *aPin, int aLayer )
|
||||
return;
|
||||
|
||||
bool drawingShadows = aLayer == LAYER_SELECTION_SHADOWS;
|
||||
bool dangling = m_schSettings.m_IsSymbolEditor || aPin->HasFlag( IS_DANGLING );
|
||||
bool drawingDangling = aLayer == LAYER_DANGLING;
|
||||
bool isDangling = m_schSettings.m_IsSymbolEditor || aPin->HasFlag( IS_DANGLING );
|
||||
|
||||
if( drawingShadows && !aPin->IsSelected() )
|
||||
return;
|
||||
@ -775,16 +776,16 @@ void SCH_PAINTER::draw( LIB_PIN *aPin, int aLayer )
|
||||
}
|
||||
else
|
||||
{
|
||||
if( aLayer == LAYER_DANGLING && dangling && aPin->IsPowerConnection() )
|
||||
if( drawingDangling && isDangling && aPin->IsPowerConnection() )
|
||||
drawPinDanglingSymbol( pos, color, drawingShadows );
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if( aLayer == LAYER_DANGLING )
|
||||
if( drawingDangling )
|
||||
{
|
||||
if( dangling )
|
||||
if( isDangling )
|
||||
drawPinDanglingSymbol( pos, color, drawingShadows );
|
||||
|
||||
return;
|
||||
@ -1019,7 +1020,7 @@ void SCH_PAINTER::draw( LIB_PIN *aPin, int aLayer )
|
||||
float aboveOffset = Mils2iu( PIN_TEXT_MARGIN ) + ( thickness[ABOVE] + penWidth ) / 2.0;
|
||||
float belowOffset = Mils2iu( PIN_TEXT_MARGIN ) + ( thickness[BELOW] + penWidth ) / 2.0;
|
||||
|
||||
if( dangling )
|
||||
if( isDangling )
|
||||
outsideOffset += TARGET_PIN_RADIUS / 2.0;
|
||||
|
||||
if( drawingShadows )
|
||||
@ -1243,6 +1244,7 @@ void SCH_PAINTER::draw( const SCH_JUNCTION *aJct, int aLayer )
|
||||
void SCH_PAINTER::draw( const SCH_LINE *aLine, int aLayer )
|
||||
{
|
||||
bool drawingShadows = aLayer == LAYER_SELECTION_SHADOWS;
|
||||
bool drawingDangling = aLayer == LAYER_DANGLING;
|
||||
|
||||
if( drawingShadows && !aLine->IsSelected() )
|
||||
return;
|
||||
@ -1251,7 +1253,7 @@ void SCH_PAINTER::draw( const SCH_LINE *aLine, int aLayer )
|
||||
float width = getLineWidth( aLine, drawingShadows );
|
||||
PLOT_DASH_TYPE lineStyle = aLine->GetEffectiveLineStyle();
|
||||
|
||||
if( aLayer == LAYER_DANGLING )
|
||||
if( drawingDangling )
|
||||
{
|
||||
if( aLine->IsStartDangling() && aLine->IsWire() )
|
||||
{
|
||||
@ -1327,6 +1329,7 @@ void SCH_PAINTER::draw( const SCH_LINE *aLine, int aLayer )
|
||||
void SCH_PAINTER::draw( const SCH_TEXT *aText, int aLayer )
|
||||
{
|
||||
bool drawingShadows = aLayer == LAYER_SELECTION_SHADOWS;
|
||||
bool drawingDangling = aLayer == LAYER_DANGLING;
|
||||
|
||||
if( drawingShadows && !aText->IsSelected() )
|
||||
return;
|
||||
@ -1361,7 +1364,7 @@ void SCH_PAINTER::draw( const SCH_TEXT *aText, int aLayer )
|
||||
return;
|
||||
}
|
||||
|
||||
if( aLayer == LAYER_DANGLING )
|
||||
if( drawingDangling )
|
||||
{
|
||||
if( aText->IsDangling() )
|
||||
{
|
||||
@ -1789,6 +1792,7 @@ void SCH_PAINTER::draw( const SCH_BUS_ENTRY_BASE *aEntry, int aLayer )
|
||||
SCH_LAYER_ID layer = aEntry->Type() == SCH_BUS_WIRE_ENTRY_T ? LAYER_WIRE : LAYER_BUS;
|
||||
SCH_LINE line( wxPoint(), layer );
|
||||
bool drawingShadows = aLayer == LAYER_SELECTION_SHADOWS;
|
||||
bool drawingDangling = aLayer == LAYER_DANGLING;
|
||||
|
||||
if( drawingShadows && !aEntry->IsSelected() )
|
||||
return;
|
||||
@ -1808,12 +1812,12 @@ void SCH_PAINTER::draw( const SCH_BUS_ENTRY_BASE *aEntry, int aLayer )
|
||||
if( aEntry->Type() == SCH_BUS_BUS_ENTRY_T )
|
||||
color = getRenderColor( aEntry, LAYER_BUS, drawingShadows );
|
||||
|
||||
if( aLayer == LAYER_DANGLING )
|
||||
if( drawingDangling )
|
||||
{
|
||||
m_gal->SetIsFill( false );
|
||||
m_gal->SetIsStroke( true );
|
||||
m_gal->SetStrokeColor( color.Brightened( 0.3 ) );
|
||||
m_gal->SetLineWidth( drawingShadows ? getShadowWidth() : 1.0F );
|
||||
m_gal->SetLineWidth( m_schSettings.GetDanglineSymbolThickness() );
|
||||
|
||||
if( aEntry->IsDanglingStart() )
|
||||
{
|
||||
|
@ -919,12 +919,15 @@ const EDA_RECT SCH_LABEL::GetBoundingBox() const
|
||||
}
|
||||
|
||||
|
||||
void SCH_LABEL::ViewGetLayers( int aLayers[], int& aCount ) const
|
||||
void SCH_TEXT::ViewGetLayers( int aLayers[], int& aCount ) const
|
||||
{
|
||||
aCount = 3;
|
||||
aLayers[0] = LAYER_DANGLING;
|
||||
aLayers[1] = m_layer;
|
||||
aLayers[2] = LAYER_SELECTION_SHADOWS;
|
||||
aCount = 0;
|
||||
|
||||
if( m_layer != LAYER_NOTES )
|
||||
aLayers[ aCount++ ] = LAYER_DANGLING;
|
||||
|
||||
aLayers[ aCount++ ] = m_layer;
|
||||
aLayers[ aCount++ ] = LAYER_SELECTION_SHADOWS;
|
||||
}
|
||||
|
||||
|
||||
|
@ -232,6 +232,8 @@ public:
|
||||
|
||||
std::vector<wxPoint> GetConnectionPoints() const override;
|
||||
|
||||
void ViewGetLayers( int aLayers[], int& aCount ) const override;
|
||||
|
||||
wxString GetSelectMenuText( EDA_UNITS aUnits ) const override;
|
||||
|
||||
BITMAPS GetMenuImage() const override;
|
||||
@ -308,8 +310,6 @@ public:
|
||||
( aItem->GetLayer() == LAYER_WIRE || aItem->GetLayer() == LAYER_BUS );
|
||||
}
|
||||
|
||||
void ViewGetLayers( int aLayers[], int& aCount ) const override;
|
||||
|
||||
wxString GetSelectMenuText( EDA_UNITS aUnits ) const override;
|
||||
|
||||
BITMAPS GetMenuImage() const override;
|
||||
|
Loading…
Reference in New Issue
Block a user