eeschema: improve hierarchical sheet text placement
Take field name sizes and user preference line thickness into account when calculating placement of the text fields of a hierarchical sheet on the canvas. The previous calculations contained some magic numbers which seem to have been well suited to cases where line width is 8 and text size is 0.050. However, the text collided with the sheet outline as soon as text size or line width was increased. This commit has been evaluated with line widths ranging from 5 to 100 and text sizes ranging from 0.02 to 0.200. Also in combination with characters such as qyg and ÅÄÖÜ in the file/sheet names. (cherry picked from commit b1a60b2)
This commit is contained in:
parent
5b55a0d8e6
commit
41829162d2
|
@ -389,15 +389,16 @@ int SCH_SHEET::GetPenSize() const
|
||||||
wxPoint SCH_SHEET::GetSheetNamePosition()
|
wxPoint SCH_SHEET::GetSheetNamePosition()
|
||||||
{
|
{
|
||||||
wxPoint pos = m_pos;
|
wxPoint pos = m_pos;
|
||||||
|
int margin = KiROUND( GetPenSize() / 2.0 + 4 + m_sheetNameSize * 0.3 );
|
||||||
|
|
||||||
if( IsVerticalOrientation() )
|
if( IsVerticalOrientation() )
|
||||||
{
|
{
|
||||||
pos.x -= 8;
|
pos.x -= margin;
|
||||||
pos.y += m_size.y;
|
pos.y += m_size.y;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pos.y -= 8;
|
pos.y -= margin;
|
||||||
}
|
}
|
||||||
|
|
||||||
return pos;
|
return pos;
|
||||||
|
@ -407,7 +408,7 @@ wxPoint SCH_SHEET::GetSheetNamePosition()
|
||||||
wxPoint SCH_SHEET::GetFileNamePosition()
|
wxPoint SCH_SHEET::GetFileNamePosition()
|
||||||
{
|
{
|
||||||
wxPoint pos = m_pos;
|
wxPoint pos = m_pos;
|
||||||
int margin = GetPenSize() + 4;
|
int margin = KiROUND( GetPenSize() / 2.0 + 4 + m_fileNameSize * 0.4 );
|
||||||
|
|
||||||
if( IsVerticalOrientation() )
|
if( IsVerticalOrientation() )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue