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;
|
std::vector<SCH_LAYER_ID> layers;
|
||||||
|
|
||||||
for( SCH_LAYER_ID i = SCH_LAYER_ID_START; i < SCH_LAYER_ID_END; ++i )
|
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 );
|
layers.push_back( i );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
std::sort( layers.begin(), layers.end(),
|
std::sort( layers.begin(), layers.end(),
|
||||||
[]( SCH_LAYER_ID a, SCH_LAYER_ID b )
|
[]( SCH_LAYER_ID a, SCH_LAYER_ID b )
|
||||||
|
|
|
@ -759,7 +759,8 @@ void SCH_PAINTER::draw( LIB_PIN *aPin, int aLayer )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
bool drawingShadows = aLayer == LAYER_SELECTION_SHADOWS;
|
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() )
|
if( drawingShadows && !aPin->IsSelected() )
|
||||||
return;
|
return;
|
||||||
|
@ -775,16 +776,16 @@ void SCH_PAINTER::draw( LIB_PIN *aPin, int aLayer )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( aLayer == LAYER_DANGLING && dangling && aPin->IsPowerConnection() )
|
if( drawingDangling && isDangling && aPin->IsPowerConnection() )
|
||||||
drawPinDanglingSymbol( pos, color, drawingShadows );
|
drawPinDanglingSymbol( pos, color, drawingShadows );
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( aLayer == LAYER_DANGLING )
|
if( drawingDangling )
|
||||||
{
|
{
|
||||||
if( dangling )
|
if( isDangling )
|
||||||
drawPinDanglingSymbol( pos, color, drawingShadows );
|
drawPinDanglingSymbol( pos, color, drawingShadows );
|
||||||
|
|
||||||
return;
|
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 aboveOffset = Mils2iu( PIN_TEXT_MARGIN ) + ( thickness[ABOVE] + penWidth ) / 2.0;
|
||||||
float belowOffset = Mils2iu( PIN_TEXT_MARGIN ) + ( thickness[BELOW] + penWidth ) / 2.0;
|
float belowOffset = Mils2iu( PIN_TEXT_MARGIN ) + ( thickness[BELOW] + penWidth ) / 2.0;
|
||||||
|
|
||||||
if( dangling )
|
if( isDangling )
|
||||||
outsideOffset += TARGET_PIN_RADIUS / 2.0;
|
outsideOffset += TARGET_PIN_RADIUS / 2.0;
|
||||||
|
|
||||||
if( drawingShadows )
|
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 )
|
void SCH_PAINTER::draw( const SCH_LINE *aLine, int aLayer )
|
||||||
{
|
{
|
||||||
bool drawingShadows = aLayer == LAYER_SELECTION_SHADOWS;
|
bool drawingShadows = aLayer == LAYER_SELECTION_SHADOWS;
|
||||||
|
bool drawingDangling = aLayer == LAYER_DANGLING;
|
||||||
|
|
||||||
if( drawingShadows && !aLine->IsSelected() )
|
if( drawingShadows && !aLine->IsSelected() )
|
||||||
return;
|
return;
|
||||||
|
@ -1251,7 +1253,7 @@ void SCH_PAINTER::draw( const SCH_LINE *aLine, int aLayer )
|
||||||
float width = getLineWidth( aLine, drawingShadows );
|
float width = getLineWidth( aLine, drawingShadows );
|
||||||
PLOT_DASH_TYPE lineStyle = aLine->GetEffectiveLineStyle();
|
PLOT_DASH_TYPE lineStyle = aLine->GetEffectiveLineStyle();
|
||||||
|
|
||||||
if( aLayer == LAYER_DANGLING )
|
if( drawingDangling )
|
||||||
{
|
{
|
||||||
if( aLine->IsStartDangling() && aLine->IsWire() )
|
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 )
|
void SCH_PAINTER::draw( const SCH_TEXT *aText, int aLayer )
|
||||||
{
|
{
|
||||||
bool drawingShadows = aLayer == LAYER_SELECTION_SHADOWS;
|
bool drawingShadows = aLayer == LAYER_SELECTION_SHADOWS;
|
||||||
|
bool drawingDangling = aLayer == LAYER_DANGLING;
|
||||||
|
|
||||||
if( drawingShadows && !aText->IsSelected() )
|
if( drawingShadows && !aText->IsSelected() )
|
||||||
return;
|
return;
|
||||||
|
@ -1361,7 +1364,7 @@ void SCH_PAINTER::draw( const SCH_TEXT *aText, int aLayer )
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( aLayer == LAYER_DANGLING )
|
if( drawingDangling )
|
||||||
{
|
{
|
||||||
if( aText->IsDangling() )
|
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_LAYER_ID layer = aEntry->Type() == SCH_BUS_WIRE_ENTRY_T ? LAYER_WIRE : LAYER_BUS;
|
||||||
SCH_LINE line( wxPoint(), layer );
|
SCH_LINE line( wxPoint(), layer );
|
||||||
bool drawingShadows = aLayer == LAYER_SELECTION_SHADOWS;
|
bool drawingShadows = aLayer == LAYER_SELECTION_SHADOWS;
|
||||||
|
bool drawingDangling = aLayer == LAYER_DANGLING;
|
||||||
|
|
||||||
if( drawingShadows && !aEntry->IsSelected() )
|
if( drawingShadows && !aEntry->IsSelected() )
|
||||||
return;
|
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 )
|
if( aEntry->Type() == SCH_BUS_BUS_ENTRY_T )
|
||||||
color = getRenderColor( aEntry, LAYER_BUS, drawingShadows );
|
color = getRenderColor( aEntry, LAYER_BUS, drawingShadows );
|
||||||
|
|
||||||
if( aLayer == LAYER_DANGLING )
|
if( drawingDangling )
|
||||||
{
|
{
|
||||||
m_gal->SetIsFill( false );
|
m_gal->SetIsFill( false );
|
||||||
m_gal->SetIsStroke( true );
|
m_gal->SetIsStroke( true );
|
||||||
m_gal->SetStrokeColor( color.Brightened( 0.3 ) );
|
m_gal->SetStrokeColor( color.Brightened( 0.3 ) );
|
||||||
m_gal->SetLineWidth( drawingShadows ? getShadowWidth() : 1.0F );
|
m_gal->SetLineWidth( m_schSettings.GetDanglineSymbolThickness() );
|
||||||
|
|
||||||
if( aEntry->IsDanglingStart() )
|
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;
|
aCount = 0;
|
||||||
aLayers[0] = LAYER_DANGLING;
|
|
||||||
aLayers[1] = m_layer;
|
if( m_layer != LAYER_NOTES )
|
||||||
aLayers[2] = LAYER_SELECTION_SHADOWS;
|
aLayers[ aCount++ ] = LAYER_DANGLING;
|
||||||
|
|
||||||
|
aLayers[ aCount++ ] = m_layer;
|
||||||
|
aLayers[ aCount++ ] = LAYER_SELECTION_SHADOWS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -232,6 +232,8 @@ public:
|
||||||
|
|
||||||
std::vector<wxPoint> GetConnectionPoints() const override;
|
std::vector<wxPoint> GetConnectionPoints() const override;
|
||||||
|
|
||||||
|
void ViewGetLayers( int aLayers[], int& aCount ) const override;
|
||||||
|
|
||||||
wxString GetSelectMenuText( EDA_UNITS aUnits ) const override;
|
wxString GetSelectMenuText( EDA_UNITS aUnits ) const override;
|
||||||
|
|
||||||
BITMAPS GetMenuImage() const override;
|
BITMAPS GetMenuImage() const override;
|
||||||
|
@ -308,8 +310,6 @@ public:
|
||||||
( aItem->GetLayer() == LAYER_WIRE || aItem->GetLayer() == LAYER_BUS );
|
( aItem->GetLayer() == LAYER_WIRE || aItem->GetLayer() == LAYER_BUS );
|
||||||
}
|
}
|
||||||
|
|
||||||
void ViewGetLayers( int aLayers[], int& aCount ) const override;
|
|
||||||
|
|
||||||
wxString GetSelectMenuText( EDA_UNITS aUnits ) const override;
|
wxString GetSelectMenuText( EDA_UNITS aUnits ) const override;
|
||||||
|
|
||||||
BITMAPS GetMenuImage() const override;
|
BITMAPS GetMenuImage() const override;
|
||||||
|
|
Loading…
Reference in New Issue