1
0
Fork 0

GUI: tighter row heights

This commit is contained in:
mrexodia 2016-07-22 19:49:51 +02:00
parent c3ae35a649
commit dec91c621e
No known key found for this signature in database
GPG Key ID: D72F9A4FAA0073B4
4 changed files with 37 additions and 33 deletions

View File

@ -85,7 +85,7 @@ void AbstractTableView::updateFonts()
{ {
setFont(ConfigFont("AbstractTableView")); setFont(ConfigFont("AbstractTableView"));
invalidateCachedFont(); invalidateCachedFont();
mHeader.height = QFontMetrics(font()).height() + 4; mHeader.height = mFontMetrics->height() + 4;
} }
void AbstractTableView::invalidateCachedFont() void AbstractTableView::invalidateCachedFont()
@ -1019,10 +1019,7 @@ int AbstractTableView::getColumnCount() const
int AbstractTableView::getRowHeight() int AbstractTableView::getRowHeight()
{ {
int wRowsHeight = QFontMetrics(this->font()).height(); return mFontMetrics->height() | 1;
wRowsHeight = (wRowsHeight * 105) / 100;
wRowsHeight = (wRowsHeight % 2) == 0 ? wRowsHeight : wRowsHeight + 1;
return wRowsHeight;
} }
int AbstractTableView::getColumnWidth(int index) int AbstractTableView::getColumnWidth(int index)

View File

@ -965,15 +965,16 @@ int Disassembly::paintJumpsGraphic(QPainter* painter, int x, int y, dsint addr,
} }
} }
int halfRow = getRowHeight() / 2 + 1;
painter->setPen(mConditionalTruePen); painter->setPen(mConditionalTruePen);
if(curInstDir == GJD_Up) if(curInstDir == GJD_Up)
{ {
QPoint wPoints[] = QPoint wPoints[] =
{ {
QPoint(x , y + getRowHeight() / 2 + 1), QPoint(x , y + halfRow + 1),
QPoint(x + 2, y + getRowHeight() / 2 - 1), QPoint(x + 2, y + halfRow - 1),
QPoint(x + 4, y + getRowHeight() / 2 + 1), QPoint(x + 4, y + halfRow + 1),
}; };
painter->drawPolyline(wPoints, 3); painter->drawPolyline(wPoints, 3);
@ -982,9 +983,9 @@ int Disassembly::paintJumpsGraphic(QPainter* painter, int x, int y, dsint addr,
{ {
QPoint wPoints[] = QPoint wPoints[] =
{ {
QPoint(x , y + getRowHeight() / 2 - 1), QPoint(x , y + halfRow - 1),
QPoint(x + 2, y + getRowHeight() / 2 + 1), QPoint(x + 2, y + halfRow + 1),
QPoint(x + 4, y + getRowHeight() / 2 - 1), QPoint(x + 4, y + halfRow - 1),
}; };
painter->drawPolyline(wPoints, 3); painter->drawPolyline(wPoints, 3);
@ -1022,56 +1023,56 @@ int Disassembly::paintJumpsGraphic(QPainter* painter, int x, int y, dsint addr,
} }
else if(wPict == GD_FootToBottom) else if(wPict == GD_FootToBottom)
{ {
painter->drawLine(x, y + getRowHeight() / 2, x + 5, y + getRowHeight() / 2); painter->drawLine(x, y + halfRow, x + 5, y + halfRow);
painter->drawLine(x, y + getRowHeight() / 2, x, y + getRowHeight()); painter->drawLine(x, y + halfRow, x, y + getRowHeight());
} }
else if(wPict == GD_FootToTop) else if(wPict == GD_FootToTop)
{ {
painter->drawLine(x, y + getRowHeight() / 2, x + 5, y + getRowHeight() / 2); painter->drawLine(x, y + halfRow, x + 5, y + halfRow);
painter->drawLine(x, y, x, y + getRowHeight() / 2); painter->drawLine(x, y, x, y + halfRow);
} }
else if(wPict == GD_HeadFromBottom) else if(wPict == GD_HeadFromBottom)
{ {
QPoint wPoints[] = QPoint wPoints[] =
{ {
QPoint(x + 3, y + getRowHeight() / 2 - 2), QPoint(x + 3, y + halfRow - 2),
QPoint(x + 5, y + getRowHeight() / 2), QPoint(x + 5, y + halfRow),
QPoint(x + 3, y + getRowHeight() / 2 + 2), QPoint(x + 3, y + halfRow + 2),
}; };
painter->drawLine(x, y + getRowHeight() / 2, x + 5, y + getRowHeight() / 2); painter->drawLine(x, y + halfRow, x + 5, y + halfRow);
painter->drawLine(x, y + getRowHeight() / 2, x, y + getRowHeight()); painter->drawLine(x, y + halfRow, x, y + getRowHeight());
painter->drawPolyline(wPoints, 3); painter->drawPolyline(wPoints, 3);
} }
else if(wPict == GD_HeadFromTop) else if(wPict == GD_HeadFromTop)
{ {
QPoint wPoints[] = QPoint wPoints[] =
{ {
QPoint(x + 3, y + getRowHeight() / 2 - 2), QPoint(x + 3, y + halfRow - 2),
QPoint(x + 5, y + getRowHeight() / 2), QPoint(x + 5, y + halfRow),
QPoint(x + 3, y + getRowHeight() / 2 + 2), QPoint(x + 3, y + halfRow + 2),
}; };
painter->drawLine(x, y + getRowHeight() / 2, x + 5, y + getRowHeight() / 2); painter->drawLine(x, y + halfRow, x + 5, y + halfRow);
painter->drawLine(x, y, x, y + getRowHeight() / 2); painter->drawLine(x, y, x, y + halfRow);
painter->drawPolyline(wPoints, 3); painter->drawPolyline(wPoints, 3);
} }
else if(wPict == GD_HeadFromBoth) else if(wPict == GD_HeadFromBoth)
{ {
QPoint wPoints[] = QPoint wPoints[] =
{ {
QPoint(x + 3, y + getRowHeight() / 2 - 2), QPoint(x + 3, y + halfRow - 2),
QPoint(x + 5, y + getRowHeight() / 2), QPoint(x + 5, y + halfRow),
QPoint(x + 3, y + getRowHeight() / 2 + 2), QPoint(x + 3, y + halfRow + 2),
}; };
painter->drawLine(x, y + getRowHeight() / 2, x + 5, y + getRowHeight() / 2); painter->drawLine(x, y + halfRow, x + 5, y + halfRow);
painter->drawLine(x, y, x, y + getRowHeight()); painter->drawLine(x, y, x, y + getRowHeight());
painter->drawPolyline(wPoints, 3); painter->drawPolyline(wPoints, 3);
} }
else if(wPict == GD_VertHori) else if(wPict == GD_VertHori)
{ {
painter->drawLine(x, y + getRowHeight() / 2, x + 5, y + getRowHeight() / 2); painter->drawLine(x, y + halfRow, x + 5, y + halfRow);
painter->drawLine(x, y, x, y + getRowHeight()); painter->drawLine(x, y, x, y + getRowHeight());
} }

View File

@ -145,7 +145,6 @@ void CPUSideBar::paintEvent(QPaintEvent* event)
if(mInstrBuffer->size() == 0) if(mInstrBuffer->size() == 0)
return; return;
if(mCodeFoldingManager.isFolded(regDump.regcontext.cip)) if(mCodeFoldingManager.isFolded(regDump.regcontext.cip))
{ {
mCodeFoldingManager.expandFoldSegment(regDump.regcontext.cip); mCodeFoldingManager.expandFoldSegment(regDump.regcontext.cip);
@ -310,7 +309,7 @@ void CPUSideBar::mouseReleaseEvent(QMouseEvent* e)
const int line = y / fontHeight; const int line = y / fontHeight;
const int width = viewport()->width(); const int width = viewport()->width();
const int bulletRadius = fontHeight / 2; //14/2=7 const int bulletRadius = fontHeight / 2 + 1; //14/2=7
const int bulletX = width - mBulletXOffset; const int bulletX = width - mBulletXOffset;
//const int bulletY = line * fontHeight + mBulletYOffset; //const int bulletY = line * fontHeight + mBulletYOffset;
@ -432,7 +431,7 @@ void CPUSideBar::drawJump(QPainter* painter, int startLine, int endLine, int jum
painter->setPen(mUnconditionalPen); //JMP painter->setPen(mUnconditionalPen); //JMP
// Pixel adjustment to make drawing lines even // Pixel adjustment to make drawing lines even
int pixel_y_offs = 1; int pixel_y_offs = 0;
if(isactive) //selected if(isactive) //selected
{ {

View File

@ -14,6 +14,7 @@ public:
mFontMetrics(font) mFontMetrics(font)
{ {
memset(mWidths, 0, sizeof(mWidths)); memset(mWidths, 0, sizeof(mWidths));
mHeight = mFontMetrics.height();
} }
int width(const QChar & ch) int width(const QChar & ch)
@ -48,9 +49,15 @@ public:
return result; return result;
} }
int height()
{
return mHeight;
}
private: private:
QFontMetrics mFontMetrics; QFontMetrics mFontMetrics;
uchar mWidths[0x10000 - 0xE000 + 0xD800]; uchar mWidths[0x10000 - 0xE000 + 0xD800];
int mHeight;
}; };
#endif // CACHEDFONTMETRICS_H #endif // CACHEDFONTMETRICS_H