| 587 | } |
| 588 | |
| 589 | void ScriptEditor::paintLineNumbers(QPaintEvent *event) |
| 590 | { |
| 591 | QPainter painter(lineNumberArea); |
| 592 | painter.fillRect(event->rect(), QColor(128, 128, 128, 96)); |
| 593 | |
| 594 | QTextBlock block = firstVisibleBlock(); |
| 595 | int blockNumber = block.blockNumber(); |
| 596 | int top = qRound(blockBoundingGeometry(block).translated(contentOffset()).top()); |
| 597 | int bottom = top + qRound(blockBoundingRect(block).height()); |
| 598 | while (block.isValid() && top <= event->rect().bottom()) |
| 599 | { |
| 600 | if (block.isVisible() && bottom >= event->rect().top()) |
| 601 | { |
| 602 | QString number = QString::number(blockNumber + 1); |
| 603 | painter.drawText(0, top, lineNumberArea->width(), fontMetrics().height(), Qt::AlignRight, number); |
| 604 | } |
| 605 | block = block.next(); |
| 606 | top = bottom; |
| 607 | bottom = top + qRound(blockBoundingRect(block).height()); |
| 608 | ++blockNumber; |
| 609 | } |
| 610 | } |
| 611 | |
| 612 | void ScriptEditor::keyPressEvent(QKeyEvent *event) |
| 613 | { |