diff --git a/src/plugins/texteditor/itexteditor.cpp b/src/plugins/texteditor/itexteditor.cpp index 93b4b1bbee8de82b429009d4c8f23a729fba955d..e4fb168b0f5bcf3486fc3ea60016f29ef90b65fa 100644 --- a/src/plugins/texteditor/itexteditor.cpp +++ b/src/plugins/texteditor/itexteditor.cpp @@ -38,59 +38,6 @@ using namespace TextEditor; -ITextMark::~ITextMark() -{ - -} - -int ITextMark::lineNumber() const -{ - return m_lineNumber; -} - -void ITextMark::paint(QPainter *painter, const QRect &rect) const -{ - m_icon.paint(painter, rect, Qt::AlignCenter); -} - -void ITextMark::updateLineNumber(int lineNumber) -{ - m_lineNumber = lineNumber; -} - -void ITextMark::updateBlock(const QTextBlock &) -{} - -void ITextMark::removedFromEditor() -{} - -void ITextMark::setIcon(const QIcon &icon) -{ - m_icon = icon; -} - -void ITextMark::setPriority(Priority priority) -{ - m_priority = priority; -} - -ITextMark::Priority ITextMark::priority() const -{ - return m_priority; -} - -bool ITextMark::visible() const -{ - return true; -} - -double ITextMark::widthFactor() const -{ - return 1.0; -} - - - QMap<QString, QString> ITextEditor::openedTextEditorsContents() { QMap<QString, QString> workingCopy; diff --git a/src/plugins/texteditor/itexteditor.h b/src/plugins/texteditor/itexteditor.h index ae2cb26f75113ba71a0a693f628577f9ce52e952..7910346d07496176e72d2fd9e1b8d7c304134256 100644 --- a/src/plugins/texteditor/itexteditor.h +++ b/src/plugins/texteditor/itexteditor.h @@ -35,6 +35,8 @@ #include "texteditor_global.h" +#include "itextmark.h" + #include <coreplugin/editormanager/ieditor.h> #include <QObject> @@ -53,54 +55,6 @@ QT_END_NAMESPACE namespace TextEditor { -class ITextEditor; - -class TEXTEDITOR_EXPORT ITextMark -{ -public: - ITextMark(int line) : m_lineNumber(line), m_priority(NormalPriority) {} - virtual ~ITextMark(); - - // determine order on markers on the same line. - enum Priority - { - LowPriority, - NormalPriority, - HighPriority // shown on top. - }; - - int lineNumber() const; - virtual void paint(QPainter *painter, const QRect &rect) const; - virtual void updateLineNumber(int lineNumber); - virtual void updateBlock(const QTextBlock &block); - virtual void removedFromEditor(); - void setIcon(const QIcon &icon); - Priority priority() const; - void setPriority(Priority prioriy); - virtual bool visible() const; - virtual double widthFactor() const; - -private: - int m_lineNumber; - QIcon m_icon; - Priority m_priority; -}; - -typedef QList<ITextMark *> TextMarks; - - -class TEXTEDITOR_EXPORT ITextMarkable : public QObject -{ - Q_OBJECT -public: - ITextMarkable(QObject *parent = 0) : QObject(parent) {} - - virtual bool addMark(ITextMark *mark) = 0; - virtual TextMarks marksAt(int line) const = 0; - virtual void removeMark(ITextMark *mark) = 0; - virtual void updateMark(ITextMark *mark) = 0; -}; - class TEXTEDITOR_EXPORT ITextEditor : public Core::IEditor { Q_OBJECT diff --git a/src/plugins/texteditor/itextmark.cpp b/src/plugins/texteditor/itextmark.cpp new file mode 100644 index 0000000000000000000000000000000000000000..4aebbad154eba7d2b1bf9f00fe090716fffac88a --- /dev/null +++ b/src/plugins/texteditor/itextmark.cpp @@ -0,0 +1,86 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** +** GNU Lesser General Public License Usage +** +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this file. +** Please review the following information to ensure the GNU Lesser General +** Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** Other Usage +** +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +**************************************************************************/ + +#include "itextmark.h" + +using namespace TextEditor; + +ITextMark::~ITextMark() +{ + +} + +int ITextMark::lineNumber() const +{ + return m_lineNumber; +} + +void ITextMark::paint(QPainter *painter, const QRect &rect) const +{ + m_icon.paint(painter, rect, Qt::AlignCenter); +} + +void ITextMark::updateLineNumber(int lineNumber) +{ + m_lineNumber = lineNumber; +} + +void ITextMark::updateBlock(const QTextBlock &) +{} + +void ITextMark::removedFromEditor() +{} + +void ITextMark::setIcon(const QIcon &icon) +{ + m_icon = icon; +} + +void ITextMark::setPriority(Priority priority) +{ + m_priority = priority; +} + +ITextMark::Priority ITextMark::priority() const +{ + return m_priority; +} + +bool ITextMark::visible() const +{ + return true; +} + +double ITextMark::widthFactor() const +{ + return 1.0; +} diff --git a/src/plugins/texteditor/itextmark.h b/src/plugins/texteditor/itextmark.h new file mode 100644 index 0000000000000000000000000000000000000000..81ea17ceeef15bfc6058e70ef772d763815d60bc --- /dev/null +++ b/src/plugins/texteditor/itextmark.h @@ -0,0 +1,102 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** +** GNU Lesser General Public License Usage +** +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this file. +** Please review the following information to ensure the GNU Lesser General +** Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** Other Usage +** +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +**************************************************************************/ + +#ifndef ITEXTMARK_H +#define ITEXTMARK_H + +#include "texteditor_global.h" + +#include <QObject> +#include <QList> +#include <QMap> +#include <QIcon> + +QT_BEGIN_NAMESPACE +class QIcon; +class QPainter; +class QRect; +class QTextBlock; +QT_END_NAMESPACE + +namespace TextEditor { + +class ITextEditor; + +class TEXTEDITOR_EXPORT ITextMark +{ +public: + ITextMark(int line) : m_lineNumber(line), m_priority(NormalPriority) {} + virtual ~ITextMark(); + + // determine order on markers on the same line. + enum Priority + { + LowPriority, + NormalPriority, + HighPriority // shown on top. + }; + + int lineNumber() const; + virtual void paint(QPainter *painter, const QRect &rect) const; + virtual void updateLineNumber(int lineNumber); + virtual void updateBlock(const QTextBlock &block); + virtual void removedFromEditor(); + void setIcon(const QIcon &icon); + Priority priority() const; + void setPriority(Priority prioriy); + virtual bool visible() const; + virtual double widthFactor() const; + +private: + int m_lineNumber; + QIcon m_icon; + Priority m_priority; +}; + +typedef QList<ITextMark *> TextMarks; + + +class TEXTEDITOR_EXPORT ITextMarkable : public QObject +{ + Q_OBJECT +public: + ITextMarkable(QObject *parent = 0) : QObject(parent) {} + + virtual bool addMark(ITextMark *mark) = 0; + virtual TextMarks marksAt(int line) const = 0; + virtual void removeMark(ITextMark *mark) = 0; + virtual void updateMark(ITextMark *mark) = 0; +}; + +} // namespace TextEditor + +#endif // ITEXTMARK_H diff --git a/src/plugins/texteditor/texteditor.pro b/src/plugins/texteditor/texteditor.pro index 10402dec4f1b4477318160eb4226715b257e75d9..19677ba1aa90578235b4b2a3430b162882174dfe 100644 --- a/src/plugins/texteditor/texteditor.pro +++ b/src/plugins/texteditor/texteditor.pro @@ -112,7 +112,8 @@ SOURCES += texteditorplugin.cpp \ icodestylepreferences.cpp \ codestylepool.cpp \ codestyleeditor.cpp \ - circularclipboard.cpp + circularclipboard.cpp \ + itextmark.cpp HEADERS += texteditorplugin.h \ textfilewizard.h \ @@ -229,7 +230,8 @@ HEADERS += texteditorplugin.h \ codestylepool.h \ codestyleeditor.h \ basefilefind_p.h \ - circularclipboard.h + circularclipboard.h \ + itextmark.h FORMS += \ displaysettingspage.ui \ diff --git a/src/plugins/texteditor/texteditor.qbs b/src/plugins/texteditor/texteditor.qbs index 23a433a32759f490545dc1127ab0e7395ab34add..c12adef8c5eea816df7cdbfb9bf9c4a75a4a971b 100644 --- a/src/plugins/texteditor/texteditor.qbs +++ b/src/plugins/texteditor/texteditor.qbs @@ -95,6 +95,8 @@ QtcPlugin { "ioutlinewidget.h", "itexteditor.cpp", "itexteditor.h", + "itextmark.cpp", + "itextmark.h", "linenumberfilter.cpp", "linenumberfilter.h", "normalindenter.cpp", diff --git a/tests/auto/qml/qmleditor/qmlcodeformatter/qmlcodeformatter.pro b/tests/auto/qml/qmleditor/qmlcodeformatter/qmlcodeformatter.pro index de290a00919d16b42ae6b08068ab2de27dca04e3..aa477ea5c980cca698c6506130094a52d74e0f58 100644 --- a/tests/auto/qml/qmleditor/qmlcodeformatter/qmlcodeformatter.pro +++ b/tests/auto/qml/qmleditor/qmlcodeformatter/qmlcodeformatter.pro @@ -9,10 +9,12 @@ include($$SRCDIR/libs/languageutils/languageutils.pri) SOURCES += \ tst_qmlcodeformatter.cpp \ $$SRCDIR/plugins/qmljstools/qmljsqtstylecodeformatter.cpp \ - $$SRCDIR/plugins/texteditor/basetextdocumentlayout.cpp + $$SRCDIR/plugins/texteditor/basetextdocumentlayout.cpp \ + $$SRCDIR/plugins/texteditor/itextmark.cpp HEADERS += \ $$SRCDIR/plugins/qmljstools/qmljsqtstylecodeformatter.h \ - $$SRCDIR/plugins/texteditor/basetextdocumentlayout.h + $$SRCDIR/plugins/texteditor/basetextdocumentlayout.h \ + $$SRCDIR/plugins/texteditor/itextmark.h INCLUDEPATH += $$SRCDIR/plugins $$SRCDIR/libs