From 06e6d88b81ea0189dd21f0affa6f1df61c9a4558 Mon Sep 17 00:00:00 2001 From: Christian Kamm <christian.d.kamm@nokia.com> Date: Mon, 27 Feb 2012 20:55:36 +0100 Subject: [PATCH] Fix compilation of QmlJS code formatter test. Done by moving ITextMark and ITextMarkable from itexteditor.h to itextmark.h. The test uses parts of the texteditor plugin by compiling some of its files. For that to work, the code has to be fairly stand-alone. The reference to EditorManager in itexteditor.cpp broke it. Long term, the test should become a plugin based test to avoid this kind of problem. Change-Id: Ibae3bcd7365eb4e2814cd07011cad0180507e82b Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com> --- src/plugins/texteditor/itexteditor.cpp | 53 --------- src/plugins/texteditor/itexteditor.h | 50 +-------- src/plugins/texteditor/itextmark.cpp | 86 +++++++++++++++ src/plugins/texteditor/itextmark.h | 102 ++++++++++++++++++ src/plugins/texteditor/texteditor.pro | 6 +- src/plugins/texteditor/texteditor.qbs | 2 + .../qmlcodeformatter/qmlcodeformatter.pro | 6 +- 7 files changed, 200 insertions(+), 105 deletions(-) create mode 100644 src/plugins/texteditor/itextmark.cpp create mode 100644 src/plugins/texteditor/itextmark.h diff --git a/src/plugins/texteditor/itexteditor.cpp b/src/plugins/texteditor/itexteditor.cpp index 93b4b1bbee8..e4fb168b0f5 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 ae2cb26f751..7910346d074 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 00000000000..4aebbad154e --- /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 00000000000..81ea17ceeef --- /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 10402dec4f1..19677ba1aa9 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 23a433a3275..c12adef8c5e 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 de290a00919..aa477ea5c98 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 -- GitLab