From c9b91e7e6b25d5c76bd736c054c681a6877f625c Mon Sep 17 00:00:00 2001 From: Tim Jenssen Date: Wed, 7 Aug 2019 16:00:21 +0200 Subject: [PATCH] QmlDesigner: reduce enumeration to header only It is used in some other external qmldesigner plugin and these are built against current dev packages, which are not contain this cpp file. Different solution would be to add: r"^share/qtcreator/qml/qmlpuppet/types/enumeration.cpp$", to scripts/createDevPackage.py which feels not that clean. Change-Id: Ia1fb5c02f457d98474218689ebf6483706265dde Reviewed-by: Thomas Hartmann --- .../qml2puppet/instances/objectnodeinstance.h | 2 +- .../qml/qmlpuppet/types/enumeration.cpp | 116 ------------------ .../qml/qmlpuppet/types/enumeration.h | 78 +++++++++--- share/qtcreator/qml/qmlpuppet/types/types.pri | 2 - .../designercore/include/variantproperty.h | 3 +- .../designercore/model/propertyparser.cpp | 3 +- .../designercore/model/texttomodelmerger.cpp | 3 +- src/plugins/qmldesigner/qmldesignerplugin.qbs | 1 - src/tools/qml2puppet/CMakeLists.txt | 2 +- src/tools/qml2puppet/qml2puppet.qbs | 1 - 10 files changed, 72 insertions(+), 139 deletions(-) delete mode 100644 share/qtcreator/qml/qmlpuppet/types/enumeration.cpp diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h index 07c5d50b6e5..55114e872a6 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h @@ -34,7 +34,7 @@ #include #include -#include "enumeration.h" +#include QT_BEGIN_NAMESPACE class QQmlContext; diff --git a/share/qtcreator/qml/qmlpuppet/types/enumeration.cpp b/share/qtcreator/qml/qmlpuppet/types/enumeration.cpp deleted file mode 100644 index 12435838ea0..00000000000 --- a/share/qtcreator/qml/qmlpuppet/types/enumeration.cpp +++ /dev/null @@ -1,116 +0,0 @@ -/**************************************************************************** -** -** 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 "enumeration.h" - -#include -#include -#include - -namespace QmlDesigner { - -Enumeration::Enumeration() = default; - -Enumeration::Enumeration(const EnumerationName &enumerationName) - : m_enumerationName(enumerationName) -{ -} - -Enumeration::Enumeration(const QString &enumerationName) - : m_enumerationName(enumerationName.toUtf8()) -{ -} - -Enumeration::Enumeration(const QString &scope, const QString &name) -{ - QString enumerationString = scope + QLatin1Char('.') + name; - - m_enumerationName = enumerationString.toUtf8(); -} - -QmlDesigner::EnumerationName QmlDesigner::Enumeration::scope() const -{ - return m_enumerationName.split('.').constFirst(); -} - -EnumerationName Enumeration::name() const -{ - return m_enumerationName.split('.').last(); -} - -EnumerationName Enumeration::toEnumerationName() const -{ - return m_enumerationName; -} - -QString Enumeration::toString() const -{ - return QString::fromUtf8(m_enumerationName); -} - -QString Enumeration::nameToString() const -{ - return QString::fromUtf8(name()); -} - -QDataStream &operator<<(QDataStream &out, const Enumeration &enumeration) -{ - out << enumeration.toEnumerationName(); - - return out; -} - -QDataStream &operator>>(QDataStream &in, Enumeration &enumeration) -{ - in >> enumeration.m_enumerationName; - - return in; -} - - -bool operator ==(const Enumeration &first, const Enumeration &second) -{ - return first.m_enumerationName == second.m_enumerationName; -} - -bool operator <(const Enumeration &first, const Enumeration &second) -{ - return first.m_enumerationName < second.m_enumerationName; -} - -QDebug operator <<(QDebug debug, const Enumeration &enumeration) -{ - debug.nospace() << "Enumeration(" - << enumeration.toString() - << ")"; - - return debug; -} - - -} // namespace QmlDesigner - - - diff --git a/share/qtcreator/qml/qmlpuppet/types/enumeration.h b/share/qtcreator/qml/qmlpuppet/types/enumeration.h index d7bc3ac049d..c764f16cb2e 100644 --- a/share/qtcreator/qml/qmlpuppet/types/enumeration.h +++ b/share/qtcreator/qml/qmlpuppet/types/enumeration.h @@ -30,6 +30,10 @@ #include #include +#include +#include +#include + namespace QmlDesigner { using EnumerationName = QByteArray; @@ -41,29 +45,75 @@ class Enumeration friend QDataStream &operator>>(QDataStream &in, Enumeration &enumeration); public: - Enumeration(); - Enumeration(const EnumerationName &enumerationName); - Enumeration(const QString &enumerationName); - Enumeration(const QString &scope, const QString &name); + Enumeration() = default; + Enumeration(const EnumerationName &enumerationName) + : m_enumerationName(enumerationName) + { + } + Enumeration(const QString &enumerationName) + : m_enumerationName(enumerationName.toUtf8()) + { + } + Enumeration(const QString &scope, const QString &name) + { + QString enumerationString = scope + QLatin1Char('.') + name; + m_enumerationName = enumerationString.toUtf8(); + } - EnumerationName scope() const; - EnumerationName name() const; - EnumerationName toEnumerationName() const; - QString toString() const; - QString nameToString() const; + EnumerationName scope() const + { + return m_enumerationName.split('.').constFirst(); + } + EnumerationName name() const + { + return m_enumerationName.split('.').last(); + } + EnumerationName toEnumerationName() const + { + return m_enumerationName; + } + QString toString() const + { + return QString::fromUtf8(m_enumerationName); + } + QString nameToString() const + { + return QString::fromUtf8(name()); + } private: EnumerationName m_enumerationName; }; -QDataStream &operator<<(QDataStream &out, const Enumeration &enumeration); -QDataStream &operator>>(QDataStream &in, Enumeration &enumeration); +inline QDataStream &operator<<(QDataStream &out, const Enumeration &enumeration){ + out << enumeration.toEnumerationName(); + return out; +} -bool operator ==(const Enumeration &first, const Enumeration &second); -bool operator <(const Enumeration &first, const Enumeration &second); +inline QDataStream &operator>>(QDataStream &in, Enumeration &enumeration) +{ + in >> enumeration.m_enumerationName; + return in; +} -QDebug operator <<(QDebug debug, const Enumeration &enumeration); +inline bool operator==(const Enumeration &first, const Enumeration &second) +{ + return first.m_enumerationName == second.m_enumerationName; +} + +inline bool operator<(const Enumeration &first, const Enumeration &second) +{ + return first.m_enumerationName < second.m_enumerationName; +} + +inline QDebug operator <<(QDebug debug, const Enumeration &enumeration) +{ + debug.nospace() << "Enumeration(" + << enumeration.toString() + << ")"; + return debug; +} } // namespace QmlDesigner diff --git a/share/qtcreator/qml/qmlpuppet/types/types.pri b/share/qtcreator/qml/qmlpuppet/types/types.pri index 87425205e6d..e5f10bcbe46 100644 --- a/share/qtcreator/qml/qmlpuppet/types/types.pri +++ b/share/qtcreator/qml/qmlpuppet/types/types.pri @@ -1,5 +1,3 @@ INCLUDEPATH += $$PWD/ HEADERS += $$PWD/enumeration.h - -SOURCES += $$PWD/enumeration.cpp diff --git a/src/plugins/qmldesigner/designercore/include/variantproperty.h b/src/plugins/qmldesigner/designercore/include/variantproperty.h index c909958de04..8f25ab3109a 100644 --- a/src/plugins/qmldesigner/designercore/include/variantproperty.h +++ b/src/plugins/qmldesigner/designercore/include/variantproperty.h @@ -27,7 +27,8 @@ #include "qmldesignercorelib_global.h" #include "abstractproperty.h" -#include "enumeration.h" + +#include QT_BEGIN_NAMESPACE class QTextStream; diff --git a/src/plugins/qmldesigner/designercore/model/propertyparser.cpp b/src/plugins/qmldesigner/designercore/model/propertyparser.cpp index c6d19b801ab..b4af8564675 100644 --- a/src/plugins/qmldesigner/designercore/model/propertyparser.cpp +++ b/src/plugins/qmldesigner/designercore/model/propertyparser.cpp @@ -24,7 +24,8 @@ ****************************************************************************/ #include "propertyparser.h" -#include "enumeration.h" + +#include #include #include diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp index ea72cc51a20..45c07d20afb 100644 --- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp @@ -29,7 +29,6 @@ #include "modelnodepositionstorage.h" #include "abstractproperty.h" #include "bindingproperty.h" -#include "enumeration.h" #include "filemanager/firstdefinitionfinder.h" #include "filemanager/objectlengthcalculator.h" #include "filemanager/qmlrefactoring.h" @@ -42,6 +41,8 @@ #include "rewriterview.h" #include "variantproperty.h" +#include + #include #include #include diff --git a/src/plugins/qmldesigner/qmldesignerplugin.qbs b/src/plugins/qmldesigner/qmldesignerplugin.qbs index 4cba901e20f..2db56446f3c 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.qbs +++ b/src/plugins/qmldesigner/qmldesignerplugin.qbs @@ -192,7 +192,6 @@ Project { "interfaces/nodeinstanceclientinterface.h", "interfaces/nodeinstanceserverinterface.cpp", "interfaces/nodeinstanceserverinterface.h", - "types/enumeration.cpp", "types/enumeration.h", ] } diff --git a/src/tools/qml2puppet/CMakeLists.txt b/src/tools/qml2puppet/CMakeLists.txt index a5b24d59de1..3715ae9349e 100644 --- a/src/tools/qml2puppet/CMakeLists.txt +++ b/src/tools/qml2puppet/CMakeLists.txt @@ -126,7 +126,7 @@ extend_qtc_executable(qml2puppet extend_qtc_executable(qml2puppet SOURCES_PREFIX "${SRCDIR}/types" SOURCES - enumeration.cpp enumeration.h + enumeration.h ) extend_qtc_executable(qml2puppet diff --git a/src/tools/qml2puppet/qml2puppet.qbs b/src/tools/qml2puppet/qml2puppet.qbs index 25c3f393098..02a6f6e31f2 100644 --- a/src/tools/qml2puppet/qml2puppet.qbs +++ b/src/tools/qml2puppet/qml2puppet.qbs @@ -121,7 +121,6 @@ QtcTool { "interfaces/nodeinstanceserverinterface.cpp", "interfaces/nodeinstanceserverinterface.h", "qmlprivategate/qmlprivategate.h", - "types/enumeration.cpp", "types/enumeration.h", ] }