From 254fa65c7b75f61147186d9f9146b89ee11b2b26 Mon Sep 17 00:00:00 2001 From: Dominik Wenger Date: Wed, 3 Sep 2008 19:24:50 +0000 Subject: WpsEditor: commit FS#9344 by Rostislav Chekan - multitarget support (only colour targets for now) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18399 a1c6a512-1295-4272-9138-f99709370657 --- utils/wpseditor/gui/src/qsyntaxer.cpp | 44 +++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 utils/wpseditor/gui/src/qsyntaxer.cpp (limited to 'utils/wpseditor/gui/src/qsyntaxer.cpp') diff --git a/utils/wpseditor/gui/src/qsyntaxer.cpp b/utils/wpseditor/gui/src/qsyntaxer.cpp new file mode 100644 index 0000000..412ca38 --- /dev/null +++ b/utils/wpseditor/gui/src/qsyntaxer.cpp @@ -0,0 +1,44 @@ +#include + +#include "qsyntaxer.h" + +QSyntaxer::QSyntaxer(QTextDocument *parent) + : QSyntaxHighlighter(parent) { + HighlightingRule rule; + + hrules["operator"].pattern = QRegExp("%[^\\| \n<\\?%]{1,2}"); + hrules["operator"].format.setFontWeight(QFont::Bold); + hrules["operator"].format.setForeground(Qt::darkBlue); + + + hrules["question"].pattern = QRegExp("%[\\?]{1}[^<]{1,2}"); + hrules["question"].format.setForeground(Qt::darkMagenta); + + hrules["question2"].pattern = QRegExp("(<|>)"); + hrules["question2"].format.setForeground(Qt::red); + + + hrules["limiter"].pattern = QRegExp("\\|"); + hrules["limiter"].format.setForeground(Qt::darkRed); + + hrules["comment"].pattern = QRegExp("#[^\n]*"); + hrules["comment"].format.setForeground(Qt::darkGreen); + hrules["comment"].format.setFontItalic(true); +} +// +void QSyntaxer::highlightBlock(const QString &text) { + QTextCharFormat wholeText; + wholeText.setFont(QFont("arial",11,QFont::Normal)); + setFormat(0,text.length(),wholeText); + + foreach (HighlightingRule rule, hrules) { + QRegExp expression(rule.pattern); + int index = text.indexOf(expression); + while (index >= 0) { + int length = expression.matchedLength(); + setFormat(index, length, rule.format); + index = text.indexOf(expression, index + length); + } + } + +} -- cgit v1.1