summaryrefslogtreecommitdiff
path: root/src/codeeditor.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/codeeditor.cc')
-rw-r--r--src/codeeditor.cc47
1 files changed, 26 insertions, 21 deletions
diff --git a/src/codeeditor.cc b/src/codeeditor.cc
index 44b0e9b..d639953 100644
--- a/src/codeeditor.cc
+++ b/src/codeeditor.cc
@@ -60,13 +60,12 @@ CodeEditor::CodeEditor(QWidget *parent) : QPlainTextEdit(parent)
highlightCurrentLine();
}
-
-
int CodeEditor::lineNumberAreaWidth()
{
int digits = 1;
int max = qMax(1, blockCount());
- while (max >= 10) {
+ while(max >= 10)
+ {
max /= 10;
++digits;
}
@@ -76,44 +75,43 @@ int CodeEditor::lineNumberAreaWidth()
return space;
}
-
-
void CodeEditor::updateLineNumberAreaWidth(int /* newBlockCount */)
{
setViewportMargins(lineNumberAreaWidth(), 0, 0, 0);
}
-
-
void CodeEditor::updateLineNumberArea(const QRect &rect, int dy)
{
- if (dy)
+ if(dy)
+ {
lineNumberArea->scroll(0, dy);
+ }
else
+ {
lineNumberArea->update(0, rect.y(), lineNumberArea->width(), rect.height());
+ }
- if (rect.contains(viewport()->rect()))
+ if(rect.contains(viewport()->rect()))
+ {
updateLineNumberAreaWidth(0);
+ }
}
-
-
void CodeEditor::resizeEvent(QResizeEvent *e)
{
QPlainTextEdit::resizeEvent(e);
QRect cr = contentsRect();
lineNumberArea->setGeometry(QRect(cr.left(), cr.top(), lineNumberAreaWidth(),
- cr.height()));
+ cr.height()));
}
-
-
void CodeEditor::highlightCurrentLine()
{
QList<QTextEdit::ExtraSelection> extraSelections;
- if (!isReadOnly()) {
+ if(!isReadOnly())
+ {
QTextEdit::ExtraSelection selection;
QColor lineColor = QColor(Qt::yellow).lighter(160);
@@ -139,20 +137,27 @@ void CodeEditor::lineNumberAreaPaintEvent(QPaintEvent *event)
QPainter painter(lineNumberArea);
painter.fillRect(event->rect(), Qt::lightGray);
-
QTextBlock block = firstVisibleBlock();
int blockNumber = block.blockNumber();
int top =
(int) blockBoundingGeometry(block).translated(contentOffset()).top();
int bottom = top + (int) blockBoundingRect(block).height();
- while (block.isValid() && top <= event->rect().bottom()) {
- if (block.isVisible() && bottom >= event->rect().top()) {
+ while(block.isValid() && top <= event->rect().bottom())
+ {
+ if(block.isVisible() && bottom >= event->rect().top())
+ {
QString number = QString::number(blockNumber + 1);
- if(blockNumber + 1 == lineNumber) painter.setPen(Qt::green);
- else painter.setPen(Qt::black);
+ if(blockNumber + 1 == lineNumber)
+ {
+ painter.setPen(Qt::green);
+ }
+ else
+ {
+ painter.setPen(Qt::black);
+ }
painter.drawText(0, top, lineNumberArea->width(), fontMetrics().height(),
- Qt::AlignRight, number);
+ Qt::AlignRight, number);
}
block = block.next();