From 55c951e4a7724a4403446f5c9a526c9966dad025 Mon Sep 17 00:00:00 2001 From: Tim Jenssen Date: Thu, 28 Apr 2016 14:21:33 +0200 Subject: [PATCH] QmlDesigner: move DocumentWarningWidget to extra file Change-Id: I6ea87a224565b77ff42f187461094ca258dcdb01 Reviewed-by: Thomas Hartmann --- src/plugins/qmldesigner/designmodewidget.cpp | 50 +---------- src/plugins/qmldesigner/designmodewidget.h | 25 +----- .../qmldesigner/documentwarningwidget.cpp | 84 +++++++++++++++++++ .../qmldesigner/documentwarningwidget.h | 58 +++++++++++++ src/plugins/qmldesigner/qmldesignerplugin.pri | 2 + 5 files changed, 146 insertions(+), 73 deletions(-) create mode 100644 src/plugins/qmldesigner/documentwarningwidget.cpp create mode 100644 src/plugins/qmldesigner/documentwarningwidget.h diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp index d8f82c34f5d..e0c5601e928 100644 --- a/src/plugins/qmldesigner/designmodewidget.cpp +++ b/src/plugins/qmldesigner/designmodewidget.cpp @@ -27,6 +27,7 @@ #include "styledoutputpaneplaceholder.h" #include "qmldesignerplugin.h" #include "crumblebar.h" +#include "documentwarningwidget.h" #include #include @@ -34,7 +35,6 @@ #include #include -#include #include #include #include @@ -47,10 +47,6 @@ #include #include -#include -#include -#include -#include #include using Core::MiniSplitter; @@ -70,50 +66,6 @@ const char SB_OPENDOCUMENTS[] = "OpenDocuments"; namespace QmlDesigner { namespace Internal { -DocumentWarningWidget::DocumentWarningWidget(DesignModeWidget *parent) : - Utils::FakeToolTip(parent), - m_errorMessage(new QLabel(tr("Placeholder"), this)), - m_goToError(new QLabel(this)), - m_designModeWidget(parent) -{ - setWindowFlags(Qt::Widget); //We only want the visual style from a ToolTip - setForegroundRole(QPalette::ToolTipText); - setBackgroundRole(QPalette::ToolTipBase); - setAutoFillBackground(true); - - m_errorMessage->setForegroundRole(QPalette::ToolTipText); - m_goToError->setText(tr("Go to error")); - m_goToError->setForegroundRole(QPalette::Link); - connect(m_goToError, &QLabel::linkActivated, this, [=]() { - m_designModeWidget->textEditor()->gotoLine(m_error.line(), m_error.column() - 1); - Core::ModeManager::activateMode(Core::Constants::MODE_EDIT); - }); - - QVBoxLayout *layout = new QVBoxLayout(this); - layout->setMargin(20); - layout->setSpacing(5); - layout->addWidget(m_errorMessage); - layout->addWidget(m_goToError, 1, Qt::AlignRight); -} - -void DocumentWarningWidget::setError(const RewriterError &error) -{ - m_error = error; - QString str; - if (error.type() == RewriterError::ParseError) { - str = tr("%3 (%1:%2)").arg(QString::number(error.line()), QString::number(error.column()), error.description()); - m_goToError->show(); - } else if (error.type() == RewriterError::InternalError) { - str = tr("Internal error (%1)").arg(error.description()); - m_goToError->hide(); - } - - str.prepend(tr("Cannot open this QML document because of an error in the QML file:\n\n")); - - m_errorMessage->setText(str); - resize(layout()->totalSizeHint()); -} - class ItemLibrarySideBarItem : public Core::SideBarItem { public: diff --git a/src/plugins/qmldesigner/designmodewidget.h b/src/plugins/qmldesigner/designmodewidget.h index 0b9c71eb853..78954ed3279 100644 --- a/src/plugins/qmldesigner/designmodewidget.h +++ b/src/plugins/qmldesigner/designmodewidget.h @@ -32,16 +32,8 @@ #include #include -#include #include -QT_BEGIN_NAMESPACE -class QStackedWidget; -class QTabWidget; -class QVBoxLayout; -class QToolButton; -QT_END_NAMESPACE - namespace Core { class SideBar; class SideBarItem; @@ -59,22 +51,7 @@ namespace Internal { class DesignMode; class DocumentWidget; class DesignModeWidget; - -class DocumentWarningWidget : public Utils::FakeToolTip -{ - Q_OBJECT - -public: - explicit DocumentWarningWidget(DesignModeWidget *parent = 0); - - void setError(const RewriterError &error); - -private: - QLabel *m_errorMessage; - QLabel *m_goToError; - RewriterError m_error; - DesignModeWidget *m_designModeWidget; -}; +class DocumentWarningWidget; class DesignModeWidget : public QWidget { diff --git a/src/plugins/qmldesigner/documentwarningwidget.cpp b/src/plugins/qmldesigner/documentwarningwidget.cpp new file mode 100644 index 00000000000..fb320a1d738 --- /dev/null +++ b/src/plugins/qmldesigner/documentwarningwidget.cpp @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ + +#include "documentwarningwidget.h" + +#include "designmodewidget.h" + +#include +#include + +#include +#include + +namespace QmlDesigner { +namespace Internal { + +DocumentWarningWidget::DocumentWarningWidget(DesignModeWidget *parent) : + Utils::FakeToolTip(parent), + m_errorMessage(new QLabel(tr("Placeholder"), this)), + m_goToError(new QLabel(this)), + m_designModeWidget(parent) +{ + setWindowFlags(Qt::Widget); //We only want the visual style from a ToolTip + setForegroundRole(QPalette::ToolTipText); + setBackgroundRole(QPalette::ToolTipBase); + setAutoFillBackground(true); + + m_errorMessage->setForegroundRole(QPalette::ToolTipText); + m_goToError->setText(tr("Go to error")); + m_goToError->setForegroundRole(QPalette::Link); + connect(m_goToError, &QLabel::linkActivated, this, [=]() { + m_designModeWidget->textEditor()->gotoLine(m_error.line(), m_error.column() - 1); + Core::ModeManager::activateMode(Core::Constants::MODE_EDIT); + }); + + QVBoxLayout *layout = new QVBoxLayout(this); + layout->setMargin(20); + layout->setSpacing(5); + layout->addWidget(m_errorMessage); + layout->addWidget(m_goToError, 1, Qt::AlignRight); +} + +void DocumentWarningWidget::setError(const RewriterError &error) +{ + m_error = error; + QString str; + if (error.type() == RewriterError::ParseError) { + str = tr("%3 (%1:%2)").arg(QString::number(error.line()), QString::number(error.column()), error.description()); + m_goToError->show(); + } else if (error.type() == RewriterError::InternalError) { + str = tr("Internal error (%1)").arg(error.description()); + m_goToError->hide(); + } + + str.prepend(tr("Cannot open this QML document because of an error in the QML file:\n\n")); + + m_errorMessage->setText(str); + resize(layout()->totalSizeHint()); +} + +} // namespace Internal +} // namespace Designer diff --git a/src/plugins/qmldesigner/documentwarningwidget.h b/src/plugins/qmldesigner/documentwarningwidget.h new file mode 100644 index 00000000000..7ae3fbc741d --- /dev/null +++ b/src/plugins/qmldesigner/documentwarningwidget.h @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ + +#pragma once + +#include +#include + +QT_BEGIN_NAMESPACE +class QLabel; +QT_END_NAMESPACE + + +namespace QmlDesigner { +namespace Internal { + +class DesignModeWidget; + +class DocumentWarningWidget : public Utils::FakeToolTip +{ + Q_OBJECT + +public: + explicit DocumentWarningWidget(DesignModeWidget *parent = 0); + + void setError(const RewriterError &error); + +private: + QLabel *m_errorMessage; + QLabel *m_goToError; + RewriterError m_error; + DesignModeWidget *m_designModeWidget; +}; + +} // namespace Internal +} // namespace Designer diff --git a/src/plugins/qmldesigner/qmldesignerplugin.pri b/src/plugins/qmldesigner/qmldesignerplugin.pri index f5a94926fa1..8afc86cf9df 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.pri +++ b/src/plugins/qmldesigner/qmldesignerplugin.pri @@ -6,6 +6,7 @@ HEADERS += $$PWD/qmldesignerconstants.h \ $$PWD/settingspage.h \ $$PWD/designmodecontext.h \ $$PWD/documentmanager.h \ + $$PWD/documentwarningwidget.h \ $$PWD/styledoutputpaneplaceholder.h \ $$PWD/qmldesignericons.h @@ -16,6 +17,7 @@ SOURCES += $$PWD/qmldesignerplugin.cpp \ $$PWD/settingspage.cpp \ $$PWD/designmodecontext.cpp \ $$PWD/documentmanager.cpp \ + $$PWD/documentwarningwidget.cpp \ $$PWD/styledoutputpaneplaceholder.cpp FORMS += $$PWD/settingspage.ui