Coming back full circle on Qt TAS branch view text placement. Original implementation works best across all platforms.

This commit is contained in:
mjbudd77 2022-01-07 09:07:06 -05:00
parent 9cafd99e16
commit 2dfa98ac9f
1 changed files with 16 additions and 3 deletions

View File

@ -127,6 +127,7 @@ void BRANCHES::calcFontData(void)
printf(" Descent: %i\n", metrics.descent() ); printf(" Descent: %i\n", metrics.descent() );
printf(" Height: %i\n", metrics.height() ); printf(" Height: %i\n", metrics.height() );
printf(" Line Spacing: %i\n", metrics.lineSpacing() ); printf(" Line Spacing: %i\n", metrics.lineSpacing() );
printf(" Line Leading: %i\n", metrics.leading() );
//pxCharHeight = metrics.capHeight(); //pxCharHeight = metrics.capHeight();
pxCharHeight = metrics.ascent(); pxCharHeight = metrics.ascent();
@ -138,7 +139,7 @@ void BRANCHES::calcFontData(void)
pxSelHeight = (pxBoxHeight * 7) / 8; pxSelHeight = (pxBoxHeight * 7) / 8;
pxTextOffsetX = -(pxBoxWidth/2 ) + (pxBoxWidth - metrics.width(ch) + metrics.leftBearing(ch) + metrics.rightBearing(ch))/2; pxTextOffsetX = -(pxBoxWidth/2 ) + (pxBoxWidth - metrics.width(ch) + metrics.leftBearing(ch) + metrics.rightBearing(ch))/2;
pxTextOffsetY = (pxBoxHeight/2) - (pxBoxHeight - pxCharHeight + metrics.descent())/2; pxTextOffsetY = (pxBoxHeight/2) - (pxBoxHeight - pxCharHeight)/2;
pxMinGridWidth = (pxBoxWidth + 2); pxMinGridWidth = (pxBoxWidth + 2);
pxMaxGridWidth = (pxBoxWidth * 2); pxMaxGridWidth = (pxBoxWidth * 2);
@ -938,16 +939,26 @@ void BRANCHES::paintEvent(QPaintEvent *event)
// digits // digits
for (int i = 0; i < TOTAL_BOOKMARKS; ++i) for (int i = 0; i < TOTAL_BOOKMARKS; ++i)
{ {
//int xa, ya;
//QRect boundingRect;
x = branchCurrentX[i] + pxTextOffsetX; x = branchCurrentX[i] + pxTextOffsetX;
y = branchCurrentY[i] + pxTextOffsetY; y = branchCurrentY[i] + pxTextOffsetY;
txt[0] = i + '0'; txt[0] = i + '0';
txt[1] = 0; txt[1] = 0;
//boundingRect = painter.boundingRect( box[i], Qt::AlignLeft | Qt::AlignTop, tr(txt) );
//xa = (box[i].width() - boundingRect.width()) / 2;
//ya = (box[i].height() - boundingRect.height()) / 2;
if (i == currentBranch) if (i == currentBranch)
{ {
painter.setPen( QColor( 58, 179, 255 ) ); painter.setPen( QColor( 58, 179, 255 ) );
painter.drawText( x, y, tr(txt) ); //painter.drawText( x, y, tr(txt) );
painter.drawText( box[i], Qt::AlignCenter, tr(txt) );
//painter.drawText( box[i].adjusted( xa, ya, xa, ya ), Qt::AlignLeft | Qt::AlignTop, tr(txt) );
} }
else else
{ {
@ -957,7 +968,9 @@ void BRANCHES::paintEvent(QPaintEvent *event)
{ {
x += bookmarks->bookmarksArray[i].floatingPhase; x += bookmarks->bookmarksArray[i].floatingPhase;
} }
painter.drawText( x, y, tr(txt) ); //painter.drawText( x, y, tr(txt) );
painter.drawText( box[i], Qt::AlignCenter, tr(txt) );
//painter.drawText( box[i].adjusted( xa, ya, xa, ya ), Qt::AlignLeft | Qt::AlignTop, tr(txt) );
} }
} }
if (isSafeToShowBranchesData()) if (isSafeToShowBranchesData())