1
0
Fork 0
forked from len0rd/rockbox

Theme Editor: Switched error highlighting to the line numbers

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26785 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Robert Bieber 2010-06-11 19:03:49 +00:00
parent 3fec40194c
commit 0c38353869
3 changed files with 13 additions and 13 deletions

View file

@ -128,9 +128,15 @@ void CodeEditor::lineNumberAreaPaintEvent(QPaintEvent *event)
while (block.isValid() && top <= event->rect().bottom()) { while (block.isValid() && top <= event->rect().bottom()) {
if (block.isVisible() && bottom >= event->rect().top()) { if (block.isVisible() && bottom >= event->rect().top()) {
QString number = QString::number(blockNumber + 1); QString number = QString::number(blockNumber + 1);
/* Drawing an error circle if necessary */
if(errors.contains(blockNumber + 1))
{
painter.fillRect(QRect(0, top, lineNumberArea->width(),
fontMetrics().height()), Qt::red);
}
painter.setPen(Qt::black); painter.setPen(Qt::black);
painter.drawText(0, top, lineNumberArea->width(), fontMetrics().height(), painter.drawText(0, top, lineNumberArea->width(),
Qt::AlignRight, number); fontMetrics().height(), Qt::AlignRight, number);
} }
block = block.next(); block = block.next();

View file

@ -59,6 +59,8 @@ public:
void lineNumberAreaPaintEvent(QPaintEvent *event); void lineNumberAreaPaintEvent(QPaintEvent *event);
int lineNumberAreaWidth(); int lineNumberAreaWidth();
void addError(int line){ errors.append(line); }
void clearErrors(){ errors.clear(); }
protected: protected:
void resizeEvent(QResizeEvent *event); void resizeEvent(QResizeEvent *event);
@ -69,6 +71,7 @@ private slots:
private: private:
QWidget *lineNumberArea; QWidget *lineNumberArea;
QList<int> errors;
}; };
//![codeeditordefinition] //![codeeditordefinition]

View file

@ -166,6 +166,7 @@ void SkinDocument::settingsChanged()
void SkinDocument::codeChanged() void SkinDocument::codeChanged()
{ {
editor->clearErrors();
parseStatus = model->changeTree(editor->document()-> parseStatus = model->changeTree(editor->document()->
toPlainText().toAscii()); toPlainText().toAscii());
statusLabel->setText(parseStatus); statusLabel->setText(parseStatus);
@ -173,17 +174,7 @@ void SkinDocument::codeChanged()
/* Highlighting if an error was found */ /* Highlighting if an error was found */
if(skin_error_line() > 0) if(skin_error_line() > 0)
{ {
QList<QTextEdit::ExtraSelection> highlight; editor->addError(skin_error_line());
QTextEdit::ExtraSelection error;
/* Finding the apropriate line */
error.cursor = QTextCursor(editor->document()->
findBlockByNumber(skin_error_line() - 1));
error.format = errorColor;
highlight.append(error);
editor->setExtraSelections(highlight);
} }
else else
{ {