simplify, move redundant operations to functions, update coding style

This commit is contained in:
Axel Kohlmeyer
2023-07-25 10:16:20 -04:00
parent 908e925b8f
commit a402d2c6d8
9 changed files with 74 additions and 161 deletions

View File

@ -8,12 +8,9 @@ CodeEditor::CodeEditor(QWidget *parent) : QPlainTextEdit(parent)
{
lineNumberArea = new LineNumberArea(this);
connect(this, &CodeEditor::blockCountChanged, this,
&CodeEditor::updateLineNumberAreaWidth);
connect(this, &CodeEditor::updateRequest, this,
&CodeEditor::updateLineNumberArea);
connect(this, &CodeEditor::cursorPositionChanged, this,
&CodeEditor::highlightCurrentLine);
connect(this, &CodeEditor::blockCountChanged, this, &CodeEditor::updateLineNumberAreaWidth);
connect(this, &CodeEditor::updateRequest, this, &CodeEditor::updateLineNumberArea);
connect(this, &CodeEditor::cursorPositionChanged, this, &CodeEditor::highlightCurrentLine);
updateLineNumberAreaWidth(0);
highlightCurrentLine();
@ -43,8 +40,7 @@ void CodeEditor::updateLineNumberArea(const QRect &rect, int dy)
if (dy)
lineNumberArea->scroll(0, dy);
else
lineNumberArea->update(0, rect.y(), lineNumberArea->width(),
rect.height());
lineNumberArea->update(0, rect.y(), lineNumberArea->width(), rect.height());
if (rect.contains(viewport()->rect())) updateLineNumberAreaWidth(0);
}
@ -54,8 +50,7 @@ void CodeEditor::resizeEvent(QResizeEvent *e)
QPlainTextEdit::resizeEvent(e);
QRect cr = contentsRect();
lineNumberArea->setGeometry(
QRect(cr.left(), cr.top(), lineNumberAreaWidth(), cr.height()));
lineNumberArea->setGeometry(QRect(cr.left(), cr.top(), lineNumberAreaWidth(), cr.height()));
}
void CodeEditor::highlightCurrentLine()
@ -83,15 +78,14 @@ void CodeEditor::lineNumberAreaPaintEvent(QPaintEvent *event)
painter.fillRect(event->rect(), Qt::lightGray);
QTextBlock block = firstVisibleBlock();
int blockNumber = block.blockNumber();
int top =
qRound(blockBoundingGeometry(block).translated(contentOffset()).top());
int bottom = top + qRound(blockBoundingRect(block).height());
int top = qRound(blockBoundingGeometry(block).translated(contentOffset()).top());
int bottom = top + qRound(blockBoundingRect(block).height());
while (block.isValid() && top <= event->rect().bottom()) {
if (block.isVisible() && bottom >= event->rect().top()) {
QString number = QString::number(blockNumber + 1);
painter.setPen(Qt::black);
painter.drawText(0, top, lineNumberArea->width(),
fontMetrics().height(), Qt::AlignRight, number);
painter.drawText(0, top, lineNumberArea->width(), fontMetrics().height(),
Qt::AlignRight, number);
}
block = block.next();
@ -100,3 +94,7 @@ void CodeEditor::lineNumberAreaPaintEvent(QPaintEvent *event)
++blockNumber;
}
}
// Local Variables:
// c-basic-offset: 4
// End: