Schematic Lines: add marker for unselected, connected line ends
Smaller, subtler version of the marking used for unconnected line ends. Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13126
This commit is contained in:
parent
5ce0fe5998
commit
fe01c65794
|
@ -29,6 +29,9 @@
|
||||||
///< The size of the rectangle indicating an unconnected wire or label
|
///< The size of the rectangle indicating an unconnected wire or label
|
||||||
#define DANGLING_SYMBOL_SIZE 12
|
#define DANGLING_SYMBOL_SIZE 12
|
||||||
|
|
||||||
|
///< The size of the rectangle indicating a connected, unselected wire end
|
||||||
|
#define UNSELECTED_END_SIZE 4
|
||||||
|
|
||||||
///< The default pin len value when creating pins(can be changed in preference menu)
|
///< The default pin len value when creating pins(can be changed in preference menu)
|
||||||
#define DEFAULT_PIN_LENGTH 100
|
#define DEFAULT_PIN_LENGTH 100
|
||||||
|
|
||||||
|
|
|
@ -1624,10 +1624,15 @@ void SCH_PAINTER::draw( const LIB_PIN *aPin, int aLayer, bool aDimmed )
|
||||||
// Draw the target (an open square) for a wire or label which has no connection or is
|
// Draw the target (an open square) for a wire or label which has no connection or is
|
||||||
// being moved.
|
// being moved.
|
||||||
void SCH_PAINTER::drawDanglingSymbol( const VECTOR2I& aPos, const COLOR4D& aColor, int aWidth,
|
void SCH_PAINTER::drawDanglingSymbol( const VECTOR2I& aPos, const COLOR4D& aColor, int aWidth,
|
||||||
bool aDrawingShadows, bool aBrightened )
|
bool aDangling, bool aDrawingShadows, bool aBrightened )
|
||||||
{
|
{
|
||||||
VECTOR2I radius( aWidth + schIUScale.MilsToIU( DANGLING_SYMBOL_SIZE / 2 ),
|
int size = aDangling ? DANGLING_SYMBOL_SIZE : UNSELECTED_END_SIZE;
|
||||||
aWidth + schIUScale.MilsToIU( DANGLING_SYMBOL_SIZE / 2 ) );
|
|
||||||
|
if( !aDangling )
|
||||||
|
aWidth /= 2;
|
||||||
|
|
||||||
|
VECTOR2I radius( aWidth + schIUScale.MilsToIU( size / 2 ),
|
||||||
|
aWidth + schIUScale.MilsToIU( size / 2 ) );
|
||||||
|
|
||||||
// Dangling symbols must be drawn in a slightly different colour so they can be seen when
|
// Dangling symbols must be drawn in a slightly different colour so they can be seen when
|
||||||
// they overlap with a junction dot.
|
// they overlap with a junction dot.
|
||||||
|
@ -1684,24 +1689,26 @@ void SCH_PAINTER::draw( const SCH_LINE *aLine, int aLayer )
|
||||||
if( drawingDangling || drawingShadows )
|
if( drawingDangling || drawingShadows )
|
||||||
{
|
{
|
||||||
if( ( aLine->IsWire() && aLine->IsStartDangling() )
|
if( ( aLine->IsWire() && aLine->IsStartDangling() )
|
||||||
|| ( aLine->IsGraphicLine() && aLine->IsSelected() && !aLine->IsNew()
|
|| ( drawingShadows && aLine->IsSelected() && !aLine->IsNew()
|
||||||
&& !aLine->HasFlag( STARTPOINT ) ) )
|
&& !aLine->HasFlag( STARTPOINT ) ) )
|
||||||
{
|
{
|
||||||
COLOR4D danglingColor =
|
COLOR4D danglingColor =
|
||||||
( drawingShadows && !aLine->HasFlag( STARTPOINT ) ) ? color.Inverted() : color;
|
( drawingShadows && !aLine->HasFlag( STARTPOINT ) ) ? color.Inverted() : color;
|
||||||
drawDanglingSymbol( aLine->GetStartPoint(), danglingColor,
|
drawDanglingSymbol( aLine->GetStartPoint(), danglingColor,
|
||||||
getLineWidth( aLine, drawingShadows ), drawingShadows,
|
getLineWidth( aLine, drawingShadows ),
|
||||||
|
aLine->IsWire() && aLine->IsStartDangling(), drawingShadows,
|
||||||
aLine->IsBrightened() );
|
aLine->IsBrightened() );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ( aLine->IsWire() && aLine->IsEndDangling() )
|
if( ( aLine->IsWire() && aLine->IsEndDangling() )
|
||||||
|| ( aLine->IsGraphicLine() && aLine->IsSelected() && !aLine->IsNew()
|
|| ( drawingShadows && aLine->IsSelected() && !aLine->IsNew()
|
||||||
&& !aLine->HasFlag( ENDPOINT ) ) )
|
&& !aLine->HasFlag( ENDPOINT ) ) )
|
||||||
{
|
{
|
||||||
COLOR4D danglingColor =
|
COLOR4D danglingColor =
|
||||||
( drawingShadows && !aLine->HasFlag( ENDPOINT ) ) ? color.Inverted() : color;
|
( drawingShadows && !aLine->HasFlag( ENDPOINT ) ) ? color.Inverted() : color;
|
||||||
drawDanglingSymbol( aLine->GetEndPoint(), danglingColor,
|
drawDanglingSymbol( aLine->GetEndPoint(), danglingColor,
|
||||||
getLineWidth( aLine, drawingShadows ), drawingShadows,
|
getLineWidth( aLine, drawingShadows ),
|
||||||
|
aLine->IsWire() && aLine->IsEndDangling(), drawingShadows,
|
||||||
aLine->IsBrightened() );
|
aLine->IsBrightened() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1914,8 +1921,8 @@ void SCH_PAINTER::draw( const SCH_TEXT *aText, int aLayer )
|
||||||
if( aText->IsDangling() )
|
if( aText->IsDangling() )
|
||||||
{
|
{
|
||||||
drawDanglingSymbol( aText->GetTextPos(), color,
|
drawDanglingSymbol( aText->GetTextPos(), color,
|
||||||
schIUScale.MilsToIU( DANGLING_SYMBOL_SIZE / 2 ), drawingShadows,
|
schIUScale.MilsToIU( DANGLING_SYMBOL_SIZE / 2 ), true,
|
||||||
aText->IsBrightened() );
|
drawingShadows, aText->IsBrightened() );
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
@ -2514,7 +2521,8 @@ void SCH_PAINTER::draw( const SCH_DIRECTIVE_LABEL *aLabel, int aLayer )
|
||||||
{
|
{
|
||||||
if( aLabel->IsDangling() )
|
if( aLabel->IsDangling() )
|
||||||
{
|
{
|
||||||
drawDanglingSymbol( aLabel->GetTextPos(), color, schIUScale.MilsToIU( DANGLING_SYMBOL_SIZE / 2 ),
|
drawDanglingSymbol( aLabel->GetTextPos(), color,
|
||||||
|
schIUScale.MilsToIU( DANGLING_SYMBOL_SIZE / 2 ), true,
|
||||||
drawingShadows, aLabel->IsBrightened() );
|
drawingShadows, aLabel->IsBrightened() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -172,7 +172,7 @@ private:
|
||||||
void drawPinDanglingSymbol( const VECTOR2I& aPos, const COLOR4D& aColor,
|
void drawPinDanglingSymbol( const VECTOR2I& aPos, const COLOR4D& aColor,
|
||||||
bool aDrawingShadows, bool aBrightened );
|
bool aDrawingShadows, bool aBrightened );
|
||||||
void drawDanglingSymbol( const VECTOR2I& aPos, const COLOR4D& aColor, int aWidth,
|
void drawDanglingSymbol( const VECTOR2I& aPos, const COLOR4D& aColor, int aWidth,
|
||||||
bool aDrawingShadows, bool aBrightened );
|
bool aDangling, bool aDrawingShadows, bool aBrightened );
|
||||||
|
|
||||||
int internalPinDecoSize( const LIB_PIN &aPin );
|
int internalPinDecoSize( const LIB_PIN &aPin );
|
||||||
int externalPinDecoSize( const LIB_PIN &aPin );
|
int externalPinDecoSize( const LIB_PIN &aPin );
|
||||||
|
|
Loading…
Reference in New Issue