# HG changeset patch # User Jacob Dawid # Date 1327706188 -3600 # Node ID 29a5e5b94a04c8755c26a4fc0548245bb8a92120 # Parent 4a6867289e24326468c1c6dde6cc88c85e7d569b Removed TerminalHighlighter-class, since it is not needed anymore. * octave-gui.pro: Removed class files from SOURCES and HEADERS. * TerminalHighlighter.* : Removed. diff --git a/gui/octave-gui.pro b/gui/octave-gui.pro --- a/gui/octave-gui.pro +++ b/gui/octave-gui.pro @@ -92,8 +92,7 @@ src/WelcomeWizard.cpp unix { -SOURCES +=\ - src/TerminalHighlighter.cpp +SOURCES += } win32 { @@ -122,8 +121,7 @@ src/WelcomeWizard.h unix { -HEADERS += \ - src/TerminalHighlighter.h +HEADERS += } win32 { diff --git a/gui/src/TerminalHighlighter.cpp b/gui/src/TerminalHighlighter.cpp deleted file mode 100644 --- a/gui/src/TerminalHighlighter.cpp +++ /dev/null @@ -1,88 +0,0 @@ -/* OctaveGUI - A graphical user interface for Octave - * Copyright (C) 2011 Jacob Dawid (jacob.dawid@googlemail.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -#include "ResourceManager.h" -#include "TerminalHighlighter.h" - -TerminalHighlighter::TerminalHighlighter(QTextDocument *parent) - : QSyntaxHighlighter(parent) -{ - HighlightingRule rule; - - keywordFormat.setForeground(Qt::darkBlue); - QStringList keywordPatterns - = QString(ResourceManager::instance ()->octaveKeywords ()).split(" ", QString::SkipEmptyParts); - keywordPatterns << "GNU" << "Octave" << "OctaveGUI"; - - for (int i = 0; i < keywordPatterns.size (); i++) - keywordPatterns.replace(i, QString("\\b%1\\b").arg(keywordPatterns.at (i))); - - foreach (const QString &pattern, keywordPatterns) - { - rule.pattern = QRegExp(pattern); - rule.format = keywordFormat; - highlightingRules.append(rule); - } - - numberFormat.setForeground(Qt::darkRed); - rule.pattern = QRegExp("\\b[0-9\\.\\+\\-\\^]+\\b"); - rule.format = numberFormat; - highlightingRules.append(rule); - - doubleQouteFormat.setForeground(Qt::darkGreen); - rule.pattern = QRegExp("\"[^\"]*\""); - rule.format = doubleQouteFormat; - highlightingRules.append(rule); - - functionFormat.setFontItalic(true); - functionFormat.setForeground(Qt::blue); - rule.pattern = QRegExp("\\b[A-Za-z0-9_]+\\s*(?=\\()"); - rule.format = functionFormat; - highlightingRules.append(rule); - - urlFormat.setForeground(Qt::darkYellow); - rule.pattern = QRegExp("((?:https?|ftp)://\\S+)"); - rule.format = urlFormat; - highlightingRules.append(rule); - - subCaptionFormat.setForeground (Qt::black); - subCaptionFormat.setFontItalic (true); - rule.pattern = QRegExp("^\\s+\\*.+$"); - rule.format = subCaptionFormat; - highlightingRules.append(rule); - - captionFormat.setForeground(Qt::black); - captionFormat.setFontWeight(QFont::Bold); - rule.pattern = QRegExp("^\\s+\\*\\*.+$"); - rule.format = captionFormat; - highlightingRules.append(rule); -} - -void TerminalHighlighter::highlightBlock(const QString &text) -{ - foreach (const HighlightingRule &rule, highlightingRules) - { - QRegExp expression(rule.pattern); - int index = expression.indexIn(text); - while (index >= 0) - { - int length = expression.matchedLength(); - setFormat(index, length, rule.format); - index = expression.indexIn(text, index + length); - } - } -} diff --git a/gui/src/TerminalHighlighter.h b/gui/src/TerminalHighlighter.h deleted file mode 100644 --- a/gui/src/TerminalHighlighter.h +++ /dev/null @@ -1,56 +0,0 @@ -/* OctaveGUI - A graphical user interface for Octave - * Copyright (C) 2011 Jacob Dawid (jacob.dawid@googlemail.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -#ifndef TERMINALHIGHLIGHTER_H -#define TERMINALHIGHLIGHTER_H - -#include - -#include -#include - -class QTextDocument; - -class TerminalHighlighter : public QSyntaxHighlighter -{ - Q_OBJECT - -public: - TerminalHighlighter(QTextDocument *parent = 0); - -protected: - void highlightBlock(const QString &text); - -private: - struct HighlightingRule - { - QRegExp pattern; - QTextCharFormat format; - }; - - QVector highlightingRules; - QTextCharFormat keywordFormat; - QTextCharFormat doubleQouteFormat; - QTextCharFormat functionFormat; - QTextCharFormat urlFormat; - QTextCharFormat captionFormat; - QTextCharFormat subCaptionFormat; - QTextCharFormat numberFormat; -}; - - -#endif // TERMINALHIGHLIGHTER_H