MCPcopy Create free account
hub / github.com/MiniZinc/MiniZincIDE / paintLineNumbers

Method paintLineNumbers

MiniZincIDE/codeeditor.cpp:540–585  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

538}
539
540void CodeEditor::paintLineNumbers(QPaintEvent *event)
541{
542 QPainter painter(lineNumbers);
543 QFont lineNoFont = font();
544 QFontMetrics fm(lineNoFont);
545 lineNoFont.setPointSizeF(lineNoFont.pointSizeF()*0.8);
546 QFontMetrics fm2(lineNoFont);
547 int ascentDiff = fontMetrics().ascent() - fm2.ascent();
548 painter.setFont(lineNoFont);
549 painter.fillRect(event->rect(), theme.lineNumberbackground.get(darkMode));
550
551 QTextBlock block = firstVisibleBlock();
552 int blockNumber = block.blockNumber();
553
554 int top = static_cast<int>(blockBoundingGeometry(block).translated(contentOffset()).top());
555 int bottom = top + static_cast<int>(blockBoundingRect(block).height());
556
557// painter.fillRect(event->rect(), QColor::fromRgb(QRandomGenerator::global()->generate()));
558
559 int curLine = textCursor().blockNumber();
560
561 while (block.isValid() && top <= event->rect().bottom()) {
562 if (block.isVisible() && bottom >= event->rect().top()) {
563 QString number = QString::number(blockNumber + 1);
564 int textTop = top + ascentDiff;
565
566 if (errorLines.contains(blockNumber)) {
567 painter.setPen(theme.errorColor.get(darkMode));
568 } else if (warningLines.contains(blockNumber)) {
569 painter.setPen(theme.warningColor.get(darkMode));
570 } else if (blockNumber == curLine) {
571 painter.setPen(theme.foregroundActiveColor.get(darkMode));
572 } else {
573 painter.setPen(theme.foregroundInactiveColor.get(darkMode));
574 }
575
576 painter.drawText(0, textTop, lineNumbers->width(), fm2.height(),
577 Qt::AlignRight, number);
578 }
579
580 block = block.next();
581 top = bottom;
582 bottom = top + static_cast<int>(blockBoundingRect(block).height());
583 ++blockNumber;
584 }
585}
586
587QColor CodeEditor::interpolate(QColor start,QColor end,double ratio)
588{

Callers 1

paintEventMethod · 0.80

Calls 8

topMethod · 0.80
isValidMethod · 0.80
bottomMethod · 0.80
containsMethod · 0.80
nextMethod · 0.80
getMethod · 0.45
heightMethod · 0.45
widthMethod · 0.45

Tested by

no test coverage detected