diff options
71 files changed, 2369 insertions, 2748 deletions
diff --git a/examples/uml/duse-mt/duse-mt.pro b/examples/uml/duse-mt/duse-mt.pro index 14b4322b..44864a4a 100644 --- a/examples/uml/duse-mt/duse-mt.pro +++ b/examples/uml/duse-mt/duse-mt.pro @@ -4,7 +4,7 @@ # #------------------------------------------------- -QT = wrappedobjectswidgets script quick quick-private qml duse +QT = modelingwidgets script quick quick-private qml duse TARGET = duse-mt TEMPLATE = app diff --git a/examples/uml/uml.pro b/examples/uml/uml.pro index fee7d63a..3d9c7c43 100644 --- a/examples/uml/uml.pro +++ b/examples/uml/uml.pro @@ -1,5 +1,4 @@ TEMPLATE = subdirs -#SUBDIRS = nested-packages profiles xmi-write xmi-read -SUBDIRS = nested-packages profiles +SUBDIRS = nested-packages profiles xmi-write xmi-read qtHaveModule(widgets):qtHaveModule(quick):qtHaveModule(qml): SUBDIRS += duse-mt diff --git a/examples/uml/xmi-write/main.cpp b/examples/uml/xmi-write/main.cpp index 95e36218..a1151b7b 100644 --- a/examples/uml/xmi-write/main.cpp +++ b/examples/uml/xmi-write/main.cpp @@ -38,43 +38,42 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#include <QtWrappedObjects/QXmiWriter> -#include <QtWrappedObjects/QtWrappedObjects> +#include <QtModeling/QXmiWriter> #include <QtUml/QtUml> int main () { - QWrappedObjectPointer<QUmlPackage> model = new QUmlPackage; + QUmlPackage *model = new QUmlPackage; model->setName("MyRootPackage"); - QWrappedObjectPointer<QUmlPackage> package = new QUmlPackage; + QUmlPackage *package = new QUmlPackage; package->setName("Package1"); - QWrappedObjectPointer<QUmlPrimitiveType> primitiveType = new QUmlPrimitiveType; + QUmlPrimitiveType *primitiveType = new QUmlPrimitiveType; primitiveType->setName("String"); - QWrappedObjectPointer<QUmlEnumeration> enumeration = new QUmlEnumeration; + QUmlEnumeration *enumeration = new QUmlEnumeration; enumeration->setName("DirectionKind"); - QWrappedObjectPointer<QUmlEnumerationLiteral> directionIn = new QUmlEnumerationLiteral; + QUmlEnumerationLiteral *directionIn = new QUmlEnumerationLiteral; directionIn->setName("DirectionIn"); enumeration->addOwnedLiteral(directionIn); - QWrappedObjectPointer<QUmlClass> class_ = new QUmlClass; + QUmlClass *class_ = new QUmlClass; class_->setName("Student"); class_->setAbstract(false); - class_->setVisibility(QtUml::QtUml::VisibilityPackage); + class_->setVisibility(QtUml::VisibilityKindPackage); - QWrappedObjectPointer<QUmlProperty> property = new QUmlProperty; + QUmlProperty *property = new QUmlProperty; property->setName("name"); property->setType(primitiveType); class_->addOwnedAttribute(property); - QWrappedObjectPointer<QUmlClass> class2_ = new QUmlClass; + QUmlClass *class2_ = new QUmlClass; class2_->setName("InterStudent"); - QWrappedObjectPointer<QUmlGeneralization> generalization = new QUmlGeneralization; - generalization->setObjectName("generalization"); + QUmlGeneralization *generalization = new QUmlGeneralization; + generalization->asQObject()->setObjectName("generalization"); generalization->setGeneral(class_); class2_->addGeneralization(generalization); @@ -92,13 +91,13 @@ int main () return 1; } - QXmiWriter writer(model); + QXmiWriter writer(model->asQObject()); if (writer.writeFile(&file)) qDebug() << "XMI file saved !"; else qDebug() << "Error when writing XMI file !"; file.close(); - delete package.data(); + delete package; } diff --git a/examples/uml/xmi-write/xmi-write.pro b/examples/uml/xmi-write/xmi-write.pro index b70a25e6..4c9b3d44 100644 --- a/examples/uml/xmi-write/xmi-write.pro +++ b/examples/uml/xmi-write/xmi-write.pro @@ -3,7 +3,7 @@ TARGET = xmi-write DEPENDPATH += . INCLUDEPATH += . -QT += uml mof +QT += uml QT -= gui # Input diff --git a/modules/qtmodelingwidgets.pri b/modules/qtmodelingwidgets.pri new file mode 100644 index 00000000..74f0f010 --- /dev/null +++ b/modules/qtmodelingwidgets.pri @@ -0,0 +1,17 @@ +QT.modelingwidgets.VERSION = 5.1.1 +QT.modelingwidgets.MAJOR_VERSION = 5 +QT.modelingwidgets.MINOR_VERSION = 1 +QT.modelingwidgets.PATCH_VERSION = 1 + +QT.modelingwidgets.name = QtModelingWidgets +QT.modelingwidgets.bins = $$QT_MODULE_BIN_BASE +QT.modelingwidgets.includes = $$QT_MODULE_INCLUDE_BASE $$QT_MODULE_INCLUDE_BASE/$$QT.modelingwidgets.name +QT.modelingwidgets.private_includes = $$QT_MODULE_INCLUDE_BASE/$$QT.modelingwidgets.name/$$QT.modelingwidgets.VERSION +QT.modelingwidgets.sources = $$QT_MODULE_BASE/src/modelingwidgets +QT.modelingwidgets.libs = $$QT_MODULE_LIB_BASE +QT.modelingwidgets.plugins = $$QT_MODULE_PLUGIN_BASE +QT.modelingwidgets.imports = $$QT_MODULE_IMPORT_BASE +QT.modelingwidgets.depends = core wrappedobjects + +QT.modelingwidgets.DEFINES = QT_MODELINGWIDGETS_LIB +QT_CONFIG += modelingwidgets diff --git a/modules/qtwrappedobjects.pri b/modules/qtwrappedobjects.pri deleted file mode 100644 index a589621f..00000000 --- a/modules/qtwrappedobjects.pri +++ /dev/null @@ -1,17 +0,0 @@ -QT.wrappedobjects.VERSION = 5.1.1 -QT.wrappedobjects.MAJOR_VERSION = 5 -QT.wrappedobjects.MINOR_VERSION = 1 -QT.wrappedobjects.PATCH_VERSION = 1 - -QT.wrappedobjects.name = QtWrappedObjects -QT.wrappedobjects.bins = $$QT_MODULE_BIN_BASE -QT.wrappedobjects.includes = $$QT_MODULE_INCLUDE_BASE $$QT_MODULE_INCLUDE_BASE/$$QT.wrappedobjects.name -QT.wrappedobjects.private_includes = $$QT_MODULE_INCLUDE_BASE/$$QT.wrappedobjects.name/$$QT.wrappedobjects.VERSION -QT.wrappedobjects.sources = $$QT_MODULE_BASE/src/wrappedobjects -QT.wrappedobjects.libs = $$QT_MODULE_LIB_BASE -QT.wrappedobjects.plugins = $$QT_MODULE_PLUGIN_BASE -QT.wrappedobjects.imports = $$QT_MODULE_IMPORT_BASE -QT.wrappedobjects.depends = core - -QT.wrappedobjects.DEFINES = QT_WRAPPEDOBJECTS_LIB -QT_CONFIG += wrappedobjects diff --git a/modules/qtwrappedobjectswidgets.pri b/modules/qtwrappedobjectswidgets.pri deleted file mode 100644 index 9ce396ce..00000000 --- a/modules/qtwrappedobjectswidgets.pri +++ /dev/null @@ -1,17 +0,0 @@ -QT.wrappedobjectswidgets.VERSION = 5.1.1 -QT.wrappedobjectswidgets.MAJOR_VERSION = 5 -QT.wrappedobjectswidgets.MINOR_VERSION = 1 -QT.wrappedobjectswidgets.PATCH_VERSION = 1 - -QT.wrappedobjectswidgets.name = QtWrappedObjectsWidgets -QT.wrappedobjectswidgets.bins = $$QT_MODULE_BIN_BASE -QT.wrappedobjectswidgets.includes = $$QT_MODULE_INCLUDE_BASE $$QT_MODULE_INCLUDE_BASE/$$QT.wrappedobjectswidgets.name -QT.wrappedobjectswidgets.private_includes = $$QT_MODULE_INCLUDE_BASE/$$QT.wrappedobjectswidgets.name/$$QT.wrappedobjectswidgets.VERSION -QT.wrappedobjectswidgets.sources = $$QT_MODULE_BASE/src/wrappedobjectswidgets -QT.wrappedobjectswidgets.libs = $$QT_MODULE_LIB_BASE -QT.wrappedobjectswidgets.plugins = $$QT_MODULE_PLUGIN_BASE -QT.wrappedobjectswidgets.imports = $$QT_MODULE_IMPORT_BASE -QT.wrappedobjectswidgets.depends = core wrappedobjects - -QT.wrappedobjectswidgets.DEFINES = QT_WRAPPEDOBJECTSWIDGETS_LIB -QT_CONFIG += wrappedobjectswidgets diff --git a/src/modeling/modeling.pro b/src/modeling/modeling.pro index 4fef7dbd..7c56cf48 100644 --- a/src/modeling/modeling.pro +++ b/src/modeling/modeling.pro @@ -1,17 +1,29 @@ load(qt_build_config) TARGET = QtModeling -QT = core core-private +QT = core-private QMAKE_DOCS = $$PWD/doc/qtmodeling.qdocconf load(qt_module) -HEADERS += \ +PUBLIC_HEADERS += \ qtmodelingglobal.h \ qtmodelingnamespace.h \ - qmodelingobject.h + qmodelingobject.h \ + qmetamodelplugin.h \ + qxmiwriter.h \ + qxmireader.h + +PRIVATE_HEADERS += \ + qxmiwriter_p.h \ + qxmireader_p.h SOURCES += \ qtmodelingnamespace.cpp \ - qmodelingobject.cpp + qmodelingobject.cpp \ + qmetamodelplugin.cpp \ + qxmiwriter.cpp \ + qxmireader.cpp + +HEADERS += $$PUBLIC_HEADERS $$PRIVATE_HEADERS diff --git a/src/modeling/qwrappedobject.cpp b/src/modeling/qmetamodelplugin.cpp index 1f265a1a..69677943 100644 --- a/src/modeling/qwrappedobject.cpp +++ b/src/modeling/qmetamodelplugin.cpp @@ -38,29 +38,16 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#include "qwrappedobject.h" +#include "qmetamodelplugin.h" QT_BEGIN_NAMESPACE -QWrappedObject::QWrappedObject(QWrappedObject *wrapper, QObject *parent) : - QObject(*new QWrappedObjectPrivate, parent) +QMetaModelPlugin::QMetaModelPlugin(QObject *parent) + : QObject(parent) { - setWrapper(wrapper); } -QWrappedObject::~QWrappedObject() -{ - Q_D(QWrappedObject); - qDeleteAll(d->wrappedObjects); -} - -QWrappedObject::QWrappedObject(QWrappedObjectPrivate &dd, QWrappedObject *wrapper, QObject *parent) : - QObject(dd, parent) -{ - setWrapper(wrapper); -} - -#include "moc_qwrappedobject.cpp" +#include "moc_qmetamodelplugin.cpp" QT_END_NAMESPACE diff --git a/src/modeling/qmetamodelplugin.h b/src/modeling/qmetamodelplugin.h new file mode 100644 index 00000000..16ea2c08 --- /dev/null +++ b/src/modeling/qmetamodelplugin.h @@ -0,0 +1,73 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtModeling module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#ifndef QTMODELING_QMETAMODELPLUGIN_H +#define QTMODELING_QMETAMODELPLUGIN_H + +#include <QtModeling/QtModelingGlobal> + +#include <QtCore/QObject> + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(QtModeling) + +class QScriptEngine; +class QModelingObject; + +class Q_MODELING_EXPORT QMetaModelPlugin : public QObject +{ + Q_OBJECT + +public: + explicit QMetaModelPlugin(QObject *parent = 0); + + virtual void initMetaModel(QScriptEngine *scriptEngine = 0) = 0; + virtual QModelingObject *createModelingObject(QString type) = 0; +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QTMODELING_QMETAMODELPLUGIN_H + diff --git a/src/modeling/qtmodelingglobal.h b/src/modeling/qtmodelingglobal.h index c1f40d20..809531ed 100644 --- a/src/modeling/qtmodelingglobal.h +++ b/src/modeling/qtmodelingglobal.h @@ -43,6 +43,9 @@ #include <QtCore/QtGlobal> #include <QtCore/QVariant> +#include <QtScript/QScriptValue> +#include <QtScript/QScriptEngine> +#include <QtScript/QScriptValueIterator> QT_BEGIN_NAMESPACE @@ -63,7 +66,45 @@ class QModelingObject; template<class T> T qmodelingobjectproperty_cast(const QObject *object) { - return object->property("modelingObject").value<T>(); + return object ? object->property("modelingObject").value<T>():T(); +} + +template <class T> +QScriptValue qSetToScriptValue(QScriptEngine *engine, const QSet<T *> &elements) +{ + QScriptValue array = engine->newArray(); + foreach (T *element, elements) + array.property(QString::fromLatin1("push")).call(array, QScriptValueList() << engine->newQObject(element)); + return array; +} + +template <class T> +void scriptValueToQSet(const QScriptValue &obj, QSet<T *> &elements) +{ + QScriptValueIterator it(obj); + while (it.hasNext()) { + it.next(); + elements.insert(qobject_cast<T *>(it.value().toQObject())); + } +} + +template <class T> +QScriptValue qListToScriptValue(QScriptEngine *engine, const QList<T *> &elements) +{ + QScriptValue array = engine->newArray(); + foreach (T *element, elements) + array.property(QString::fromLatin1("push")).call(array, QScriptValueList() << engine->newQObject(element)); + return array; +} + +template <class T> +void scriptValueToQList(const QScriptValue &obj, QList<T *> &elements) +{ + QScriptValueIterator it(obj); + while (it.hasNext()) { + it.next(); + elements.append(qobject_cast<T *>(it.value().toQObject())); + } } #endif // QTMODELINGGLOBAL_H diff --git a/src/modeling/qtmodelingnamespace.h b/src/modeling/qtmodelingnamespace.h index 1c9459a8..e6f76bb0 100644 --- a/src/modeling/qtmodelingnamespace.h +++ b/src/modeling/qtmodelingnamespace.h @@ -56,6 +56,7 @@ class Q_MODELING_EXPORT QtModeling : public QObject Q_OBJECT Q_ENUMS(MetaPropertyDataRole) + Q_ENUMS(ModelingObjectRole) public: enum MetaPropertyDataRole @@ -72,12 +73,23 @@ public: UserRole = 0x0100 }; + enum ModelingObjectRole + { + ModelElementRole = 0, + ImportedElementRole, + ImportedPackageRole, + AppliedProfileRole + }; + private: explicit QtModeling(); }; QT_END_NAMESPACE +Q_DECLARE_METATYPE (QT_PREPEND_NAMESPACE(QtModeling::MetaPropertyDataRole)) +Q_DECLARE_METATYPE (QT_PREPEND_NAMESPACE(QtModeling::ModelingObjectRole)) + QT_END_HEADER #endif // QTMODELINGNAMESPACE_H diff --git a/src/modeling/qwrappedobject.h b/src/modeling/qwrappedobject.h deleted file mode 100644 index cf2d273d..00000000 --- a/src/modeling/qwrappedobject.h +++ /dev/null @@ -1,246 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> -** Contact: http://www.qt-project.org/legal -** -** This file is part of the QtModeling module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, 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, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#ifndef QWRAPPEDOBJECT_H -#define QWRAPPEDOBJECT_H - -#include <QtModeling/QtModelingGlobal> - -#include <QtCore/QObject> -#include "private/qobject_p.h" - -#include <QtCore/QSet> - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(QtModeling) - -#define Q_WRAPPEDOBJECT_REGISTRY \ - QHash<QString, QWrappedObject *> &wrappedObjectsRegistry = this->wrappedObjectsRegistry(); \ - QWrappedObject *wrappedObject; - -#define Q_WRAP_OBJECT(className) \ - wrappedObject = wrappedObjectsRegistry.value(QStringLiteral(#className)); \ - if (!wrappedObject) { \ - wrappedObject = new className(this, parent); \ - wrappedObjectsRegistry.insert(QStringLiteral(#className), wrappedObject); \ - } \ - wrappedObject->setWrapper(this) - -#define Q_DERIVEDUNION_CONNECTION(subsetting, subsetted) \ - QObject::connect(&subsetting, SIGNAL(objectInserted(QObject*)), &subsetted, SLOT(insert(QObject*))); \ - QObject::connect(&subsetting, SIGNAL(objectRemoved(QObject*)), &subsetted, SLOT(remove(QObject*))); - -class QWrappedObjectPrivate; - -class Q_MODELING_EXPORT QWrappedObject : public QObject -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QWrappedObject) - -public: - explicit QWrappedObject(QWrappedObject *wrapper, QObject *parent = 0); - - virtual ~QWrappedObject(); - - inline QWrappedObject *wrapper() const; - inline void setWrapper(QWrappedObject *wrapper); - inline QList<QPointer<QWrappedObject> > &wrappedObjects(); - - inline void setObjectName(const QString &name) - { - QObject::setObjectName(name); - foreach (QWrappedObject *wrapped, wrappedObjects()) - wrapped->setObjectName(name); - } - -// template <class T> -// inline const T *as() const; - - template <class T> - inline T *as(); - -// template <class T> -// inline const T *privateAs() const; - - template <class T> - inline T *privateAs(); - -protected: - explicit QWrappedObject(QWrappedObjectPrivate &dd, QWrappedObject *wrapper = 0, QObject *parent = 0); - inline QHash<QString, QWrappedObject *> &wrappedObjectsRegistry(); - -private: - inline void initialize(QWrappedObject *wrapper); -}; - -template <class T> -inline T qwrappedobject_cast(QWrappedObject *base, bool restoreToWrapper = true) -{ - if (!base) - return T(); // invalid pointer - while (restoreToWrapper && base->wrapper()) - base = base->wrapper(); - if (dynamic_cast<T>(base)) - return dynamic_cast<T>(base); - foreach (QWrappedObject *wrappedObject, base->wrappedObjects()) { - T returnValue = qwrappedobject_cast<T>(wrappedObject, false); - if (returnValue != T()) - return returnValue; - } - return T(); // not found -} - -template <class T> -inline T qwrappedobject_cast(const QWrappedObject *base, bool restoreToWrapper = true) -{ - return qwrappedobject_cast<T>(const_cast<QWrappedObject *>(base), restoreToWrapper); -} - -//template <class T> -//inline const T *QWrappedObject::QWrappedObject::as() const -//{ -// return qwrappedobject_cast<T *>(this); -//} - -template <class T> -inline T *QWrappedObject::QWrappedObject::as() -{ - return qwrappedobject_cast<T *>(this); -} - -//template <class T> -//inline const T *QWrappedObject::QWrappedObject::privateAs() const -//{ -// Q_D(const QWrappedObject); -// return qwrappedobject_cast<T *>(d); -//} - -template <class T> -inline T *QWrappedObject::QWrappedObject::privateAs() -{ - Q_D(QWrappedObject); - return qwrappedobject_cast<T *>(d); -} - -inline QWrappedObject *qTopLevelWrapper(QWrappedObject *wrapped) -{ - if (!wrapped) - return 0; - while (wrapped->wrapper()) - wrapped = wrapped->wrapper(); - return wrapped; -} - -class Q_MODELING_EXPORT QWrappedObjectPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QWrappedObject) - -public: - explicit QWrappedObjectPrivate() : wrapper(0) { } - - inline static QWrappedObjectPrivate *get(QWrappedObject *o) - { - return dynamic_cast<QWrappedObjectPrivate *>(o->d_func()); - } - - QWrappedObject *wrapper; - QList< QPointer<QWrappedObject> > wrappedObjects; - QHash<QString, QWrappedObject *>wrappedObjectsRegistry; -}; - -template <class T> -inline T qwrappedobject_cast(QWrappedObjectPrivate *base, bool restoreToWrapper = true) -{ - if (!base) - return T(); // invalid pointer - while (restoreToWrapper && base->wrapper) - base = QWrappedObjectPrivate::get(base->wrapper); - if (dynamic_cast<T>(base)) - return dynamic_cast<T>(base); - foreach (QWrappedObject *wrappedObject, base->wrappedObjects) { - T returnValue = qwrappedobject_cast<T>(QWrappedObjectPrivate::get(wrappedObject), false); - if (returnValue != T()) - return returnValue; - } - return T(); // not found -} - -template <class T> -inline T qwrappedobject_cast(const QWrappedObjectPrivate *base, bool restoreToWrapper = true) -{ - return qwrappedobject_cast<T>(const_cast<QWrappedObjectPrivate *>(base), restoreToWrapper); -} - -inline QWrappedObject *QWrappedObject::wrapper() const -{ - Q_D(const QWrappedObject); - return d->wrapper; -} - -inline void QWrappedObject::setWrapper(QWrappedObject *wrapper) -{ - Q_D(QWrappedObject); - if (wrapper) { - d->wrapper = wrapper; - QList< QPointer<QWrappedObject> > &wrappedObjects = wrapper->d_func()->wrappedObjects; - if (!wrappedObjects.contains(this)) - wrappedObjects.append(this); - } -} - -inline QList< QPointer<QWrappedObject> > &QWrappedObject::wrappedObjects() -{ - Q_D(QWrappedObject); - return d->wrappedObjects; -} - -inline QHash<QString, QWrappedObject *> &QWrappedObject::wrappedObjectsRegistry() -{ - return qTopLevelWrapper(this)->d_func()->wrappedObjectsRegistry; -} - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // QWRAPPEDOBJECT_H diff --git a/src/modeling/qxmireader.cpp b/src/modeling/qxmireader.cpp new file mode 100644 index 00000000..58b938ec --- /dev/null +++ b/src/modeling/qxmireader.cpp @@ -0,0 +1,317 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtModeling module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include "qxmireader.h" +#include "qxmireader_p.h" +#include "qmetamodelplugin.h" + +#include <QtModeling/QtModelingNamespace> + +#include <QtCore/QDir> +#include <QtCore/QUrl> +#include <QtCore/QStack> +#include <QtCore/QJsonObject> +#include <QtCore/QPluginLoader> +#include <QtCore/QMetaProperty> +#include <QtCore/QCoreApplication> + +QT_BEGIN_NAMESPACE + +QXmiReaderPrivate::QXmiReaderPrivate() +{ +} + +QXmiReaderPrivate::~QXmiReaderPrivate() +{ +} + +QXmiReader::QXmiReader(QScriptEngine *scriptEngine, bool initMetaModel, QObject *parent) : + QObject(*new QXmiReaderPrivate, parent) +{ + Q_D(QXmiReader); + d->scriptEngine = scriptEngine; + d->initMetaModel = initMetaModel; + loadPlugins(); +} + +QXmiReader::~QXmiReader() +{ +} + +void QXmiReader::loadPlugins() +{ + Q_D(QXmiReader); + + d->metaModelPlugins.clear(); + QMetaModelPlugin *metaModelPlugin = 0; + foreach (QString pluginPath, QCoreApplication::libraryPaths()) { + QDir pluginsDir(pluginPath); + pluginsDir.cd(QString::fromLatin1("metamodels")); + foreach (QString fileName, pluginsDir.entryList(QDir::Files)) { + QPluginLoader loader(pluginsDir.absoluteFilePath(fileName)); + QObject *plugin = loader.instance(); + if (plugin && (metaModelPlugin = qobject_cast<QMetaModelPlugin *>(plugin))) + d->metaModelPlugins.insert(loader.metaData().value(QString::fromLatin1("MetaData")).toObject().value(QString::fromLatin1("MetaModelNamespaceUri")).toString(), QPair<QMetaModelPlugin *, QJsonObject>(metaModelPlugin, loader.metaData().value(QString::fromLatin1("MetaData")).toObject())); + } + } +} + +QObjectList QXmiReader::readFile(QIODevice *device, QString importedId) +{ + Q_D(QXmiReader); + + if (importedId.isEmpty()) { + d->idMap.clear(); + d->errors.clear(); + d->xmlNamespaceToImplementationNamespace.clear(); + } + QXmlStreamReader reader; + reader.setDevice(device); + QObjectList modelingObjectList; + QObject *rootElement = 0; + bool importedIdFound = false; + QStack<QString> idStack; + int insertPosition = 0; + + while (!reader.atEnd()) { + reader.readNext(); + + if (!importedId.isEmpty() && !importedIdFound && reader.attributes().value(QString::fromLatin1("xmi:id")).toString() != importedId) + continue; + + if (!importedId.isEmpty() && !importedIdFound) + importedIdFound = true; + + if (reader.isStartElement()) { + idStack.push(reader.name().toString()); + QString elementName = reader.name().toString(); + if (elementName == QString::fromLatin1("importedPackage") || elementName == QString::fromLatin1("importedElement") || elementName == QString::fromLatin1("appliedProfile")) { + QFile importFile(reader.attributes().value(QString::fromLatin1("href")).toString().split(QString::fromLatin1("#")).first()); + if (!importFile.open(QFile::ReadOnly | QFile::Text)) + d->errors << QString::fromLatin1("Could not open imported file '%1'").arg(importFile.fileName()); + QObjectList importList = readFile(&importFile, reader.attributes().value(QString::fromLatin1("href")).toString().split(QString::fromLatin1("#")).last()); + if (importList.count() > 0) { + if (elementName == QString::fromLatin1("importedPackage")) + importList.first()->setProperty("role", QtModeling::ImportedPackageRole); + else if (elementName == QString::fromLatin1("importedElement")) + importList.first()->setProperty("role", QtModeling::ImportedElementRole); + else if (elementName == QString::fromLatin1("appliedProfile")) + importList.first()->setProperty("role", QtModeling::AppliedProfileRole); + } + foreach (QObject *importedObject, importList) { + modelingObjectList.append(importedObject); + } + } + + foreach (const QXmlStreamNamespaceDeclaration &namespaceDeclaration, reader.namespaceDeclarations()) { + QMetaModelPlugin *metaModelPlugin = d->metaModelPlugins.value(namespaceDeclaration.namespaceUri().toString()).first; + if (metaModelPlugin) { + if (d->initMetaModel) + metaModelPlugin->initMetaModel(d->scriptEngine); + d->xmlNamespaceToImplementationNamespace.insert(namespaceDeclaration.prefix().toString(), d->metaModelPlugins.value(namespaceDeclaration.namespaceUri().toString()).second.value(QString::fromLatin1("MetaModelPrefix")).toString()); + } + else { + d->errors << QString::fromLatin1("Could not find metamodel for namespace URI '%1'").arg(namespaceDeclaration.namespaceUri().toString()); + } + } + QString xmiType = reader.attributes().value(QString::fromLatin1("xmi:type")).toString(); + if (xmiType.isEmpty() && reader.qualifiedName() != reader.name()) + xmiType = reader.qualifiedName().toString(); + if (xmiType.isEmpty() || d->xmlNamespaceToImplementationNamespace[xmiType.split(':').first()].isEmpty()) + continue; + xmiType = QString::fromLatin1("%1%2 *").arg(d->xmlNamespaceToImplementationNamespace[xmiType.split(':').first()]).arg(xmiType.split(':').last()); + QString instanceName = reader.attributes().value(QString::fromLatin1("name")).toString(); + if (instanceName.isEmpty()) + instanceName = reader.attributes().value(QString::fromLatin1("xmi:id")).toString(); + QObject *modelingObject = createInstance(xmiType, instanceName); + if (modelingObject) { + d->idMap.insert(reader.attributes().value(QString::fromLatin1("xmi:id")).toString(), modelingObject); + if (!rootElement) { + rootElement = modelingObject; + modelingObjectList.insert(insertPosition, rootElement); + } + } + else + d->errors << QString::fromLatin1("Could not create instance with id '%1' and type '%2'. Corresponding metamodel loaded ?").arg(instanceName).arg(xmiType); + } + else if (reader.isEndElement()) { + idStack.pop(); + if (idStack.isEmpty() && !importedId.isEmpty()) + break; + if (idStack.count() == 1 && importedId.isEmpty()) { + rootElement = 0; + ++insertPosition; + } + } + } + + importedIdFound = false; + + device->reset(); + reader.clear(); + reader.setDevice(device); + QStack< QPair<QString, QObject *> > stack; + + while (!reader.atEnd()) { + reader.readNext(); + + if (!importedId.isEmpty() && !importedIdFound && reader.attributes().value(QString::fromLatin1("xmi:id")).toString() != importedId) + continue; + + if (!importedId.isEmpty() && !importedIdFound) + importedIdFound = true; + + if (reader.isStartElement()) { + QString id = reader.attributes().value(QString::fromLatin1("xmi:id")).toString(); + if (id.isEmpty()) + id = reader.attributes().value(QString::fromLatin1("xmi:idref")).toString(); + if (id.isEmpty()) + id = reader.attributes().value(QString::fromLatin1("href")).toString().split(QString::fromLatin1("#")).last(); + if (id.isEmpty() && !stack.isEmpty()) + continue; + + QObject *modelingObject = d->idMap.value(id); + + if (modelingObject) { + const QMetaObject *metaObject = modelingObject->metaObject(); + foreach (QXmlStreamAttribute attribute, reader.attributes()) { + int propertyIndex; + if ((propertyIndex = metaObject->indexOfProperty(attribute.name().toString().toLatin1())) != -1) { + QMetaProperty metaProperty = metaObject->property(propertyIndex); + if (metaProperty.type() == QVariant::Bool) { + if (!modelingObject->setProperty(attribute.name().toString().toLatin1(), attribute.value().toString() == QString::fromLatin1("true") ? true:false)) + d->errors << QString::fromLatin1("Error when setting property '%1' of object with id '%2'.").arg(attribute.name().toString()).arg(id); + } + else if (metaProperty.isEnumType()) { + QString enumName = attribute.value().toString(); + enumName = enumName.left(1).toUpper() + enumName.mid(1); + QString propertyName = QString::fromLatin1(metaProperty.name()); + enumName.prepend(propertyName.left(1).toUpper() + propertyName.mid(1)); + if (!modelingObject->setProperty(attribute.name().toString().toLatin1(), enumName)) + d->errors << QString::fromLatin1("Error when setting property '%1' of object with id '%2'.").arg(attribute.name().toString()).arg(id); + } + else if (metaProperty.type() == QVariant::String) { + if (!modelingObject->setProperty(attribute.name().toString().toLatin1(), attribute.value().toString())) + d->errors << QString::fromLatin1("Error when setting property '%1' of object with id '%2'.").arg(attribute.name().toString()).arg(id); + } + else if (metaProperty.type() == QVariant::UserType) { + QObject *propertyObject = d->idMap.value(attribute.value().toString()); + if (propertyObject) { + QString elementName = attribute.name().toString(); + elementName = elementName.left(1).toUpper() + elementName.mid(1); + int methodCount = modelingObject->metaObject()->methodCount(); + int i; + for (i = 0; i < methodCount; ++i) { + QMetaMethod metaMethod = modelingObject->metaObject()->method(i); + if (QString::fromLatin1(metaMethod.name()) == QString::fromLatin1("set%1").arg(elementName)) { + if (!metaMethod.invoke(modelingObject, ::Q_ARG(QObject *, propertyObject))) + d->errors << QString::fromLatin1("Error when invoking metamethod '%1' on object '%2'.").arg(QString::fromLatin1(metaMethod.name())).arg(propertyObject->objectName()); + break; + } + } + if (i == methodCount) + d->errors << QString::fromLatin1("Metamethod add/set'%1' not found on object '%2'.").arg(elementName).arg(propertyObject->objectName()); + + } + } + } + else + d->errors << QString::fromLatin1("Property '%1' not found in object of type '%2'. Corresponding metamodel loaded ?").arg(attribute.name().toString()).arg(QString::fromLatin1(modelingObject->metaObject()->className())); + } + if (!stack.isEmpty()) { + QObject *containerObject = stack.top().second; + QString elementName = reader.name().toString(); + elementName = elementName.left(1).toUpper() + elementName.mid(1); + int methodCount = containerObject->metaObject()->methodCount(); + int i; + for (i = 0; i < methodCount; ++i) { + QMetaMethod metaMethod = containerObject->metaObject()->method(i); + if (QString::fromLatin1(metaMethod.name()) == QString::fromLatin1("add%1").arg(elementName) || + QString::fromLatin1(metaMethod.name()) == QString::fromLatin1("set%1").arg(elementName)) { + if (!metaMethod.invoke(containerObject, ::Q_ARG(QObject *, modelingObject))) + d->errors << QString::fromLatin1("Error when invoking metamethod '%1' on object '%2'.").arg(QString::fromLatin1(metaMethod.name())).arg(containerObject->objectName()); + break; + } + } + if (i == methodCount) + d->errors << QString::fromLatin1("Metamethod add/set'%1' not found on object '%2'.").arg(elementName).arg(containerObject->objectName()); + } + stack.push(QPair<QString, QObject *>(reader.name().toString(), modelingObject)); + } + else + d->errors << QString::fromLatin1("Could not cross reference instance with id '%1' in element '%2'. Bad formed XMI file ?").arg(id).arg(reader.name().toString()); + } + else if (reader.isEndElement() && !stack.isEmpty() && stack.top().first == reader.name()) { + stack.pop(); + if (stack.isEmpty() && !importedId.isEmpty()) + break; + } + } + + return modelingObjectList; +} + +QObject *QXmiReader::createInstance(QString instanceClass, QString instanceName) +{ + int type; + if ((type = QMetaType::type(instanceClass.toLatin1())) != QMetaType::UnknownType) { + const QMetaObject *metaObject = QMetaType::metaObjectForType(type); + if (metaObject) { + QObject *modelingObject = dynamic_cast<QObject *>(metaObject->newInstance()); + if (modelingObject) { + modelingObject->setObjectName(instanceName); + return modelingObject; + } + } + } + return 0; +} + +QStringList QXmiReader::errorStrings() const +{ + Q_D(const QXmiReader); + + return d->errors; +} + +#include "moc_qxmireader.cpp" + +QT_END_NAMESPACE + diff --git a/src/modeling/qxmireader.h b/src/modeling/qxmireader.h new file mode 100644 index 00000000..8dea082f --- /dev/null +++ b/src/modeling/qxmireader.h @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtModeling module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#ifndef QTMODELING_QXMIREADER_H +#define QTMODELING_QXMIREADER_H + +#include <QtModeling/QtModelingGlobal> + +#include <QtCore/QObject> + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(QtModeling) + +class QIODevice; +class QObject; + +class QScriptEngine; +class QXmiReaderPrivate; + +class Q_MODELING_EXPORT QXmiReader : public QObject +{ + Q_OBJECT + + Q_DISABLE_COPY(QXmiReader) + Q_DECLARE_PRIVATE(QXmiReader) + +public: + explicit QXmiReader(QScriptEngine *scriptEngine = 0, bool initMetaModel = false, QObject *parent = 0); + virtual ~QXmiReader(); + + QObjectList readFile(QIODevice *device, QString importedId = QString::fromLatin1("")); + QStringList errorStrings() const; + +protected: + void loadPlugins(); + QObject *createInstance(QString instanceClass, QString instanceName); +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QTMODELING_QXMIREADER_H + diff --git a/src/modeling/qxmireader_p.h b/src/modeling/qxmireader_p.h new file mode 100644 index 00000000..966d5971 --- /dev/null +++ b/src/modeling/qxmireader_p.h @@ -0,0 +1,80 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtModeling module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#ifndef QTMODELING_QXMIREADER_P_H +#define QTMODELING_QXMIREADER_P_H + +#include "qtmodelingglobal.h" +#include "private/qobject_p.h" + +#include <QtCore/QStringList> +#include <QtCore/QXmlStreamReader> + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(QtModeling) + +class QMetaModelPlugin; +class QScriptEngine; + +class Q_MODELING_EXPORT QXmiReaderPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QXmiReader) + +public: + explicit QXmiReaderPrivate(); + virtual ~QXmiReaderPrivate(); + + QHash<QString, QObject *> idMap; + QHash< QString, QPair<QMetaModelPlugin *, QJsonObject> > metaModelPlugins; + QHash<QString, QString> xmlNamespaceToImplementationNamespace; + QStringList errors; + QScriptEngine *scriptEngine; + bool initMetaModel; +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QTMODELING_QXMIREADER_P_H + diff --git a/src/modeling/qxmiwriter.cpp b/src/modeling/qxmiwriter.cpp new file mode 100644 index 00000000..17fb00e3 --- /dev/null +++ b/src/modeling/qxmiwriter.cpp @@ -0,0 +1,287 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtModeling module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include "qxmiwriter.h" +#include "qxmiwriter_p.h" +#include "qmetamodelplugin.h" + +#include <QtModeling/QModelingObject> + +#include <QtCore/QSet> +#include <QtCore/QDir> +#include <QtCore/QJsonObject> +#include <QtCore/QPluginLoader> +#include <QtCore/QMetaClassInfo> +#include <QtCore/QCoreApplication> +#include <QtCore/QRegularExpression> + +QT_BEGIN_NAMESPACE + +QXmiWriterPrivate::QXmiWriterPrivate(QObject *modelingObject) + : modelingObject(modelingObject) +{ + writer.setAutoFormatting(true); + writer.setAutoFormattingIndent(2); +} + +QXmiWriterPrivate::~QXmiWriterPrivate() +{ +} + +QXmiWriter::QXmiWriter(QObject *modelingObject, QObject *parent) : + QObject(*new QXmiWriterPrivate(modelingObject), parent) +{ + loadPlugins(); +} + +QXmiWriter::~QXmiWriter() +{ +} + +void QXmiWriter::loadPlugins() +{ + Q_D(QXmiWriter); + + d->metaModelPlugins.clear(); + QMetaModelPlugin *metaModelPlugin = 0; + foreach (QString pluginPath, QCoreApplication::libraryPaths()) { + QDir pluginsDir(pluginPath); + pluginsDir.cd(QString::fromLatin1("metamodels")); + foreach (QString fileName, pluginsDir.entryList(QDir::Files)) { + QPluginLoader loader(pluginsDir.absoluteFilePath(fileName)); + QObject *plugin = loader.instance(); + if (plugin && (metaModelPlugin = qobject_cast<QMetaModelPlugin *>(plugin))) + d->metaModelPlugins.insert(loader.metaData().value(QString::fromLatin1("MetaData")).toObject().value(QString::fromLatin1("MetaModelNamespaceUri")).toString(), QPair<QMetaModelPlugin *, QJsonObject>(metaModelPlugin, loader.metaData().value(QString::fromLatin1("MetaData")).toObject())); + } + } +} + +bool QXmiWriter::writeFile(QIODevice *device) +{ + Q_D(QXmiWriter); + d->writer.setDevice(device); + + d->writer.writeStartDocument(); + d->writer.writeStartElement(QString::fromLatin1("xmi:XMI")); + d->writer.writeNamespace(QString::fromLatin1("http://www.omg.org/spec/XMI/20110701"), QString::fromLatin1("xmi")); + + QString metaModelClassName = QString::fromLatin1(d->modelingObject->metaObject()->className()); + int pos = 2; + while (metaModelClassName[pos] == metaModelClassName[pos].toLower()) pos++; + QString metaModelImplementationNamespace = metaModelClassName.left(pos); + typedef QPair<QMetaModelPlugin *, QJsonObject> PluginData; + foreach (const PluginData &pair, d->metaModelPlugins.values()) { + if (pair.second.value(QString::fromLatin1("MetaModelPrefix")).toString() == metaModelImplementationNamespace) { + d->metaModelXmlNamespace = pair.second.value(QString::fromLatin1("MetaModelPrefix")).toString().mid(1).toLower(); + d->writer.writeNamespace(pair.second.value(QString::fromLatin1("MetaModelNamespaceUri")).toString(), d->metaModelXmlNamespace); + break; + } + } + + d->idMap.clear(); + d->idStack.clear(); + d->blacklistedOppositeEnds.clear(); + + d->visitedObjects.clear(); + populateIdMap(d->modelingObject); + d->visitedObjects.clear(); + writeObject(d->modelingObject); + + d->writer.writeEndDocument(); + return true; +} + +void QXmiWriter::populateIdMap(QObject *modelingObject, int index) +{ + Q_D(QXmiWriter); + + if (modelingObject->metaObject()->indexOfProperty("name") != -1) + d->idStack << modelingObject->property("name").toString(); + else + d->idStack << QString::fromLatin1(modelingObject->metaObject()->className()).remove(QString::fromLatin1(modelingObject->metaObject()->classInfo(modelingObject->metaObject()->indexOfClassInfo("MetaModelPrefix")).value())) + + QString::fromLatin1((index != -1) ? ".%1":"").arg(index); + d->idMap.insert(modelingObject, d->idStack.join(QString::fromLatin1("-"))); + d->visitedObjects.append(modelingObject); + + const QMetaObject *metaObject = modelingObject->metaObject(); + int propertyCount = metaObject->propertyCount(); + + for (int i = 0; i < propertyCount; ++i) { + QMetaProperty metaProperty = metaObject->property(i); + QString typeName = QString::fromLatin1(metaProperty.typeName()); + QVariant variant = metaProperty.read(modelingObject); + QString aggregationRole = QModelingObject::propertyData(metaProperty, QtModeling::AggregationRole).toString(); + + if (aggregationRole == QString::fromLatin1("composite")) + if (!QModelingObject::propertyData(metaProperty, QtModeling::OppositeEndRole).toString().isEmpty()) { + d->blacklistedOppositeEnds << QModelingObject::propertyData(metaProperty, QtModeling::OppositeEndRole).toString(); + } + + if (QModelingObject::propertyData(metaProperty, QtModeling::AggregationRole).toString() != QString::fromLatin1("composite")) + continue; + + if (typeName.endsWith('*') && qvariant_cast<QObject *>(variant)) + populateIdMap(qvariant_cast<QObject *>(variant), 0); + else if (typeName.contains(QString::fromLatin1("QSet")) && variant.isValid()) { + QSet<QObject *> elements = *(static_cast<QSet<QObject *> *>(variant.data())); + int i = 0; + foreach (QObject *objectElement, elements) { + if (!d->visitedObjects.contains(objectElement)) + populateIdMap(objectElement, i++); + } + } + else if (typeName.contains(QString::fromLatin1("QList")) && variant.isValid()) { + QList<QObject *> elements = *(static_cast<QList<QObject *> *>(variant.data())); + int i = 0; + foreach (QObject *objectElement, elements) { + if (!d->visitedObjects.contains(objectElement)) + populateIdMap(objectElement, i++); + } + } + } + + d->idStack.removeLast(); +} + +void QXmiWriter::writeObject(QObject *modelingObject, QString elementName) +{ + Q_D(QXmiWriter); + + if (d->visitedObjects.contains(modelingObject)) + return; + + d->visitedObjects.append(modelingObject); + + d->writer.writeStartElement(elementName.isEmpty() ? QString::fromLatin1(d->modelingObject->metaObject()->className()).split(QString::fromLatin1("::")).last().remove(QString::fromLatin1(modelingObject->metaObject()->classInfo(modelingObject->metaObject()->indexOfClassInfo("MetaModelPrefix")).value())).prepend(QString::fromLatin1("%1:").arg(d->metaModelXmlNamespace)) + : + elementName); + if (!elementName.isEmpty()) + d->writer.writeAttribute(QString::fromLatin1("xmi:type"), QString::fromLatin1(modelingObject->metaObject()->className()).remove(QString::fromLatin1(modelingObject->metaObject()->classInfo(modelingObject->metaObject()->indexOfClassInfo("MetaModelPrefix")).value())).prepend(QString::fromLatin1(modelingObject->metaObject()->classInfo(modelingObject->metaObject()->indexOfClassInfo("MetaModelPrefix")).value()).mid(1).toLower().append(QString::fromLatin1(":")))); + + const QMetaObject *metaObject = modelingObject->metaObject(); + int propertyCount = metaObject->propertyCount(); + + for (int i = propertyCount - 1; i >= 0; --i) { + QMetaProperty metaProperty = metaObject->property(i); + QVariant variant = metaProperty.read(modelingObject); + + if (!metaProperty.isStored() || QString::fromLatin1(metaProperty.name()) == QString::fromLatin1("objectName") || QModelingObject::propertyData(metaProperty, QtModeling::IsDerivedUnionRole).toBool()) + continue; + + if (metaProperty.type() == QVariant::String) { + QString value = variant.toString(); + if (!value.isEmpty()) + d->writer.writeAttribute(QString::fromLatin1(metaProperty.name()), value); + } + else if (metaProperty.type() == QVariant::Bool) { + //if (!metaProperty.isResettable() || (metaProperty.isResettable() && modelingObject->isPropertyModified(metaProperty))) + d->writer.writeAttribute(QString::fromLatin1(metaProperty.name()), QString::fromLatin1(variant.toBool() ? "true":"false")); + } + else if (metaProperty.isEnumType()) { + //if (!metaProperty.isResettable() || (metaProperty.isResettable() && modelingObject->isPropertyModified(metaProperty))) { + QMetaEnum metaEnum = metaProperty.enumerator(); + if (!QString::fromLatin1(metaEnum.key(variant.toInt())).isEmpty()) + d->writer.writeAttribute(QString::fromLatin1(metaProperty.name()), QString::fromLatin1(metaEnum.key(variant.toInt())).toLower().remove(QString::fromLatin1(metaProperty.name()))); + //} + } + } + + d->writer.writeAttribute(QString::fromLatin1("xmi:id"), d->idMap.value(modelingObject)); + for (int i = propertyCount - 1; i >= 0; --i) { + QMetaProperty metaProperty = metaObject->property(i); + + if (d->blacklistedOppositeEnds.contains(QString::fromLatin1("%1::%2").arg(QString::fromLatin1(metaObject->className())).arg(QString::fromLatin1(metaProperty.name()).remove(QRegularExpression(QString::fromLatin1("_$")))))) + continue; + + QString typeName = QString::fromLatin1(metaProperty.typeName()); + QVariant variant = metaProperty.read(modelingObject); + QString aggregationRole = QModelingObject::propertyData(metaProperty, QtModeling::AggregationRole).toString(); + QString modifiedPropertyName = QString::fromLatin1(metaProperty.name()).remove(QRegularExpression(QString::fromLatin1("_$"))).remove(QRegularExpression(QString::fromLatin1("s$"))).replace(QRegularExpression(QString::fromLatin1("ie$")), QString::fromLatin1("y")).replace(QRegularExpression(QString::fromLatin1("sse$")), QString::fromLatin1("ss")).replace(QRegularExpression(QString::fromLatin1("ice$")), QString::fromLatin1("ex")).replace(QRegularExpression(QString::fromLatin1("ce$")), QString::fromLatin1("x")); + + if (!metaProperty.isStored() || QModelingObject::propertyData(metaProperty, QtModeling::IsDerivedUnionRole).toBool()) + continue; + + if (typeName.endsWith('*') && qvariant_cast<QObject *>(variant)) { + if (aggregationRole == QString::fromLatin1("composite")) { + writeObject(qvariant_cast<QObject *>(variant), modifiedPropertyName); + } + else { + d->writer.writeStartElement(QString::fromLatin1(metaProperty.name())); + d->writer.writeAttribute(QString::fromLatin1("xmi:idref"), d->idMap.value(qvariant_cast<QObject *>(variant))); + d->writer.writeEndElement(); + } + } + else if (typeName.contains(QString::fromLatin1("QSet")) && variant.isValid()) { + QSet<QObject *> elements = *(static_cast<QSet<QObject *> *>(variant.data())); + if (aggregationRole == QString::fromLatin1("composite")) { + foreach (QObject *objectElement, elements) + writeObject(objectElement, modifiedPropertyName); + } + else { + foreach (QObject *objectElement, elements) { + d->writer.writeStartElement(QString::fromLatin1(metaProperty.name())); + d->writer.writeAttribute(QString::fromLatin1("xmi:idref"), d->idMap.value(objectElement)); + d->writer.writeEndElement(); + } + } + } + else if (typeName.contains(QString::fromLatin1("QList")) && variant.isValid()) { + QList<QObject *> elements = *(static_cast<QList<QObject *> *>(variant.data())); + if (aggregationRole == QString::fromLatin1("composite")) { + foreach (QObject *objectElement, elements) + writeObject(objectElement, modifiedPropertyName); + } + else { + foreach (QObject *objectElement, elements) { + d->writer.writeStartElement(QString::fromLatin1(metaProperty.name())); + d->writer.writeAttribute(QString::fromLatin1("xmi:idref"), d->idMap.value(objectElement)); + d->writer.writeEndElement(); + } + } + } + } + + d->writer.writeEndElement(); +} + +#include "moc_qxmiwriter.cpp" + +QT_END_NAMESPACE + diff --git a/src/modeling/qxmiwriter.h b/src/modeling/qxmiwriter.h new file mode 100644 index 00000000..93795e85 --- /dev/null +++ b/src/modeling/qxmiwriter.h @@ -0,0 +1,83 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtModeling module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#ifndef QTMODELING_QXMIWRITER_H +#define QTMODELING_QXMIWRITER_H + +#include <QtModeling/QtModelingGlobal> + +#include <QtCore/QObject> + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(QtModeling) + +class QIODevice; +class QObject; + +class QXmiWriterPrivate; + +class Q_MODELING_EXPORT QXmiWriter : public QObject +{ + Q_OBJECT + + Q_DISABLE_COPY(QXmiWriter) + Q_DECLARE_PRIVATE(QXmiWriter) + +public: + explicit QXmiWriter(QObject *modelingObject, QObject *parent = 0); + virtual ~QXmiWriter(); + + bool writeFile(QIODevice *device); + +protected: + void loadPlugins(); + void populateIdMap(QObject *modelingObject, int index = -1); + void writeObject(QObject *modelingObject, QString elementName = QStringLiteral("")); +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QTMODELING_QXMIWRITER_H + diff --git a/src/modeling/qxmiwriter_p.h b/src/modeling/qxmiwriter_p.h new file mode 100644 index 00000000..ae99d850 --- /dev/null +++ b/src/modeling/qxmiwriter_p.h @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtModeling module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#ifndef QTMODELING_QXMIWRITER_P_H +#define QTMODELING_QXMIWRITER_P_H + +#include "qtmodelingglobal.h" +#include "private/qobject_p.h" + +#include <QtCore/QStringList> +#include <QtCore/QXmlStreamWriter> + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(QtModeling) + +class QMetaModelPlugin; + +class Q_MODELING_EXPORT QXmiWriterPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QXmiWriter) + +public: + explicit QXmiWriterPrivate(QObject *modelingObject); + virtual ~QXmiWriterPrivate(); + + QObject *modelingObject; + QXmlStreamWriter writer; + QHash< QString, QPair<QMetaModelPlugin *, QJsonObject> > metaModelPlugins; + QObjectList visitedObjects; + QHash<QObject *, QString> idMap; + QStringList idStack; + QString metaModelXmlNamespace; + QStringList blacklistedOppositeEnds; +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QTMODELING_QXMIWRITER_P_H + diff --git a/src/modelingwidgets/doc/qtmodelingwidgets.qdocconf b/src/modelingwidgets/doc/qtmodelingwidgets.qdocconf new file mode 100644 index 00000000..fd4cc041 --- /dev/null +++ b/src/modelingwidgets/doc/qtmodelingwidgets.qdocconf @@ -0,0 +1,41 @@ +include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) + +project = QtModelingWidgets +description = Qt ModelingWidgets Reference Documentation +url = http://qt-project.org/doc/qtmodelingwidgets +version = 5.0.0 + +examplesinstallpath = modelingwidgets + +qhp.projects = QtModelingWidgets + +qhp.QtModelingWidgets.file = qtmodelingwidgets.qhp +qhp.QtModelingWidgets.namespace = org.qt-project.qtmodelingwidgets.500 +qhp.QtModelingWidgets.virtualFolder = qtmodelingwidgets +qhp.QtModelingWidgets.indexTitle = Qt ModelingWidgets +qhp.QtModelingWidgets.indexRoot = + +qhp.QtModelingWidgets.filterAttributes = qtmodelingwidgets 5.0.0 qtrefdoc +qhp.QtModelingWidgets.customFilters.Qt.name = QtModelingWidgets 5.0.0 +qhp.QtModelingWidgets.customFilters.Qt.filterAttributes = qtmodelingwidgets 5.0.0 + +qhp.QtModelingWidgets.subprojects = classes +qhp.QtModelingWidgets.subprojects.classes.title = C++ Classes +qhp.QtModelingWidgets.subprojects.classes.indexTitle = Qt ModelingWidgets C++ Classes +qhp.QtModelingWidgets.subprojects.classes.selectors = class fake:headerfile +qhp.QtModelingWidgets.subprojects.classes.sortPages = true +tagfile = ../../../doc/qtmodelingwidgets/qtmodelingwidgets.tags + +depends += qtcore modeling qtdoc + +headerdirs += .. + +sourcedirs += .. \ + ../../../examples/modelingwidgets/doc/src + +exampledirs += ../../../examples/modelingwidgets \ + ../ \ + snippets + +imagedirs += images \ + ../../../examples/modelingwidgets/doc/images diff --git a/src/wrappedobjectswidgets/doc/snippets/code/doc_src_qtwrappedobjects.cpp b/src/modelingwidgets/doc/snippets/code/doc_src_qtmodelingwidgets.cpp index a34d6bc9..d7a24615 100644 --- a/src/wrappedobjectswidgets/doc/snippets/code/doc_src_qtwrappedobjects.cpp +++ b/src/modelingwidgets/doc/snippets/code/doc_src_qtmodelingwidgets.cpp @@ -3,7 +3,7 @@ ** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> ** Contact: http://www.qt-project.org/legal ** -** This file is part of the QtWrappedObjectsWidgets module of the Qt Toolkit. +** This file is part of the QtModelingWidgets module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage @@ -39,5 +39,5 @@ ** ****************************************************************************/ //! [0] -#include <QtWrappedObjectsWidgets> +#include <QtModelingWidgets> //! [0] diff --git a/src/modelingwidgets/doc/snippets/code/doc_src_qtmodelingwidgets.pro b/src/modelingwidgets/doc/snippets/code/doc_src_qtmodelingwidgets.pro new file mode 100644 index 00000000..f98b6b53 --- /dev/null +++ b/src/modelingwidgets/doc/snippets/code/doc_src_qtmodelingwidgets.pro @@ -0,0 +1,3 @@ +#! [0] +QT += modelingwidgets +#! [0] diff --git a/src/wrappedobjectswidgets/doc/src/qtwrappedobjectswidgets.qdoc b/src/modelingwidgets/doc/src/qtmodelingwidgets.qdoc index cf0ada9b..e7a1d71c 100644 --- a/src/wrappedobjectswidgets/doc/src/qtwrappedobjectswidgets.qdoc +++ b/src/modelingwidgets/doc/src/qtmodelingwidgets.qdoc @@ -25,42 +25,42 @@ ** ****************************************************************************/ /*! - \page qtwrappedobjectswidgets-index.html - \title Qt WrappedObjectsWidgets - \brief Provide model and widget classes for use with QtWrappedObjects module. + \page qtmodelingwidgets-index.html + \title Qt ModelingWidgets + \brief Provide model and widget classes for use with QtModelingWidgets module. - Qt WrappedObjectsWidgets is an add-on module which provides model and widget classes for use with QtWrappedObjects module. + Qt ModelingWidgets is an add-on module which provides model and widget classes for use with QtModelingWidgets module. \section1 Getting Started - To enable Qt WrappedObjectsWidgets in a project, add this directive into the C++ files: + To enable Qt ModelingWidgets in a project, add this directive into the C++ files: \code - #include <QtWrappedObjectsWidgets> + #include <QtModelingWidgets> \endcode - To link against the Qt WrappedObjectsWidgets module, add this line to the project file: + To link against the Qt ModelingWidgets module, add this line to the project file: \code - QT += wrappedobjectswidgets + QT += modelingwidgets \endcode \section1 Reference These are links to the API reference materials. \list - \li \l{Qt WrappedObjectsWidgets Module C++ Classes}{C++ classes} + \li \l{Qt ModelingWidgets Module C++ Classes}{C++ classes} \endlist */ /*! - \module QtWrappedObjectsWidgets - \title Qt WrappedObjectsWidgets Module C++ Classes + \module QtModelingWidgets + \title Qt ModelingWidgets Module C++ Classes \ingroup modules - \brief Provide model and widget classes for use with QtWrappedObjects module. + \brief Provide model and widget classes for use with QtModelingWidgets module. To include the definitions of the module's classes, use the following directive: - \snippet code/doc_src_qtwrappedobjectswidgets.cpp 0 + \snippet code/doc_src_qtmodelingwidgets.cpp 0 To link against the module, add this line to your \l qmake \c .pro file: - \snippet code/doc_src_qtwrappedobjectswidgets.pro 0 + \snippet code/doc_src_qtmodelingwidgets.pro 0 */ diff --git a/src/wrappedobjectswidgets/internal/filterwidget.cpp b/src/modelingwidgets/internal/filterwidget.cpp index ba5c9eb3..ba5c9eb3 100644 --- a/src/wrappedobjectswidgets/internal/filterwidget.cpp +++ b/src/modelingwidgets/internal/filterwidget.cpp diff --git a/src/wrappedobjectswidgets/internal/filterwidget_p.h b/src/modelingwidgets/internal/filterwidget_p.h index b34921c6..b34921c6 100644 --- a/src/wrappedobjectswidgets/internal/filterwidget_p.h +++ b/src/modelingwidgets/internal/filterwidget_p.h diff --git a/src/wrappedobjectswidgets/internal/propertyeditor.cpp b/src/modelingwidgets/internal/propertyeditor.cpp index f4282d4c..f4282d4c 100644 --- a/src/wrappedobjectswidgets/internal/propertyeditor.cpp +++ b/src/modelingwidgets/internal/propertyeditor.cpp diff --git a/src/wrappedobjectswidgets/internal/propertyeditor_p.h b/src/modelingwidgets/internal/propertyeditor_p.h index 2f61c754..2f61c754 100644 --- a/src/wrappedobjectswidgets/internal/propertyeditor_p.h +++ b/src/modelingwidgets/internal/propertyeditor_p.h diff --git a/src/wrappedobjectswidgets/internal/propertyeditoritemdelegate.cpp b/src/modelingwidgets/internal/propertyeditoritemdelegate.cpp index e0fc9e04..e0fc9e04 100644 --- a/src/wrappedobjectswidgets/internal/propertyeditoritemdelegate.cpp +++ b/src/modelingwidgets/internal/propertyeditoritemdelegate.cpp diff --git a/src/wrappedobjectswidgets/internal/propertyeditoritemdelegate_p.h b/src/modelingwidgets/internal/propertyeditoritemdelegate_p.h index 13de33f6..13de33f6 100644 --- a/src/wrappedobjectswidgets/internal/propertyeditoritemdelegate_p.h +++ b/src/modelingwidgets/internal/propertyeditoritemdelegate_p.h diff --git a/src/modelingwidgets/modelingwidgets.pro b/src/modelingwidgets/modelingwidgets.pro new file mode 100644 index 00000000..a6962c69 --- /dev/null +++ b/src/modelingwidgets/modelingwidgets.pro @@ -0,0 +1,37 @@ +load(qt_build_config) + +TARGET = QtModelingWidgets +QT = core-private widgets-private modeling + +QMAKE_DOCS = $$PWD/doc/qtmodelingwidgets.qdocconf + +load(qt_module) + +PUBLIC_HEADERS += \ + qmodelingobjectview.h \ + qmodelingobjectmodel.h \ + qtmodelingwidgetsglobal.h \ + qmodelingobjectpropertymodel.h +# qmodelingobjectpropertyeditor.h \ +# qmodelingobjectpropertyfiltermodel.h \ + +PRIVATE_HEADERS += \ + qmodelingobjectview_p.h \ + qmodelingobjectmodel_p.h \ + qmodelingobjectpropertymodel_p.h +# qmodelingobjectpropertyeditor_p.h \ +# internal/propertyeditoritemdelegate_p.h \ +# internal/filterwidget_p.h \ +# internal/propertyeditor_p.h + +SOURCES += \ + qmodelingobjectview.cpp \ + qmodelingobjectmodel.cpp \ + qmodelingobjectpropertymodel.cpp +# qmodelingobjectpropertyeditor.cpp \ +# qmodelingobjectpropertyfiltermodel.cpp \ +# internal/filterwidget.cpp \ +# internal/propertyeditor.cpp \ +# internal/propertyeditoritemdelegate.cpp + +HEADERS += $$PUBLIC_HEADERS $$PRIVATE_HEADERS diff --git a/src/modelingwidgets/qmodelingobjectmodel.cpp b/src/modelingwidgets/qmodelingobjectmodel.cpp new file mode 100644 index 00000000..51b26650 --- /dev/null +++ b/src/modelingwidgets/qmodelingobjectmodel.cpp @@ -0,0 +1,211 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtModelingWidgets module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include "qmodelingobjectmodel.h" +#include "qmodelingobjectmodel_p.h" + +#include <QtGui/QFont> +#include <QtWidgets/QApplication> + +#include <QtModeling/QtModelingNamespace> + +QT_BEGIN_NAMESPACE + +QModelingObjectModelPrivate::QModelingObjectModelPrivate() +{ +} + +QModelingObjectModel::QModelingObjectModel(QObject *parent) : + QAbstractItemModel(*new QModelingObjectModelPrivate, parent) +{ +} + +void QModelingObjectModel::addModelingObject(QObject *modelingObject) +{ + Q_D(QModelingObjectModel); + + if (modelingObject && !d->modelingObjects.contains(modelingObject)) { + beginResetModel(); + d->modelingObjects.append(modelingObject); + endResetModel(); + } +} + +QObjectList QModelingObjectModel::modelingObjects() const +{ + Q_D(const QModelingObjectModel); + + return d->modelingObjects; +} + +QModelIndex QModelingObjectModel::index(int row, int column, const QModelIndex &parent) const +{ + Q_D(const QModelingObjectModel); + + if (d->modelingObjects.isEmpty() || row < 0 || column < 0 || column >= 2 || (parent.isValid() && parent.column() != 0)) + return QModelIndex(); + + if (!parent.isValid()) + return createIndex(row, column, static_cast<void *>(d->modelingObjects.at(row))); + + QObject *modelingObject = static_cast<QObject *>(parent.internalPointer()); + if (!modelingObject) + return QModelIndex(); + + return createIndex(row, column, static_cast<void *>(modelingObject->children().at(row))); +} + +QModelIndex QModelingObjectModel::parent(const QModelIndex &child) const +{ + Q_D(const QModelingObjectModel); + + QObject *modelingObject = static_cast<QObject *>(child.internalPointer()); + if (d->modelingObjects.isEmpty() || !child.isValid() || !modelingObject) + return QModelIndex(); + + QObject *parentModelingObject = dynamic_cast<QObject *>(modelingObject->parent()); + if (!parentModelingObject) + return QModelIndex(); + + QObject *grandParentModelingObject = dynamic_cast<QObject *>(parentModelingObject->parent()); + if (!grandParentModelingObject) + return createIndex(0, 0, parentModelingObject); + + return createIndex(grandParentModelingObject->children().indexOf(parentModelingObject), 0, static_cast<void *>(parentModelingObject)); +} + +int QModelingObjectModel::rowCount(const QModelIndex &parent) const +{ + Q_D(const QModelingObjectModel); + + if (d->modelingObjects.isEmpty() || (parent.isValid() && parent.column() != 0)) + return 0; + + if (parent.row() == -1) + return d->modelingObjects.count(); + + QObject *modelingObject = static_cast<QObject *>(parent.internalPointer()); + if (!modelingObject) + return 0; + + return modelingObject->children().size(); +} + +int QModelingObjectModel::columnCount(const QModelIndex &parent) const +{ + Q_D(const QModelingObjectModel); + + return (d->modelingObjects.isEmpty() || (parent.isValid() && parent.column() != 0)) ? 0:2; +} + +QVariant QModelingObjectModel::data(const QModelIndex &index, int role) const +{ + Q_D(const QModelingObjectModel); + + if (d->modelingObjects.isEmpty() || index.column() < 0 || index.column() >= 2) + return QVariant(); + switch (role) { + case Qt::DisplayRole: + case Qt::EditRole: { + QObject *modelingObject = static_cast<QObject *>(index.internalPointer()); + QString elementRole = QString::fromLatin1(""); + if (modelingObject->property("role").value<QtModeling::ModelingObjectRole>() == QtModeling::ImportedElementRole) + elementRole = QString::fromLatin1(" (imported element)"); + else if (modelingObject->property("role").value<QtModeling::ModelingObjectRole>() == QtModeling::ImportedPackageRole) + elementRole = QString::fromLatin1(" (imported package)"); + else if (modelingObject->property("role").value<QtModeling::ModelingObjectRole>() == QtModeling::AppliedProfileRole) + elementRole = QString::fromLatin1(" (applied profile)"); + return index.column() == 0 ? modelingObject->objectName()+elementRole:QString::fromLatin1(modelingObject->metaObject()->className()); + } + case Qt::FontRole: { + QFont font = QApplication::font(); + QObject *modelingObject = static_cast<QObject *>(index.internalPointer()); + if (index.parent().row() == -1 && modelingObject->property("role").value<QtModeling::ModelingObjectRole>() == QtModeling::ModelElementRole) + font.setBold(true); + return font; + } + case Qt::UserRole: { + return qVariantFromValue(static_cast<QObject *>(index.internalPointer())); + } + } + return QVariant(); +} + +bool QModelingObjectModel::setData(const QModelIndex &index, const QVariant &value, int role) +{ + return QAbstractItemModel::setData(index, value, role); +} + +QVariant QModelingObjectModel::headerData(int section, Qt::Orientation orientation, int role) const +{ + if ((section == 0 || section == 1) && orientation == Qt::Horizontal && role == Qt::DisplayRole) + return QString::fromLatin1(section == 0 ? "Object":"Class"); + return QVariant(); +} + +Qt::ItemFlags QModelingObjectModel::flags(const QModelIndex &index) const +{ + return QAbstractItemModel::flags(index); +} + +void QModelingObjectModel::updateIndex(const QModelIndex &index) +{ + if (!index.isValid()) { + beginResetModel(); + //emit layoutChanged(); + endResetModel(); + } + else + emit dataChanged(index, index, QVector<int>() << Qt::DisplayRole); +} + +void QModelingObjectModel::clear() +{ + Q_D(QModelingObjectModel); + + foreach (QObject *object, d->modelingObjects) + delete object; + d->modelingObjects.clear(); +} + +#include "moc_qmodelingobjectmodel.cpp" + +QT_END_NAMESPACE + diff --git a/src/wrappedobjectswidgets/qwrappedobjectmodel.h b/src/modelingwidgets/qmodelingobjectmodel.h index 21b55f31..670ef2bb 100644 --- a/src/wrappedobjectswidgets/qwrappedobjectmodel.h +++ b/src/modelingwidgets/qmodelingobjectmodel.h @@ -3,7 +3,7 @@ ** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> ** Contact: http://www.qt-project.org/legal ** -** This file is part of the QtWrappedObjectsWidgets module of the Qt Toolkit. +** This file is part of the QtModelingWidgets module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage @@ -38,10 +38,10 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#ifndef QWRAPPEDOBJECTMODEL_H -#define QWRAPPEDOBJECTMODEL_H +#ifndef QMODELINGOBJECTMODEL_H +#define QMODELINGOBJECTMODEL_H -#include <QtWrappedObjectsWidgets/QtWrappedObjectsWidgetsGlobal> +#include <QtModelingWidgets/QtModelingWidgetsGlobal> #include <QtCore/QAbstractItemModel> @@ -49,23 +49,21 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -QT_MODULE(QtWrappedObjectsWidgets) +QT_MODULE(QtModelingWidgets) -class QWrappedObject; +class QModelingObjectModelPrivate; -class QWrappedObjectModelPrivate; - -class Q_WRAPPEDOBJECTSWIDGETS_EXPORT QWrappedObjectModel : public QAbstractItemModel +class Q_MODELINGWIDGETS_EXPORT QModelingObjectModel : public QAbstractItemModel { Q_OBJECT - Q_DISABLE_COPY(QWrappedObjectModel) - Q_DECLARE_PRIVATE(QWrappedObjectModel) + Q_DISABLE_COPY(QModelingObjectModel) + Q_DECLARE_PRIVATE(QModelingObjectModel) public: - explicit QWrappedObjectModel(QObject *parent = 0); + explicit QModelingObjectModel(QObject *parent = 0); - QList<QWrappedObject *> wrappedObjects() const; + QList<QObject *> modelingObjects() const; virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; virtual QModelIndex parent(const QModelIndex &child) const; @@ -77,7 +75,7 @@ public: Qt::ItemFlags flags(const QModelIndex &index) const; public Q_SLOTS: - void addWrappedObject(QWrappedObject *wrappedObjects); + void addModelingObject(QObject *modelingObject); void updateIndex(const QModelIndex &index); void clear(); }; @@ -86,5 +84,5 @@ QT_END_NAMESPACE QT_END_HEADER -#endif // QWRAPPEDOBJECTMODEL_H +#endif // QMODELINGOBJECTMODEL_H diff --git a/src/wrappedobjectswidgets/qwrappedobjectmodel_p.h b/src/modelingwidgets/qmodelingobjectmodel_p.h index cc7a318e..d4da5b57 100644 --- a/src/wrappedobjectswidgets/qwrappedobjectmodel_p.h +++ b/src/modelingwidgets/qmodelingobjectmodel_p.h @@ -3,7 +3,7 @@ ** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> ** Contact: http://www.qt-project.org/legal ** -** This file is part of the QtWrappedObjectsWidgets module of the Qt Toolkit. +** This file is part of the QtModelingWidgets module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage @@ -38,31 +38,31 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#ifndef QWRAPPEDOBJECTMODEL_P_H -#define QWRAPPEDOBJECTMODEL_P_H +#ifndef QMODELINGOBJECTMODEL_P_H +#define QMODELINGOBJECTMODEL_P_H -#include "qtwrappedobjectswidgetsglobal.h" +#include "qtmodelingwidgetsglobal.h" #include "private/qabstractitemmodel_p.h" QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -QT_MODULE(QtWrappedObjectsWidgets) +QT_MODULE(QtModelingWidgets) -class Q_WRAPPEDOBJECTSWIDGETS_EXPORT QWrappedObjectModelPrivate : public QAbstractItemModelPrivate +class Q_MODELINGWIDGETS_EXPORT QModelingObjectModelPrivate : public QAbstractItemModelPrivate { - Q_DECLARE_PUBLIC(QWrappedObjectModel) + Q_DECLARE_PUBLIC(QModelingObjectModel) public: - explicit QWrappedObjectModelPrivate(); + explicit QModelingObjectModelPrivate(); - QList<QWrappedObject *> wrappedObjects; + QObjectList modelingObjects; }; QT_END_NAMESPACE QT_END_HEADER -#endif // QWRAPPEDOBJECTMODEL_P_H +#endif // QMODELINGOBJECTMODEL_P_H diff --git a/src/wrappedobjectswidgets/qwrappedobjectpropertyeditor.cpp b/src/modelingwidgets/qmodelingobjectpropertyeditor.cpp index 28ccaa6c..14be9059 100644 --- a/src/wrappedobjectswidgets/qwrappedobjectpropertyeditor.cpp +++ b/src/modelingwidgets/qmodelingobjectpropertyeditor.cpp @@ -3,7 +3,7 @@ ** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> ** Contact: http://www.qt-project.org/legal ** -** This file is part of the QtWrappedObjectsWidgets module of the Qt Toolkit. +** This file is part of the QtModelingWidgets module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage @@ -38,10 +38,10 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#include "qwrappedobjectpropertyeditor.h" -#include "qwrappedobjectpropertyeditor_p.h" -#include "qwrappedobjectpropertymodel.h" -#include "qwrappedobjectpropertyfiltermodel.h" +#include "qmodelingobjectpropertyeditor.h" +#include "qmodelingobjectpropertyeditor_p.h" +#include "qmodelingobjectpropertymodel.h" +#include "qmodelingobjectpropertyfiltermodel.h" #include "internal/filterwidget_p.h" #include "internal/propertyeditoritemdelegate_p.h" @@ -50,19 +50,19 @@ QT_BEGIN_NAMESPACE -QWrappedObjectPropertyEditorPrivate::QWrappedObjectPropertyEditorPrivate() : +QModelingObjectPropertyEditorPrivate::QModelingObjectPropertyEditorPrivate() : label(new QLabel), treeView(new QTreeView), filter(new FilterWidget), - proxyModel(new QWrappedObjectPropertyFilterModel(q_func())), + proxyModel(new QModelingObjectPropertyFilterModel(q_func())), propertyModel(0) { } -QWrappedObjectPropertyEditor::QWrappedObjectPropertyEditor(QWidget *parent, Qt::WindowFlags f) : - QWidget(*new QWrappedObjectPropertyEditorPrivate, parent, f) +QModelingObjectPropertyEditor::QModelingObjectPropertyEditor(QWidget *parent, Qt::WindowFlags f) : + QWidget(*new QModelingObjectPropertyEditorPrivate, parent, f) { - Q_D(QWrappedObjectPropertyEditor); + Q_D(QModelingObjectPropertyEditor); d->treeView->setMinimumSize(QSize(350, 0)); d->treeView->setEditTriggers(QAbstractItemView::AllEditTriggers); @@ -88,49 +88,49 @@ QWrappedObjectPropertyEditor::QWrappedObjectPropertyEditor(QWidget *parent, Qt:: connect(d->filter, &FilterWidget::filterChanged, d->proxyModel, static_cast<void (QSortFilterProxyModel::*)(const QString &)>(&QSortFilterProxyModel::setFilterRegExp)); - connect(d->filter, &FilterWidget::filterChanged, this, &QWrappedObjectPropertyEditor::filterChanged); + connect(d->filter, &FilterWidget::filterChanged, this, &QModelingObjectPropertyEditor::filterChanged); } -void QWrappedObjectPropertyEditor::setModel(QWrappedObjectPropertyModel *propertyModel) +void QModelingObjectPropertyEditor::setModel(QModelingObjectPropertyModel *propertyModel) { - Q_D(QWrappedObjectPropertyEditor); + Q_D(QModelingObjectPropertyEditor); if (d->propertyModel) disconnect(d->propertyModel, 0, this, 0); d->propertyModel = propertyModel; d->proxyModel->setSourceModel(d->propertyModel); if (propertyModel) { - connect(propertyModel, &QAbstractItemModel::modelReset, this, &QWrappedObjectPropertyEditor::modelReset); + connect(propertyModel, &QAbstractItemModel::modelReset, this, &QModelingObjectPropertyEditor::modelReset); } } -QWrappedObjectPropertyModel *QWrappedObjectPropertyEditor::model() const +QModelingObjectPropertyModel *QModelingObjectPropertyEditor::model() const { - Q_D(const QWrappedObjectPropertyEditor); + Q_D(const QModelingObjectPropertyEditor); return d->propertyModel; } -void QWrappedObjectPropertyEditor::filterChanged() +void QModelingObjectPropertyEditor::filterChanged() { - Q_D(QWrappedObjectPropertyEditor); + Q_D(QModelingObjectPropertyEditor); d->treeView->expandAll(); d->treeView->resizeColumnToContents(0); d->treeView->resizeColumnToContents(1); } -void QWrappedObjectPropertyEditor::modelReset() +void QModelingObjectPropertyEditor::modelReset() { - Q_D(QWrappedObjectPropertyEditor); + Q_D(QModelingObjectPropertyEditor); - d->label->setText(QString::fromLatin1("%1: %2").arg(d->propertyModel->wrappedObject()->objectName()).arg(QString::fromLatin1(d->propertyModel->wrappedObject()->metaObject()->className()))); + d->label->setText(QString::fromLatin1("%1: %2").arg(d->propertyModel->modelingObject()->objectName()).arg(QString::fromLatin1(d->propertyModel->modelingObject()->metaObject()->className()))); d->treeView->expandAll(); d->treeView->resizeColumnToContents(0); d->treeView->resizeColumnToContents(1); } -#include "moc_qwrappedobjectpropertyeditor.cpp" +#include "moc_qmodelingobjectpropertyeditor.cpp" QT_END_NAMESPACE diff --git a/src/wrappedobjectswidgets/qwrappedobjectpropertyeditor.h b/src/modelingwidgets/qmodelingobjectpropertyeditor.h index ed347a79..79e6eacf 100644 --- a/src/wrappedobjectswidgets/qwrappedobjectpropertyeditor.h +++ b/src/modelingwidgets/qmodelingobjectpropertyeditor.h @@ -3,7 +3,7 @@ ** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> ** Contact: http://www.qt-project.org/legal ** -** This file is part of the QtWrappedObjectsWidgets module of the Qt Toolkit. +** This file is part of the QtModelingWidgets module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage @@ -38,10 +38,10 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#ifndef QWRAPPEDOBJECTPROPERTYEDITOR_H -#define QWRAPPEDOBJECTPROPERTYEDITOR_H +#ifndef QMODELINGOBJECTPROPERTYEDITOR_H +#define QMODELINGOBJECTPROPERTYEDITOR_H -#include <QtWrappedObjectsWidgets/QtWrappedObjectsWidgetsGlobal> +#include <QtModelingWidgets/QtModelingWidgetsGlobal> #include <QtWidgets/QWidget> @@ -49,26 +49,26 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -QT_MODULE(QtWrappedObjectsWidgets) +QT_MODULE(QtModelingWidgets) -class QWrappedObjectPropertyModel; +class QModelingObjectPropertyModel; -class QWrappedObjectPropertyEditorPrivate; +class QModelingObjectPropertyEditorPrivate; -class Q_WRAPPEDOBJECTSWIDGETS_EXPORT QWrappedObjectPropertyEditor : public QWidget +class Q_MODELINGOBJECTSWIDGETS_EXPORT QModelingObjectPropertyEditor : public QWidget { Q_OBJECT - Q_DISABLE_COPY(QWrappedObjectPropertyEditor) - Q_DECLARE_PRIVATE(QWrappedObjectPropertyEditor) + Q_DISABLE_COPY(QModelingObjectPropertyEditor) + Q_DECLARE_PRIVATE(QModelingObjectPropertyEditor) public: - explicit QWrappedObjectPropertyEditor(QWidget *parent = 0, Qt::WindowFlags f = 0); + explicit QModelingObjectPropertyEditor(QWidget *parent = 0, Qt::WindowFlags f = 0); - QWrappedObjectPropertyModel *model() const; + QModelingObjectPropertyModel *model() const; public Q_SLOTS: - void setModel(QWrappedObjectPropertyModel *model); + void setModel(QModelingObjectPropertyModel *model); private Q_SLOTS: void filterChanged(); @@ -79,5 +79,5 @@ QT_END_NAMESPACE QT_END_HEADER -#endif // QWRAPPEDOBJECTPROPERTYEDITOR_H +#endif // QMODELINGOBJECTPROPERTYEDITOR_H diff --git a/src/wrappedobjectswidgets/qwrappedobjectpropertyeditor_p.h b/src/modelingwidgets/qmodelingobjectpropertyeditor_p.h index b50de69b..62be9a14 100644 --- a/src/wrappedobjectswidgets/qwrappedobjectpropertyeditor_p.h +++ b/src/modelingwidgets/qmodelingobjectpropertyeditor_p.h @@ -3,7 +3,7 @@ ** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> ** Contact: http://www.qt-project.org/legal ** -** This file is part of the QtWrappedObjectsWidgets module of the Qt Toolkit. +** This file is part of the QtModelingWidgets module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage @@ -38,13 +38,13 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#ifndef QWRAPPEDOBJECTPROPERTYEDITOR_P_H -#define QWRAPPEDOBJECTPROPERTYEDITOR_P_H +#ifndef QMODELINGOBJECTPROPERTYEDITOR_P_H +#define QMODELINGOBJECTPROPERTYEDITOR_P_H #include "qtwrappedobjectswidgetsglobal.h" #include "private/qwidget_p.h" -#include <QtWrappedObjects/QWrappedObject> +#include <QtModeling/QModelingObject> #include <QtWidgets/QHBoxLayout> @@ -52,32 +52,32 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -QT_MODULE(QtWrappedObjectsWidgets) +QT_MODULE(QtModelingWidgets) class QLabel; class QTreeView; -class QWrappedObjectPropertyModel; -class QWrappedObjectPropertyFilterModel; +class QModelingObjectPropertyModel; +class QModelingObjectPropertyFilterModel; class FilterWidget; -class Q_WRAPPEDOBJECTSWIDGETS_EXPORT QWrappedObjectPropertyEditorPrivate : public QWidgetPrivate +class Q_MODELINGOBJECTSWIDGETS_EXPORT QModelingObjectPropertyEditorPrivate : public QWidgetPrivate { - Q_DECLARE_PUBLIC(QWrappedObjectPropertyEditor) + Q_DECLARE_PUBLIC(QModelingObjectPropertyEditor) public: - explicit QWrappedObjectPropertyEditorPrivate(); + explicit QModelingObjectPropertyEditorPrivate(); QLabel *label; QTreeView *treeView; FilterWidget *filter; - QWrappedObjectPropertyFilterModel *proxyModel; - QWrappedObjectPropertyModel *propertyModel; + QModelingObjectPropertyFilterModel *proxyModel; + QModelingObjectPropertyModel *propertyModel; }; QT_END_NAMESPACE QT_END_HEADER -#endif // QWRAPPEDOBJECTPROPERTYEDITOR_P_H +#endif // QMODELINGOBJECTPROPERTYEDITOR_P_H diff --git a/src/wrappedobjectswidgets/qwrappedobjectpropertyfiltermodel.cpp b/src/modelingwidgets/qmodelingobjectpropertyfiltermodel.cpp index 6a213b76..69bb7467 100644 --- a/src/wrappedobjectswidgets/qwrappedobjectpropertyfiltermodel.cpp +++ b/src/modelingwidgets/qmodelingobjectpropertyfiltermodel.cpp @@ -3,7 +3,7 @@ ** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> ** Contact: http://www.qt-project.org/legal ** -** This file is part of the QtWrappedObjectsWidgets module of the Qt Toolkit. +** This file is part of the QtModelingWidgets module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage @@ -38,16 +38,16 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#include "qwrappedobjectpropertyfiltermodel.h" +#include "qmodelingobjectpropertyfiltermodel.h" QT_BEGIN_NAMESPACE -QWrappedObjectPropertyFilterModel::QWrappedObjectPropertyFilterModel(QObject *parent) : +QModelingObjectPropertyFilterModel::QModelingObjectPropertyFilterModel(QObject *parent) : QSortFilterProxyModel(parent) { } -bool QWrappedObjectPropertyFilterModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const +bool QModelingObjectPropertyFilterModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const { int rows; QModelIndex sourceIndex = sourceModel()->index(sourceRow, 0, sourceParent); @@ -62,7 +62,7 @@ bool QWrappedObjectPropertyFilterModel::filterAcceptsRow(int sourceRow, const QM } } -#include "moc_qwrappedobjectpropertyfiltermodel.cpp" +#include "moc_qmodelingobjectpropertyfiltermodel.cpp" QT_END_NAMESPACE diff --git a/src/wrappedobjectswidgets/qwrappedobjectpropertyfiltermodel.h b/src/modelingwidgets/qmodelingobjectpropertyfiltermodel.h index b9815d91..77f2a779 100644 --- a/src/wrappedobjectswidgets/qwrappedobjectpropertyfiltermodel.h +++ b/src/modelingwidgets/qmodelingobjectpropertyfiltermodel.h @@ -3,7 +3,7 @@ ** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> ** Contact: http://www.qt-project.org/legal ** -** This file is part of the QtWrappedObjectsWidgets module of the Qt Toolkit. +** This file is part of the QtModelingWidgets module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage @@ -38,10 +38,10 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#ifndef QWRAPPEDOBJECTPROPERTYFILTERMODEL_H -#define QWRAPPEDOBJECTPROPERTYFILTERMODEL_H +#ifndef QMODELINGOBJECTPROPERTYFILTERMODEL_H +#define QMODELINGOBJECTPROPERTYFILTERMODEL_H -#include <QtWrappedObjectsWidgets/QtWrappedObjectsWidgetsGlobal> +#include <QtModelingWidgets/QtModelingWidgetsGlobal> #include <QtCore/QSortFilterProxyModel> @@ -49,13 +49,13 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -QT_MODULE(QtWrappedObjectsWidgets) +QT_MODULE(QtModelingWidgets) -class Q_WRAPPEDOBJECTSWIDGETS_EXPORT QWrappedObjectPropertyFilterModel : public QSortFilterProxyModel +class Q_MODELINGOBJECTSWIDGETS_EXPORT QModelingObjectPropertyFilterModel : public QSortFilterProxyModel { Q_OBJECT public: - explicit QWrappedObjectPropertyFilterModel(QObject *parent = 0); + explicit QModelingObjectPropertyFilterModel(QObject *parent = 0); protected: bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const; @@ -65,5 +65,5 @@ QT_END_NAMESPACE QT_END_HEADER -#endif // QWRAPPEDOBJECTPROPERTYFILTERMODEL_H +#endif // QMODELINGOBJECTPROPERTYFILTERMODEL_H diff --git a/src/wrappedobjectswidgets/qwrappedobjectpropertymodel.cpp b/src/modelingwidgets/qmodelingobjectpropertymodel.cpp index 95ddd1f6..051d38ee 100644 --- a/src/wrappedobjectswidgets/qwrappedobjectpropertymodel.cpp +++ b/src/modelingwidgets/qmodelingobjectpropertymodel.cpp @@ -3,7 +3,7 @@ ** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> ** Contact: http://www.qt-project.org/legal ** -** This file is part of the QtWrappedObjectsWidgets module of the Qt Toolkit. +** This file is part of the QtModelingWidgets module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage @@ -38,11 +38,10 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#include "qwrappedobjectpropertymodel.h" -#include "qwrappedobjectpropertymodel_p.h" +#include "qmodelingobjectpropertymodel.h" +#include "qmodelingobjectpropertymodel_p.h" -#include <QtWrappedObjects/QWrappedObject> -#include <QtWrappedObjects/QMetaPropertyInfo> +#include <QtModeling/QModelingObject> #include <QtGui/QFontMetrics> @@ -50,70 +49,70 @@ QT_BEGIN_NAMESPACE -QWrappedObjectPropertyModelPrivate::QWrappedObjectPropertyModelPrivate() : - wrappedObject(0), metaWrappedObject(0) +QModelingObjectPropertyModelPrivate::QModelingObjectPropertyModelPrivate() : + modelingObject(0), modelingMetaObject(0) { } -QWrappedObjectPropertyModel::QWrappedObjectPropertyModel(QObject *parent) : - QAbstractItemModel(*new QWrappedObjectPropertyModelPrivate, parent) +QModelingObjectPropertyModel::QModelingObjectPropertyModel(QObject *parent) : + QAbstractItemModel(*new QModelingObjectPropertyModelPrivate, parent) { } -void QWrappedObjectPropertyModel::setWrappedObject(QWrappedObject *wrappedObject, QModelIndex index) +void QModelingObjectPropertyModel::setModelingObject(QObject *modelingObject, QModelIndex index) { - Q_D(QWrappedObjectPropertyModel); + Q_D(QModelingObjectPropertyModel); - if (wrappedObject && d->metaWrappedObject != wrappedObject->metaWrappedObject()) { + if (modelingObject && d->modelingMetaObject != modelingObject->metaObject()) { beginResetModel(); - d->wrappedObject = wrappedObject; - d->metaWrappedObject = d->wrappedObject->metaWrappedObject(); - d->wrappedObjectIndex = index; + d->modelingObject = modelingObject; + d->modelingMetaObject = d->modelingObject->metaObject(); + d->modelingObjectIndex = index; endResetModel(); } } -QModelIndex QWrappedObjectPropertyModel::index(int row, int column, const QModelIndex &parent) const +QModelIndex QModelingObjectPropertyModel::index(int row, int column, const QModelIndex &parent) const { - Q_D(const QWrappedObjectPropertyModel); + Q_D(const QModelingObjectPropertyModel); - if (!d->metaWrappedObject || row < 0 || column < 0 || column >= 2 || (parent.isValid() && parent.column() != 0)) + if (!d->modelingMetaObject || row < 0 || column < 0 || column >= 2 || (parent.isValid() && parent.column() != 0)) return QModelIndex(); - return createIndex(row, column, (parent.isValid()) ? static_cast<void *>(&d->metaWrappedObject->property(parent.row(), row)):0); + return createIndex(row, column, (parent.isValid()) ? static_cast<void *>(&d->modelingMetaObject->property(parent.row(), row)):0); } -QModelIndex QWrappedObjectPropertyModel::parent(const QModelIndex &child) const +QModelIndex QModelingObjectPropertyModel::parent(const QModelIndex &child) const { - Q_D(const QWrappedObjectPropertyModel); + Q_D(const QModelingObjectPropertyModel); QMetaPropertyInfo *metaPropertyInfo = static_cast<QMetaPropertyInfo *>(child.internalPointer()); - if (!d->metaWrappedObject || !child.isValid() || !metaPropertyInfo) + if (!d->modelingMetaObject || !child.isValid() || !metaPropertyInfo) return QModelIndex(); - return createIndex(d->metaWrappedObject->indexOfGroup(metaPropertyInfo->propertyMetaObject->className()), 0); + return createIndex(d->modelingMetaObject->indexOfGroup(metaPropertyInfo->propertyMetaObject->className()), 0); } -int QWrappedObjectPropertyModel::rowCount(const QModelIndex &parent) const +int QModelingObjectPropertyModel::rowCount(const QModelIndex &parent) const { - Q_D(const QWrappedObjectPropertyModel); + Q_D(const QModelingObjectPropertyModel); - if (!d->metaWrappedObject || (parent.isValid() && parent.column() != 0)) + if (!d->modelingMetaObject || (parent.isValid() && parent.column() != 0)) return 0; - return (parent.row() == -1) ? d->metaWrappedObject->propertyGroupCount(): - (!parent.internalPointer()) ? d->metaWrappedObject->propertyCount(parent.row()):0; + return (parent.row() == -1) ? d->modelingMetaObject->propertyGroupCount(): + (!parent.internalPointer()) ? d->modelingMetaObject->propertyCount(parent.row()):0; } -int QWrappedObjectPropertyModel::columnCount(const QModelIndex &parent) const +int QModelingObjectPropertyModel::columnCount(const QModelIndex &parent) const { - Q_D(const QWrappedObjectPropertyModel); + Q_D(const QModelingObjectPropertyModel); - return (!d->metaWrappedObject || (parent.isValid() && parent.column() != 0)) ? 0:2; + return (!d->modelingMetaObject || (parent.isValid() && parent.column() != 0)) ? 0:2; } -QVariant QWrappedObjectPropertyModel::data(const QModelIndex &index, int role) const +QVariant QModelingObjectPropertyModel::data(const QModelIndex &index, int role) const { - Q_D(const QWrappedObjectPropertyModel); + Q_D(const QModelingObjectPropertyModel); - if (!d->metaWrappedObject || d->metaWrappedObject->propertyCount() == 0 || index.column() < 0 || index.column() >= 2) + if (!d->modelingMetaObject || d->modelingMetaObject->propertyCount() == 0 || index.column() < 0 || index.column() >= 2) return QVariant(); switch (role) { case Qt::DisplayRole: @@ -128,28 +127,28 @@ QVariant QWrappedObjectPropertyModel::data(const QModelIndex &index, int role) c propertyName = propertyName.replace(0, 1, propertyName.left(1).toLower()); return propertyName.append(QString::fromLatin1(!metaProperty.isWritable() ? " (RO)":"")); } - return QString::fromLatin1(d->metaWrappedObject->property(index.row(), 0).propertyMetaObject->className()); + return QString::fromLatin1(d->modelingMetaObject->property(index.row(), 0).propertyMetaObject->className()); } case 1: { if (index.parent().row() != -1 && metaPropertyInfo) { QMetaProperty metaProperty = metaPropertyInfo->metaProperty; - QWrappedObject *propertyWrappedObject = metaPropertyInfo->propertyWrappedObject; + QObject *propertyModelingObject = metaPropertyInfo->propertyModelingObject; QString typeName = QString::fromLatin1(metaProperty.typeName()); - QVariant variant = metaProperty.read(propertyWrappedObject); + QVariant variant = metaProperty.read(propertyModelingObject); if (metaProperty.type() == QVariant::String) { if (QString::fromLatin1(metaProperty.name()) == QString::fromLatin1("objectName")) - propertyWrappedObject = qTopLevelWrapper(propertyWrappedObject); - return metaProperty.read(propertyWrappedObject); + propertyModelingObject = propertyModelingObject; + return metaProperty.read(propertyModelingObject); } else if (metaProperty.type() == QVariant::Bool) { return variant; } else if (metaProperty.isEnumType()) return QString::fromLatin1(metaProperty.enumerator().valueToKey(variant.toInt())).toLower().remove(QString::fromLatin1(metaProperty.name())); - else if (typeName.endsWith('*') && qvariant_cast<QWrappedObject *>(variant)) { - QWrappedObject *objectElement = qvariant_cast<QWrappedObject *>(variant); + else if (typeName.endsWith('*') && qvariant_cast<QObject *>(variant)) { + QObject *objectElement = qvariant_cast<QObject *>(variant); if (objectElement) { - QString returnedValue = qTopLevelWrapper(objectElement)->objectName(); + QString returnedValue = objectElement->objectName(); if (!metaProperty.isStored()) delete objectElement; return returnedValue; @@ -158,25 +157,25 @@ QVariant QWrappedObjectPropertyModel::data(const QModelIndex &index, int role) c return QVariant(); } else if (typeName.contains(QString::fromLatin1("QSet")) && variant.isValid()) { - QSet<QWrappedObject *> elements = *(static_cast<QSet<QWrappedObject *> *>(variant.data())); + QSet<QObject *> elements = *(static_cast<QSet<QObject *> *>(variant.data())); QString str; if (elements.size() > 0) { str.append(QString::fromLatin1("[")); - foreach (QWrappedObject *object, elements) + foreach (QObject *object, elements) if (object) - str.append((qTopLevelWrapper(object))->objectName().append(QString::fromLatin1(", "))); + str.append((object)->objectName().append(QString::fromLatin1(", "))); str.chop(2); str.append(QString::fromLatin1("]")); } return !str.isEmpty() ? str:QVariant(); } else if (typeName.contains(QString::fromLatin1("QList")) && variant.isValid()) { - QList<QWrappedObject *> elements = *(static_cast<QList<QWrappedObject *> *>(variant.data())); + QObjectList elements = *(static_cast<QObjectList *>(variant.data())); QString str; if (elements.size() > 0) { str.append(QString::fromLatin1("[")); - foreach (QWrappedObject *object, elements) - str.append((qTopLevelWrapper(object))->objectName().append(QString::fromLatin1(", "))); + foreach (QObject *object, elements) + str.append((object)->objectName().append(QString::fromLatin1(", "))); str.chop(2); str.append(QString::fromLatin1("]")); } @@ -198,16 +197,16 @@ QVariant QWrappedObjectPropertyModel::data(const QModelIndex &index, int role) c QFont font; QMetaPropertyInfo *metaPropertyInfo = static_cast<QMetaPropertyInfo *>(index.internalPointer()); if (metaPropertyInfo && index.column() == 0 && metaPropertyInfo->metaProperty.isResettable()) - font.setBold(metaPropertyInfo->propertyWrappedObject->isPropertyModified(metaPropertyInfo->metaProperty)); + font.setBold(metaPropertyInfo->propertyModelingObject->isPropertyModified(metaPropertyInfo->metaProperty)); if (metaPropertyInfo && index.column() == 0) - font.setItalic(QWrappedObject::propertyData(QString::fromLatin1(metaPropertyInfo->propertyMetaObject->className()), metaPropertyInfo->metaProperty, QtWrappedObjects::AggregationRole).toString() == QString::fromLatin1("composite")); + font.setItalic(QModelingObject::propertyData(QString::fromLatin1(metaPropertyInfo->propertyMetaObject->className()), metaPropertyInfo->metaProperty, QtModelingObjects::AggregationRole).toString() == QString::fromLatin1("composite")); return font; } case Qt::ToolTipRole: { QMetaPropertyInfo *metaPropertyInfo = static_cast<QMetaPropertyInfo *>(index.internalPointer()); if (metaPropertyInfo) { - QString toolTip = QWrappedObject::propertyData(QString::fromLatin1(metaPropertyInfo->propertyMetaObject->className()), metaPropertyInfo->metaProperty, QtWrappedObjects::DocumentationRole).toString().remove(QRegularExpression(QString::fromLatin1(".$"))).append(QString::fromLatin1(".")); - if (QWrappedObject::propertyData(QString::fromLatin1(metaPropertyInfo->propertyMetaObject->className()), metaPropertyInfo->metaProperty, QtWrappedObjects::IsDerivedUnionRole).toBool()) + QString toolTip = QModelingObject::propertyData(QString::fromLatin1(metaPropertyInfo->propertyMetaObject->className()), metaPropertyInfo->metaProperty, QtModelingObjects::DocumentationRole).toString().remove(QRegularExpression(QString::fromLatin1(".$"))).append(QString::fromLatin1(".")); + if (QModelingObject::propertyData(QString::fromLatin1(metaPropertyInfo->propertyMetaObject->className()), metaPropertyInfo->metaProperty, QtModelingObjects::IsDerivedUnionRole).toBool()) toolTip += QString::fromLatin1(" This is a derived union property."); else if (!metaPropertyInfo->metaProperty.isStored()) toolTip += QString::fromLatin1(" This is a derived property."); @@ -219,16 +218,16 @@ QVariant QWrappedObjectPropertyModel::data(const QModelIndex &index, int role) c if (!toolTip.isEmpty()) toolTip += QString::fromLatin1("\n\n"); toolTip += QString::fromLatin1("Type: %1").arg(QString::fromLatin1(metaPropertyInfo->metaProperty.typeName())); - QVariant variant = QWrappedObject::propertyData(QString::fromLatin1(metaPropertyInfo->propertyMetaObject->className()), metaPropertyInfo->metaProperty, QtWrappedObjects::AggregationRole); + QVariant variant = QModelingObject::propertyData(QString::fromLatin1(metaPropertyInfo->propertyMetaObject->className()), metaPropertyInfo->metaProperty, QtModelingObjects::AggregationRole); if (variant.isValid() && variant.toString() != QString::fromLatin1("none")) toolTip += QString::fromLatin1("\nAggregation: %1").arg(variant.toString()); - QString redefinedProperties = QWrappedObject::propertyData(QString::fromLatin1(metaPropertyInfo->propertyMetaObject->className()), metaPropertyInfo->metaProperty, QtWrappedObjects::RedefinedPropertiesRole).toString(); + QString redefinedProperties = QModelingObject::propertyData(QString::fromLatin1(metaPropertyInfo->propertyMetaObject->className()), metaPropertyInfo->metaProperty, QtModelingObjects::RedefinedPropertiesRole).toString(); if (!redefinedProperties.isEmpty()) toolTip += QString::fromLatin1("\nRedefines: %1").arg(redefinedProperties); - QString subsettedProperties = QWrappedObject::propertyData(QString::fromLatin1(metaPropertyInfo->propertyMetaObject->className()), metaPropertyInfo->metaProperty, QtWrappedObjects::SubsettedPropertiesRole).toString(); + QString subsettedProperties = QModelingObject::propertyData(QString::fromLatin1(metaPropertyInfo->propertyMetaObject->className()), metaPropertyInfo->metaProperty, QtModelingObjects::SubsettedPropertiesRole).toString(); if (!subsettedProperties.isEmpty()) toolTip += QString::fromLatin1("\nSubsets: %1").arg(subsettedProperties); - QString oppositeEnd = QWrappedObject::propertyData(QString::fromLatin1(metaPropertyInfo->propertyMetaObject->className()), metaPropertyInfo->metaProperty, QtWrappedObjects::OppositeEndRole).toString(); + QString oppositeEnd = QModelingObject::propertyData(QString::fromLatin1(metaPropertyInfo->propertyMetaObject->className()), metaPropertyInfo->metaProperty, QtModelingObjects::OppositeEndRole).toString(); if (!oppositeEnd.isEmpty()) toolTip += QString::fromLatin1("\nOpposite end: %1").arg(oppositeEnd); return toolTip; @@ -244,26 +243,26 @@ QVariant QWrappedObjectPropertyModel::data(const QModelIndex &index, int role) c return QVariant(); } -bool QWrappedObjectPropertyModel::setData(const QModelIndex &index, const QVariant &value, int role) +bool QModelingObjectPropertyModel::setData(const QModelIndex &index, const QVariant &value, int role) { - Q_D(QWrappedObjectPropertyModel); + Q_D(QModelingObjectPropertyModel); - if (!d->metaWrappedObject || d->metaWrappedObject->propertyCount() == 0 || index.column() < 0 || index.column() >= 2) + if (!d->modelingMetaObject || d->modelingMetaObject->propertyCount() == 0 || index.column() < 0 || index.column() >= 2) return false; switch (role) { case Qt::DisplayRole: { QMetaPropertyInfo *metaPropertyInfo = static_cast<QMetaPropertyInfo *>(index.internalPointer()); QMetaProperty metaProperty = metaPropertyInfo->metaProperty; - QWrappedObject *propertyWrappedObject = metaPropertyInfo->propertyWrappedObject; + QObject *propertyModelingObject = metaPropertyInfo->propertyModelingObject; if (QString::fromLatin1(metaProperty.name()) == QString::fromLatin1("objectName")) { - propertyWrappedObject = qTopLevelWrapper(propertyWrappedObject); - propertyWrappedObject->setProperty("name", value); - emit indexChanged(d->wrappedObjectIndex); + propertyModelingObject = propertyModelingObject; + propertyModelingObject->setProperty("name", value); + emit indexChanged(d->modelingObjectIndex); } if (QString::fromLatin1(metaProperty.name()) == QString::fromLatin1("name")) - emit indexChanged(d->wrappedObjectIndex); - if (metaProperty.read(propertyWrappedObject) != value) - metaProperty.write(propertyWrappedObject, value); + emit indexChanged(d->modelingObjectIndex); + if (metaProperty.read(propertyModelingObject) != value) + metaProperty.write(propertyModelingObject, value); if (QString::fromLatin1(metaProperty.typeName()).endsWith('*')) emit indexChanged(QModelIndex()); return true; @@ -272,14 +271,14 @@ bool QWrappedObjectPropertyModel::setData(const QModelIndex &index, const QVaria return false; } -QVariant QWrappedObjectPropertyModel::headerData(int section, Qt::Orientation orientation, int role) const +QVariant QModelingObjectPropertyModel::headerData(int section, Qt::Orientation orientation, int role) const { if ((section == 0 || section == 1) && orientation == Qt::Horizontal && role == Qt::DisplayRole) return QString::fromLatin1(section == 0 ? "Property":"Value"); return QVariant(); } -Qt::ItemFlags QWrappedObjectPropertyModel::flags(const QModelIndex &index) const +Qt::ItemFlags QModelingObjectPropertyModel::flags(const QModelIndex &index) const { QMetaPropertyInfo *metaPropertyInfo = static_cast<QMetaPropertyInfo *>(index.internalPointer()); if (metaPropertyInfo && metaPropertyInfo->metaProperty.isWritable() && index.column() == 1) @@ -287,14 +286,14 @@ Qt::ItemFlags QWrappedObjectPropertyModel::flags(const QModelIndex &index) const return QAbstractItemModel::flags(index); } -QWrappedObject *QWrappedObjectPropertyModel::wrappedObject() const +QObject *QModelingObjectPropertyModel::modelingObject() const { - Q_D(const QWrappedObjectPropertyModel); + Q_D(const QModelingObjectPropertyModel); - return d->wrappedObject; + return d->modelingObject; } -#include "moc_qwrappedobjectpropertymodel.cpp" +#include "moc_qmodelingobjectpropertymodel.cpp" QT_END_NAMESPACE diff --git a/src/wrappedobjectswidgets/qwrappedobjectpropertymodel.h b/src/modelingwidgets/qmodelingobjectpropertymodel.h index bdac6b8f..64d912b9 100644 --- a/src/wrappedobjectswidgets/qwrappedobjectpropertymodel.h +++ b/src/modelingwidgets/qmodelingobjectpropertymodel.h @@ -3,7 +3,7 @@ ** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> ** Contact: http://www.qt-project.org/legal ** -** This file is part of the QtWrappedObjectsWidgets module of the Qt Toolkit. +** This file is part of the QtModelingWidgets module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage @@ -38,10 +38,10 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#ifndef QWRAPPEDOBJECTPROPERTYMODEL_H -#define QWRAPPEDOBJECTPROPERTYMODEL_H +#ifndef QMODELINGOBJECTPROPERTYMODEL_H +#define QMODELINGOBJECTPROPERTYMODEL_H -#include <QtWrappedObjectsWidgets/QtWrappedObjectsWidgetsGlobal> +#include <QtModelingWidgets/QtModelingWidgetsGlobal> #include <QtCore/QAbstractItemModel> @@ -49,21 +49,19 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -QT_MODULE(QtWrappedObjectsWidgets) +QT_MODULE(QtModelingWidgets) -class QWrappedObject; +class QModelingObjectPropertyModelPrivate; -class QWrappedObjectPropertyModelPrivate; - -class Q_WRAPPEDOBJECTSWIDGETS_EXPORT QWrappedObjectPropertyModel : public QAbstractItemModel +class Q_MODELINGWIDGETS_EXPORT QModelingObjectPropertyModel : public QAbstractItemModel { Q_OBJECT - Q_DISABLE_COPY(QWrappedObjectPropertyModel) - Q_DECLARE_PRIVATE(QWrappedObjectPropertyModel) + Q_DISABLE_COPY(QModelingObjectPropertyModel) + Q_DECLARE_PRIVATE(QModelingObjectPropertyModel) public: - explicit QWrappedObjectPropertyModel(QObject *parent = 0); + explicit QModelingObjectPropertyModel(QObject *parent = 0); virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; virtual QModelIndex parent(const QModelIndex &child) const; @@ -74,18 +72,18 @@ public: QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; Qt::ItemFlags flags(const QModelIndex & index) const; - QWrappedObject *wrappedObject() const; + QObject *modelingObject() const; public Q_SLOTS: - void setWrappedObject(QWrappedObject *wrappedObject, QModelIndex index); + void setModelingObject(QObject *modelingObject, QModelIndex index); Q_SIGNALS: - void indexChanged(const QModelIndex &wrappedObjectIndex); + void indexChanged(const QModelIndex &modelingObjectIndex); }; QT_END_NAMESPACE QT_END_HEADER -#endif // QWRAPPEDOBJECTPROPERTYMODEL_H +#endif // QMODELINGOBJECTPROPERTYMODEL_H diff --git a/src/wrappedobjectswidgets/qwrappedobjectpropertymodel_p.h b/src/modelingwidgets/qmodelingobjectpropertymodel_p.h index ed4bf7f8..a8a85a6c 100644 --- a/src/wrappedobjectswidgets/qwrappedobjectpropertymodel_p.h +++ b/src/modelingwidgets/qmodelingobjectpropertymodel_p.h @@ -3,7 +3,7 @@ ** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> ** Contact: http://www.qt-project.org/legal ** -** This file is part of the QtWrappedObjectsWidgets module of the Qt Toolkit. +** This file is part of the QtModelingWidgets module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage @@ -38,35 +38,35 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#ifndef QWRAPPEDOBJECTPROPERTYMODEL_P_H -#define QWRAPPEDOBJECTPROPERTYMODEL_P_H +#ifndef QMODELINGOBJECTPROPERTYMODEL_P_H +#define QMODELINGOBJECTPROPERTYMODEL_P_H -#include "qtwrappedobjectswidgetsglobal.h" +#include "qtmodelingwidgetsglobal.h" #include "private/qabstractitemmodel_p.h" QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -QT_MODULE(QtWrappedObjectsWidgets) +QT_MODULE(QtModelingWidgets) -class QMetaWrappedObject; +class QMetaModelingObject; -class Q_WRAPPEDOBJECTSWIDGETS_EXPORT QWrappedObjectPropertyModelPrivate : public QAbstractItemModelPrivate +class Q_MODELINGWIDGETS_EXPORT QModelingObjectPropertyModelPrivate : public QAbstractItemModelPrivate { - Q_DECLARE_PUBLIC(QWrappedObjectPropertyModel) + Q_DECLARE_PUBLIC(QModelingObjectPropertyModel) public: - explicit QWrappedObjectPropertyModelPrivate(); + explicit QModelingObjectPropertyModelPrivate(); - QModelIndex wrappedObjectIndex; - QWrappedObject *wrappedObject; - const QMetaWrappedObject *metaWrappedObject; + QModelIndex modelingObjectIndex; + QObject *modelingObject; + const QMetaObject *modelingMetaObject; }; QT_END_NAMESPACE QT_END_HEADER -#endif // QWRAPPEDOBJECTPROPERTYMODEL_P_H +#endif // QMODELINGOBJECTPROPERTYMODEL_P_H diff --git a/src/modelingwidgets/qmodelingobjectview.cpp b/src/modelingwidgets/qmodelingobjectview.cpp new file mode 100644 index 00000000..479e8c9a --- /dev/null +++ b/src/modelingwidgets/qmodelingobjectview.cpp @@ -0,0 +1,243 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtModelingWidgets module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include "qmodelingobjectview.h" +#include "qmodelingobjectview_p.h" +#include "qmodelingobjectmodel.h" + +#include <QtModeling/QModelingObject> + +#include <QtCore/QMetaProperty> +#include <QtCore/QRegularExpression> + +#include <QtWidgets/QMenu> +#include <QtWidgets/QTreeView> +#include <QtWidgets/QVBoxLayout> +#include <QtWidgets/QMessageBox> + +QT_BEGIN_NAMESPACE + +QModelingObjectViewPrivate::QModelingObjectViewPrivate() : + treeView(new QTreeView) +{ +} + +void QModelingObjectViewPrivate::populateContextMenu(QMenu &menu, QObject *element) +{ + Q_Q(QModelingObjectView); + + const QMetaObject *modelingMetaObject = element->metaObject(); + int propertyCount = modelingMetaObject->propertyCount(); + for (int i = 0; i < propertyCount; ++i) { + QString propertyName = QString::fromLatin1(modelingMetaObject->property(i).name()); + QString propertyType = QString::fromLatin1(modelingMetaObject->property(i).typeName()); + QString modifiedPropertyName = QString(propertyName.left(1).toUpper()+propertyName.mid(1)).remove(QRegularExpression(QString::fromLatin1("s$"))).replace(QRegularExpression(QString::fromLatin1("ie$")), QString::fromLatin1("y")).replace(QRegularExpression(QString::fromLatin1("se$")), QString::fromLatin1("s")).replace(QRegularExpression(QString::fromLatin1("ice$")), QString::fromLatin1("ex")).replace(QRegularExpression(QString::fromLatin1("ce$")), QString::fromLatin1("x")).remove(QRegularExpression(QString::fromLatin1("_$"))); + QString methodSignature; + QString actionText; + if (propertyType.contains(QString::fromLatin1("QList")) || propertyType.contains(QString::fromLatin1("QSet")) || propertyType.endsWith(QString::fromLatin1("*"))) { + if (propertyType.contains(QString::fromLatin1("QList")) || propertyType.contains(QString::fromLatin1("QSet"))) { + propertyType = propertyType.remove(QString::fromLatin1("QList<")).remove(QString::fromLatin1("QSet<")).remove(QString::fromLatin1(">")); + QString unqualifiedPropertyType = propertyType; + methodSignature = QString::fromLatin1("add%1(%2)").arg(modifiedPropertyName).arg(unqualifiedPropertyType.remove(QRegularExpression(QString::fromLatin1("^.*::")))); + actionText = QObject::tr("Add %1").arg(modifiedPropertyName); + } + else if (propertyType.endsWith(QString::fromLatin1("*"))) { + QString unqualifiedPropertyType = propertyType; + methodSignature = QString::fromLatin1("set%1(%2)").arg(modifiedPropertyName).arg(unqualifiedPropertyType.remove(QRegularExpression(QString::fromLatin1("^.*::")))); + actionText = QObject::tr("Set %1").arg(modifiedPropertyName); + } + int metaMethodIndex; + if ((metaMethodIndex = element->metaObject()->indexOfMethod(methodSignature.toLatin1())) != -1 && !visitedAddMethods.contains(actionText)) { + QAction *action = new QAction(actionText, q); + visitedAddMethods[actionText] = QPair<QObject *, QMetaMethod>(element, element->metaObject()->method(metaMethodIndex)); + action->setData(propertyType); + QObject::connect(action, &QAction::triggered, q, &QModelingObjectView::handleAddMethod); + menu.addAction(action); + } + } + } + if (element->parent()) { + menu.addSeparator(); + QAction *action = new QAction(QObject::tr("&Delete"), q); + action->setIcon(QIcon::fromTheme(QString::fromLatin1("edit-delete"))); + QObject::connect(action, &QAction::triggered, q, &QModelingObjectView::deleteObject); + menu.addAction(action); + } + menu.addSeparator(); + QAction *action = new QAction(QObject::tr("&Add to view"), q); + QObject::connect(action, &QAction::triggered, q, &QModelingObjectView::addElementToView); + menu.addAction(action); +} + +QModelingObjectView::QModelingObjectView(QWidget *parent, Qt::WindowFlags f) : + QWidget(*new QModelingObjectViewPrivate, parent, f) +{ + Q_D(QModelingObjectView); + + d->treeView->setEditTriggers(QAbstractItemView::AllEditTriggers); + d->treeView->setAlternatingRowColors(true); + QPalette modelPallete = d->treeView->palette(); + modelPallete.setColor(QPalette::Active, QPalette::Base, QColor(255, 255, 255)); + modelPallete.setColor(QPalette::Inactive, QPalette::Base, QColor(255, 255, 255)); + modelPallete.setColor(QPalette::Active, QPalette::AlternateBase, QColor(248, 247, 246)); + modelPallete.setColor(QPalette::Inactive, QPalette::AlternateBase, QColor(248, 247, 246)); + d->treeView->setPalette(modelPallete); + d->treeView->setUniformRowHeights(true); + + QVBoxLayout *layout = new QVBoxLayout(this); + layout->setSpacing(0); + layout->setContentsMargins(0, 0, 0, 0); + layout->addWidget(d->treeView); +} + +void QModelingObjectView::setModel(QAbstractItemModel *model) +{ + Q_D(QModelingObjectView); + + if (d->treeView->model()) + disconnect(d->treeView->model(), 0, this, 0); + if (d->treeView->selectionModel()) + disconnect(d->treeView->selectionModel(), 0, this, 0); + d->treeView->setModel(model); + if (model) { + connect(model, &QAbstractItemModel::modelReset, this, &QModelingObjectView::modelReset); + connect(model, &QAbstractItemModel::rowsInserted, this, &QModelingObjectView::rowsInserted); + connect(d->treeView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &QModelingObjectView::selectionChanged); + } +} + +void QModelingObjectView::updateSelected() +{ + Q_D(QModelingObjectView); + + (dynamic_cast<QModelingObjectModel *>(d->treeView->model()))->updateIndex(d->treeView->selectionModel()->selectedIndexes().first()); + // FIX ME + QModelIndex index = d->treeView->selectionModel()->selectedIndexes().first(); + d->treeView->setCurrentIndex(d->treeView->model()->index(0, 0)); + d->treeView->setCurrentIndex(index); +} + +void QModelingObjectView::contextMenuEvent(QContextMenuEvent *event) +{ + Q_D(QModelingObjectView); + + QMenu menu(this); + QObject *element = qvariant_cast<QObject *>(d->treeView->currentIndex().data(Qt::UserRole)); + d->visitedAddMethods.clear(); + d->populateContextMenu(menu, element); + menu.exec(event->globalPos()); +} + +void QModelingObjectView::handleAddMethod() +{ + Q_D(QModelingObjectView); + + QAction *action = qobject_cast<QAction *>(sender()); + if (action) { + QObject *element = d->visitedAddMethods[action->text()].first; + QMetaMethod metaMethod = d->visitedAddMethods[action->text()].second; + QString elementType = action->data().toString(); + int type; + if ((type = QMetaType::type(elementType.toLatin1())) != QMetaType::UnknownType) { + const QMetaObject *metaObject = QMetaType::metaObjectForType(type); + if (metaObject) { + QObject *addedElement = metaObject->newInstance(); + if (addedElement) { + addedElement->setObjectName(QString::fromLatin1("Unnamed %1").arg(elementType.remove(QString::fromLatin1("*")))); + metaMethod.invoke(element, ::Q_ARG(QObject *, addedElement)); + } + } + } + } + QModelingObjectModel *modelingObjectModel = dynamic_cast<QModelingObjectModel *>(d->treeView->model()); + modelingObjectModel->updateIndex(QModelIndex()); +} + +void QModelingObjectView::addElementToView() +{ + Q_D(QModelingObjectView); + + emit addToView(qvariant_cast<QObject *>(d->treeView->selectionModel()->selectedIndexes().first().data(Qt::UserRole))); +} + +void QModelingObjectView::deleteObject() +{ + Q_D(QModelingObjectView); + + QObject *usedObject = qvariant_cast<QObject *>(d->treeView->selectionModel()->selection().indexes().first().data(Qt::UserRole)); + + if (QMessageBox::question(this, tr("Delete element"), tr("Are you sure you want to delete '%1' element' ?").arg(usedObject->objectName())) == QMessageBox::Yes) { + QModelingObjectModel *modelingObjectModel = dynamic_cast<QModelingObjectModel *>(d->treeView->model()); + modelingObjectModel->updateIndex(QModelIndex()); + d->treeView->setCurrentIndex(modelingObjectModel->index(0, 0)); + emit modelingObjectChanged(qvariant_cast<QObject *>(modelingObjectModel->index(0, 0).data(Qt::UserRole))); + d->treeView->expandAll(); + d->treeView->resizeColumnToContents(0); + d->treeView->resizeColumnToContents(1); + usedObject->deleteLater(); + } +} + +void QModelingObjectView::modelReset() +{ + Q_D(QModelingObjectView); + + d->treeView->setCurrentIndex(d->treeView->model()->index(0, 0)); + d->treeView->expandAll(); + d->treeView->resizeColumnToContents(0); + d->treeView->resizeColumnToContents(1); +} + +void QModelingObjectView::rowsInserted(const QModelIndex &parent, int first) +{ + Q_D(QModelingObjectView); + + d->treeView->setCurrentIndex(d->treeView->model()->index(first, 0, parent)); +} + +void QModelingObjectView::selectionChanged(const QItemSelection &selected) +{ + emit modelingObjectChanged(qvariant_cast<QObject *>(selected.indexes().first().data(Qt::UserRole)), selected.indexes().first()); +} + +#include "moc_qmodelingobjectview.cpp" + +QT_END_NAMESPACE + diff --git a/src/wrappedobjectswidgets/qwrappedobjectview.h b/src/modelingwidgets/qmodelingobjectview.h index 1a5a36e1..c416ca3a 100644 --- a/src/wrappedobjectswidgets/qwrappedobjectview.h +++ b/src/modelingwidgets/qmodelingobjectview.h @@ -3,7 +3,7 @@ ** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> ** Contact: http://www.qt-project.org/legal ** -** This file is part of the QtWrappedObjectsWidgets module of the Qt Toolkit. +** This file is part of the QtModelingWidgets module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage @@ -38,12 +38,12 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#ifndef QWRAPPEDOBJECTVIEW_H -#define QWRAPPEDOBJECTVIEW_H +#ifndef QMODELINGOBJECTVIEW_H +#define QMODELINGOBJECTVIEW_H #include <QtCore/QModelIndex> -#include <QtWrappedObjectsWidgets/QtWrappedObjectsWidgetsGlobal> +#include <QtModelingWidgets/QtModelingWidgetsGlobal> #include <QtWidgets/QWidget> @@ -51,32 +51,31 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -QT_MODULE(QtWrappedObjectsWidgets) +QT_MODULE(QtModelingWidgets) class QAbstractItemModel; class QItemSelection; class QQuickItem; -class QWrappedObject; -class QWrappedObjectViewPrivate; +class QModelingObjectViewPrivate; -class Q_WRAPPEDOBJECTSWIDGETS_EXPORT QWrappedObjectView : public QWidget +class Q_MODELINGWIDGETS_EXPORT QModelingObjectView : public QWidget { Q_OBJECT - Q_DISABLE_COPY(QWrappedObjectView) - Q_DECLARE_PRIVATE(QWrappedObjectView) + Q_DISABLE_COPY(QModelingObjectView) + Q_DECLARE_PRIVATE(QModelingObjectView) public: - explicit QWrappedObjectView(QWidget *parent = 0, Qt::WindowFlags f = 0); + explicit QModelingObjectView(QWidget *parent = 0, Qt::WindowFlags f = 0); public Q_SLOTS: virtual void setModel(QAbstractItemModel *model); void updateSelected(); Q_SIGNALS: - void wrappedObjectChanged(QWrappedObject *selectedWrappedObject, QModelIndex index = QModelIndex()); - void addToView(QWrappedObject *selectedWrappedObject, QQuickItem *parent = 0); + void modelingObjectChanged(QObject *selectedModelingObject, QModelIndex index = QModelIndex()); + void addToView(QObject *selectedModelingObject, QQuickItem *parent = 0); protected: void contextMenuEvent(QContextMenuEvent *event); @@ -88,14 +87,11 @@ private Q_SLOTS: void modelReset(); void rowsInserted(const QModelIndex &parent, int first); void selectionChanged(const QItemSelection &selected); - -private: - void removeObjectUse(QWrappedObject *container, QWrappedObject *usedObject); }; QT_END_NAMESPACE QT_END_HEADER -#endif // QWRAPPEDOBJECTVIEW_H +#endif // QMODELINGOBJECTVIEW_H diff --git a/src/wrappedobjectswidgets/qwrappedobjectview_p.h b/src/modelingwidgets/qmodelingobjectview_p.h index bcb5c2a6..287cca61 100644 --- a/src/wrappedobjectswidgets/qwrappedobjectview_p.h +++ b/src/modelingwidgets/qmodelingobjectview_p.h @@ -3,7 +3,7 @@ ** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> ** Contact: http://www.qt-project.org/legal ** -** This file is part of the QtWrappedObjectsWidgets module of the Qt Toolkit. +** This file is part of the QtModelingWidgets module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage @@ -38,28 +38,28 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#ifndef QWRAPPEDOBJECTVIEW_P_H -#define QWRAPPEDOBJECTVIEW_P_H +#ifndef QMODELINGOBJECTVIEW_P_H +#define QMODELINGOBJECTVIEW_P_H -#include "qtwrappedobjectswidgetsglobal.h" +#include "qtmodelingwidgetsglobal.h" #include "private/qwidget_p.h" QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -QT_MODULE(QtWrappedObjectsWidgets) +QT_MODULE(QtModelingWidgets) class QTreeView; -class Q_WRAPPEDOBJECTSWIDGETS_EXPORT QWrappedObjectViewPrivate : public QWidgetPrivate +class Q_MODELINGWIDGETS_EXPORT QModelingObjectViewPrivate : public QWidgetPrivate { - Q_DECLARE_PUBLIC(QWrappedObjectView) + Q_DECLARE_PUBLIC(QModelingObjectView) public: - explicit QWrappedObjectViewPrivate(); + explicit QModelingObjectViewPrivate(); - void populateContextMenu(QMenu &menu, QWrappedObject *element); + void populateContextMenu(QMenu &menu, QObject *element); QTreeView *treeView; QHash< QString, QPair<QObject *, QMetaMethod> > visitedAddMethods; @@ -69,5 +69,5 @@ QT_END_NAMESPACE QT_END_HEADER -#endif // QWRAPPEDOBJECTVIEW_P_H +#endif // QMODELINGOBJECTVIEW_P_H diff --git a/src/wrappedobjectswidgets/qtwrappedobjectswidgetsglobal.h b/src/modelingwidgets/qtmodelingwidgetsglobal.h index d588e3a2..466727b5 100644 --- a/src/wrappedobjectswidgets/qtwrappedobjectswidgetsglobal.h +++ b/src/modelingwidgets/qtmodelingwidgetsglobal.h @@ -3,7 +3,7 @@ ** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> ** Contact: http://www.qt-project.org/legal ** -** This file is part of the QtWrappedObjectsWidgets module of the Qt Toolkit. +** This file is part of the QtModelingWidgets module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage @@ -38,24 +38,24 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#ifndef QTWRAPPEDOBJECTSWIDGETSGLOBAL_H -#define QTWRAPPEDOBJECTSWIDGETSGLOBAL_H +#ifndef QTMODELINGWIDGETSGLOBAL_H +#define QTMODELINGWIDGETSGLOBAL_H #include <QtCore/QtGlobal> QT_BEGIN_NAMESPACE #ifndef QT_STATIC -# if defined(QT_BUILD_WRAPPEDOBJECTSWIDGETS_LIB) -# define Q_WRAPPEDOBJECTSWIDGETS_EXPORT Q_DECL_EXPORT +# if defined(QT_BUILD_MODELINGWIDGETS_LIB) +# define Q_MODELINGWIDGETS_EXPORT Q_DECL_EXPORT # else -# define Q_WRAPPEDOBJECTSWIDGETS_EXPORT Q_DECL_IMPORT +# define Q_MODELINGWIDGETS_EXPORT Q_DECL_IMPORT # endif #else -# define Q_WRAPPEDOBJECTSWIDGETS_EXPORT +# define Q_MODELINGWIDGETS_EXPORT #endif QT_END_NAMESPACE -#endif // QTWRAPPEDOBJECTSWIDGETSGLOBAL_H +#endif // QTMODELINGWIDGETSGLOBAL_H diff --git a/src/plugins/metamodels/metamodels.pro b/src/plugins/metamodels/metamodels.pro index 92f36610..1f109e4e 100644 --- a/src/plugins/metamodels/metamodels.pro +++ b/src/plugins/metamodels/metamodels.pro @@ -1,3 +1,4 @@ TEMPLATE = subdirs -qtHaveModule(qml): SUBDIRS = mof uml duse saduseprofile +#qtHaveModule(qml): SUBDIRS = mof uml duse saduseprofile +qtHaveModule(modeling): SUBDIRS = uml diff --git a/src/plugins/metamodels/uml/qumlmetamodel.cpp b/src/plugins/metamodels/uml/qumlmetamodel.cpp index 225c254b..1e4d7061 100644 --- a/src/plugins/metamodels/uml/qumlmetamodel.cpp +++ b/src/plugins/metamodels/uml/qumlmetamodel.cpp @@ -40,1469 +40,10 @@ ****************************************************************************/ #include "qumlmetamodel.h" -#include <QtQml/QtQml> - QT_BEGIN_NAMESPACE void QUmlMetaModel::init(QScriptEngine *scriptEngine) { - qRegisterMetaType<QUmlAbstraction *>(); - qRegisterMetaType< QList<QUmlAbstraction *> >(); - qRegisterMetaType< QSet<QUmlAbstraction *> >(); - qRegisterMetaType<QUmlAcceptCallAction *>(); - qRegisterMetaType< QList<QUmlAcceptCallAction *> >(); - qRegisterMetaType< QSet<QUmlAcceptCallAction *> >(); - qRegisterMetaType<QUmlAcceptEventAction *>(); - qRegisterMetaType< QList<QUmlAcceptEventAction *> >(); - qRegisterMetaType< QSet<QUmlAcceptEventAction *> >(); - qRegisterMetaType<QUmlAction *>(); - qRegisterMetaType< QList<QUmlAction *> >(); - qRegisterMetaType< QSet<QUmlAction *> >(); - qRegisterMetaType<QUmlActionExecutionSpecification *>(); - qRegisterMetaType< QList<QUmlActionExecutionSpecification *> >(); - qRegisterMetaType< QSet<QUmlActionExecutionSpecification *> >(); - qRegisterMetaType<QUmlActionInputPin *>(); - qRegisterMetaType< QList<QUmlActionInputPin *> >(); - qRegisterMetaType< QSet<QUmlActionInputPin *> >(); - qRegisterMetaType<QUmlActivity *>(); - qRegisterMetaType< QList<QUmlActivity *> >(); - qRegisterMetaType< QSet<QUmlActivity *> >(); - qRegisterMetaType<QUmlActivityEdge *>(); - qRegisterMetaType< QList<QUmlActivityEdge *> >(); - qRegisterMetaType< QSet<QUmlActivityEdge *> >(); - qRegisterMetaType<QUmlActivityFinalNode *>(); - qRegisterMetaType< QList<QUmlActivityFinalNode *> >(); - qRegisterMetaType< QSet<QUmlActivityFinalNode *> >(); - qRegisterMetaType<QUmlActivityGroup *>(); - qRegisterMetaType< QList<QUmlActivityGroup *> >(); - qRegisterMetaType< QSet<QUmlActivityGroup *> >(); - qRegisterMetaType<QUmlActivityNode *>(); - qRegisterMetaType< QList<QUmlActivityNode *> >(); - qRegisterMetaType< QSet<QUmlActivityNode *> >(); - qRegisterMetaType<QUmlActivityParameterNode *>(); - qRegisterMetaType< QList<QUmlActivityParameterNode *> >(); - qRegisterMetaType< QSet<QUmlActivityParameterNode *> >(); - qRegisterMetaType<QUmlActivityPartition *>(); - qRegisterMetaType< QList<QUmlActivityPartition *> >(); - qRegisterMetaType< QSet<QUmlActivityPartition *> >(); - qRegisterMetaType<QUmlActor *>(); - qRegisterMetaType< QList<QUmlActor *> >(); - qRegisterMetaType< QSet<QUmlActor *> >(); - qRegisterMetaType<QUmlAddStructuralFeatureValueAction *>(); - qRegisterMetaType< QList<QUmlAddStructuralFeatureValueAction *> >(); - qRegisterMetaType< QSet<QUmlAddStructuralFeatureValueAction *> >(); - qRegisterMetaType<QUmlAddVariableValueAction *>(); - qRegisterMetaType< QList<QUmlAddVariableValueAction *> >(); - qRegisterMetaType< QSet<QUmlAddVariableValueAction *> >(); - qRegisterMetaType<QUmlAnyReceiveEvent *>(); - qRegisterMetaType< QList<QUmlAnyReceiveEvent *> >(); - qRegisterMetaType< QSet<QUmlAnyReceiveEvent *> >(); - qRegisterMetaType<QUmlArtifact *>(); - qRegisterMetaType< QList<QUmlArtifact *> >(); - qRegisterMetaType< QSet<QUmlArtifact *> >(); - qRegisterMetaType<QUmlAssociation *>(); - qRegisterMetaType< QList<QUmlAssociation *> >(); - qRegisterMetaType< QSet<QUmlAssociation *> >(); - qRegisterMetaType<QUmlAssociationClass *>(); - qRegisterMetaType< QList<QUmlAssociationClass *> >(); - qRegisterMetaType< QSet<QUmlAssociationClass *> >(); - qRegisterMetaType<QUmlBehavior *>(); - qRegisterMetaType< QList<QUmlBehavior *> >(); - qRegisterMetaType< QSet<QUmlBehavior *> >(); - qRegisterMetaType<QUmlBehavioralFeature *>(); - qRegisterMetaType< QList<QUmlBehavioralFeature *> >(); - qRegisterMetaType< QSet<QUmlBehavioralFeature *> >(); - qRegisterMetaType<QUmlBehavioredClassifier *>(); - qRegisterMetaType< QList<QUmlBehavioredClassifier *> >(); - qRegisterMetaType< QSet<QUmlBehavioredClassifier *> >(); - qRegisterMetaType<QUmlBehaviorExecutionSpecification *>(); - qRegisterMetaType< QList<QUmlBehaviorExecutionSpecification *> >(); - qRegisterMetaType< QSet<QUmlBehaviorExecutionSpecification *> >(); - qRegisterMetaType<QUmlBroadcastSignalAction *>(); - qRegisterMetaType< QList<QUmlBroadcastSignalAction *> >(); - qRegisterMetaType< QSet<QUmlBroadcastSignalAction *> >(); - qRegisterMetaType<QUmlCallAction *>(); - qRegisterMetaType< QList<QUmlCallAction *> >(); - qRegisterMetaType< QSet<QUmlCallAction *> >(); - qRegisterMetaType<QUmlCallBehaviorAction *>(); - qRegisterMetaType< QList<QUmlCallBehaviorAction *> >(); - qRegisterMetaType< QSet<QUmlCallBehaviorAction *> >(); - qRegisterMetaType<QUmlCallEvent *>(); - qRegisterMetaType< QList<QUmlCallEvent *> >(); - qRegisterMetaType< QSet<QUmlCallEvent *> >(); - qRegisterMetaType<QUmlCallOperationAction *>(); - qRegisterMetaType< QList<QUmlCallOperationAction *> >(); - qRegisterMetaType< QSet<QUmlCallOperationAction *> >(); - qRegisterMetaType<QUmlCentralBufferNode *>(); - qRegisterMetaType< QList<QUmlCentralBufferNode *> >(); - qRegisterMetaType< QSet<QUmlCentralBufferNode *> >(); - qRegisterMetaType<QUmlChangeEvent *>(); - qRegisterMetaType< QList<QUmlChangeEvent *> >(); - qRegisterMetaType< QSet<QUmlChangeEvent *> >(); - qRegisterMetaType<QUmlClass *>(); - qRegisterMetaType< QList<QUmlClass *> >(); - qRegisterMetaType< QSet<QUmlClass *> >(); - qRegisterMetaType<QUmlClassifier *>(); - qRegisterMetaType< QList<QUmlClassifier *> >(); - qRegisterMetaType< QSet<QUmlClassifier *> >(); - qRegisterMetaType<QUmlClassifierTemplateParameter *>(); - qRegisterMetaType< QList<QUmlClassifierTemplateParameter *> >(); - qRegisterMetaType< QSet<QUmlClassifierTemplateParameter *> >(); - qRegisterMetaType<QUmlClause *>(); - qRegisterMetaType< QList<QUmlClause *> >(); - qRegisterMetaType< QSet<QUmlClause *> >(); - qRegisterMetaType<QUmlClearAssociationAction *>(); - qRegisterMetaType< QList<QUmlClearAssociationAction *> >(); - qRegisterMetaType< QSet<QUmlClearAssociationAction *> >(); - qRegisterMetaType<QUmlClearStructuralFeatureAction *>(); - qRegisterMetaType< QList<QUmlClearStructuralFeatureAction *> >(); - qRegisterMetaType< QSet<QUmlClearStructuralFeatureAction *> >(); - qRegisterMetaType<QUmlClearVariableAction *>(); - qRegisterMetaType< QList<QUmlClearVariableAction *> >(); - qRegisterMetaType< QSet<QUmlClearVariableAction *> >(); - qRegisterMetaType<QUmlCollaboration *>(); - qRegisterMetaType< QList<QUmlCollaboration *> >(); - qRegisterMetaType< QSet<QUmlCollaboration *> >(); - qRegisterMetaType<QUmlCollaborationUse *>(); - qRegisterMetaType< QList<QUmlCollaborationUse *> >(); - qRegisterMetaType< QSet<QUmlCollaborationUse *> >(); - qRegisterMetaType<QUmlCombinedFragment *>(); - qRegisterMetaType< QList<QUmlCombinedFragment *> >(); - qRegisterMetaType< QSet<QUmlCombinedFragment *> >(); - qRegisterMetaType<QUmlComment *>(); - qRegisterMetaType< QList<QUmlComment *> >(); - qRegisterMetaType< QSet<QUmlComment *> >(); - qRegisterMetaType<QUmlCommunicationPath *>(); - qRegisterMetaType< QList<QUmlCommunicationPath *> >(); - qRegisterMetaType< QSet<QUmlCommunicationPath *> >(); - qRegisterMetaType<QUmlComponent *>(); - qRegisterMetaType< QList<QUmlComponent *> >(); - qRegisterMetaType< QSet<QUmlComponent *> >(); - qRegisterMetaType<QUmlComponentRealization *>(); - qRegisterMetaType< QList<QUmlComponentRealization *> >(); - qRegisterMetaType< QSet<QUmlComponentRealization *> >(); - qRegisterMetaType<QUmlConditionalNode *>(); - qRegisterMetaType< QList<QUmlConditionalNode *> >(); - qRegisterMetaType< QSet<QUmlConditionalNode *> >(); - qRegisterMetaType<QUmlConnectableElement *>(); - qRegisterMetaType< QList<QUmlConnectableElement *> >(); - qRegisterMetaType< QSet<QUmlConnectableElement *> >(); - qRegisterMetaType<QUmlConnectableElementTemplateParameter *>(); - qRegisterMetaType< QList<QUmlConnectableElementTemplateParameter *> >(); - qRegisterMetaType< QSet<QUmlConnectableElementTemplateParameter *> >(); - qRegisterMetaType<QUmlConnectionPointReference *>(); - qRegisterMetaType< QList<QUmlConnectionPointReference *> >(); - qRegisterMetaType< QSet<QUmlConnectionPointReference *> >(); - qRegisterMetaType<QUmlConnector *>(); - qRegisterMetaType< QList<QUmlConnector *> >(); - qRegisterMetaType< QSet<QUmlConnector *> >(); - qRegisterMetaType<QUmlConnectorEnd *>(); - qRegisterMetaType< QList<QUmlConnectorEnd *> >(); - qRegisterMetaType< QSet<QUmlConnectorEnd *> >(); - qRegisterMetaType<QUmlConsiderIgnoreFragment *>(); - qRegisterMetaType< QList<QUmlConsiderIgnoreFragment *> >(); - qRegisterMetaType< QSet<QUmlConsiderIgnoreFragment *> >(); - qRegisterMetaType<QUmlConstraint *>(); - qRegisterMetaType< QList<QUmlConstraint *> >(); - qRegisterMetaType< QSet<QUmlConstraint *> >(); - qRegisterMetaType<QUmlContinuation *>(); - qRegisterMetaType< QList<QUmlContinuation *> >(); - qRegisterMetaType< QSet<QUmlContinuation *> >(); - qRegisterMetaType<QUmlControlFlow *>(); - qRegisterMetaType< QList<QUmlControlFlow *> >(); - qRegisterMetaType< QSet<QUmlControlFlow *> >(); - qRegisterMetaType<QUmlControlNode *>(); - qRegisterMetaType< QList<QUmlControlNode *> >(); - qRegisterMetaType< QSet<QUmlControlNode *> >(); - qRegisterMetaType<QUmlCreateLinkAction *>(); - qRegisterMetaType< QList<QUmlCreateLinkAction *> >(); - qRegisterMetaType< QSet<QUmlCreateLinkAction *> >(); - qRegisterMetaType<QUmlCreateLinkObjectAction *>(); - qRegisterMetaType< QList<QUmlCreateLinkObjectAction *> >(); - qRegisterMetaType< QSet<QUmlCreateLinkObjectAction *> >(); - qRegisterMetaType<QUmlCreateObjectAction *>(); - qRegisterMetaType< QList<QUmlCreateObjectAction *> >(); - qRegisterMetaType< QSet<QUmlCreateObjectAction *> >(); - qRegisterMetaType<QUmlDataStoreNode *>(); - qRegisterMetaType< QList<QUmlDataStoreNode *> >(); - qRegisterMetaType< QSet<QUmlDataStoreNode *> >(); - qRegisterMetaType<QUmlDataType *>(); - qRegisterMetaType< QList<QUmlDataType *> >(); - qRegisterMetaType< QSet<QUmlDataType *> >(); - qRegisterMetaType<QUmlDecisionNode *>(); - qRegisterMetaType< QList<QUmlDecisionNode *> >(); - qRegisterMetaType< QSet<QUmlDecisionNode *> >(); - qRegisterMetaType<QUmlDependency *>(); - qRegisterMetaType< QList<QUmlDependency *> >(); - qRegisterMetaType< QSet<QUmlDependency *> >(); - qRegisterMetaType<QUmlDeployedArtifact *>(); - qRegisterMetaType< QList<QUmlDeployedArtifact *> >(); - qRegisterMetaType< QSet<QUmlDeployedArtifact *> >(); - qRegisterMetaType<QUmlDeployment *>(); - qRegisterMetaType< QList<QUmlDeployment *> >(); - qRegisterMetaType< QSet<QUmlDeployment *> >(); - qRegisterMetaType<QUmlDeploymentSpecification *>(); - qRegisterMetaType< QList<QUmlDeploymentSpecification *> >(); - qRegisterMetaType< QSet<QUmlDeploymentSpecification *> >(); - qRegisterMetaType<QUmlDeploymentTarget *>(); - qRegisterMetaType< QList<QUmlDeploymentTarget *> >(); - qRegisterMetaType< QSet<QUmlDeploymentTarget *> >(); - qRegisterMetaType<QUmlDestroyLinkAction *>(); - qRegisterMetaType< QList<QUmlDestroyLinkAction *> >(); - qRegisterMetaType< QSet<QUmlDestroyLinkAction *> >(); - qRegisterMetaType<QUmlDestroyObjectAction *>(); - qRegisterMetaType< QList<QUmlDestroyObjectAction *> >(); - qRegisterMetaType< QSet<QUmlDestroyObjectAction *> >(); - qRegisterMetaType<QUmlDestructionOccurrenceSpecification *>(); - qRegisterMetaType< QList<QUmlDestructionOccurrenceSpecification *> >(); - qRegisterMetaType< QSet<QUmlDestructionOccurrenceSpecification *> >(); - qRegisterMetaType<QUmlDevice *>(); - qRegisterMetaType< QList<QUmlDevice *> >(); - qRegisterMetaType< QSet<QUmlDevice *> >(); - qRegisterMetaType<QUmlDirectedRelationship *>(); - qRegisterMetaType< QList<QUmlDirectedRelationship *> >(); - qRegisterMetaType< QSet<QUmlDirectedRelationship *> >(); - qRegisterMetaType<QUmlDuration *>(); - qRegisterMetaType< QList<QUmlDuration *> >(); - qRegisterMetaType< QSet<QUmlDuration *> >(); - qRegisterMetaType<QUmlDurationConstraint *>(); - qRegisterMetaType< QList<QUmlDurationConstraint *> >(); - qRegisterMetaType< QSet<QUmlDurationConstraint *> >(); - qRegisterMetaType<QUmlDurationInterval *>(); - qRegisterMetaType< QList<QUmlDurationInterval *> >(); - qRegisterMetaType< QSet<QUmlDurationInterval *> >(); - qRegisterMetaType<QUmlDurationObservation *>(); - qRegisterMetaType< QList<QUmlDurationObservation *> >(); - qRegisterMetaType< QSet<QUmlDurationObservation *> >(); - qRegisterMetaType<QUmlElement *>(); - qRegisterMetaType< QList<QUmlElement *> >(); - qRegisterMetaType< QSet<QUmlElement *> >(); - qRegisterMetaType<QUmlElementImport *>(); - qRegisterMetaType< QList<QUmlElementImport *> >(); - qRegisterMetaType< QSet<QUmlElementImport *> >(); - qRegisterMetaType<QUmlEncapsulatedClassifier *>(); - qRegisterMetaType< QList<QUmlEncapsulatedClassifier *> >(); - qRegisterMetaType< QSet<QUmlEncapsulatedClassifier *> >(); - qRegisterMetaType<QUmlEnumeration *>(); - qRegisterMetaType< QList<QUmlEnumeration *> >(); - qRegisterMetaType< QSet<QUmlEnumeration *> >(); - qRegisterMetaType<QUmlEnumerationLiteral *>(); - qRegisterMetaType< QList<QUmlEnumerationLiteral *> >(); - qRegisterMetaType< QSet<QUmlEnumerationLiteral *> >(); - qRegisterMetaType<QUmlEvent *>(); - qRegisterMetaType< QList<QUmlEvent *> >(); - qRegisterMetaType< QSet<QUmlEvent *> >(); - qRegisterMetaType<QUmlExceptionHandler *>(); - qRegisterMetaType< QList<QUmlExceptionHandler *> >(); - qRegisterMetaType< QSet<QUmlExceptionHandler *> >(); - qRegisterMetaType<QUmlExecutableNode *>(); - qRegisterMetaType< QList<QUmlExecutableNode *> >(); - qRegisterMetaType< QSet<QUmlExecutableNode *> >(); - qRegisterMetaType<QUmlExecutionEnvironment *>(); - qRegisterMetaType< QList<QUmlExecutionEnvironment *> >(); - qRegisterMetaType< QSet<QUmlExecutionEnvironment *> >(); - qRegisterMetaType<QUmlExecutionOccurrenceSpecification *>(); - qRegisterMetaType< QList<QUmlExecutionOccurrenceSpecification *> >(); - qRegisterMetaType< QSet<QUmlExecutionOccurrenceSpecification *> >(); - qRegisterMetaType<QUmlExecutionSpecification *>(); - qRegisterMetaType< QList<QUmlExecutionSpecification *> >(); - qRegisterMetaType< QSet<QUmlExecutionSpecification *> >(); - qRegisterMetaType<QUmlExpansionNode *>(); - qRegisterMetaType< QList<QUmlExpansionNode *> >(); - qRegisterMetaType< QSet<QUmlExpansionNode *> >(); - qRegisterMetaType<QUmlExpansionRegion *>(); - qRegisterMetaType< QList<QUmlExpansionRegion *> >(); - qRegisterMetaType< QSet<QUmlExpansionRegion *> >(); - qRegisterMetaType<QUmlExpression *>(); - qRegisterMetaType< QList<QUmlExpression *> >(); - qRegisterMetaType< QSet<QUmlExpression *> >(); - qRegisterMetaType<QUmlExtend *>(); - qRegisterMetaType< QList<QUmlExtend *> >(); - qRegisterMetaType< QSet<QUmlExtend *> >(); - qRegisterMetaType<QUmlExtension *>(); - qRegisterMetaType< QList<QUmlExtension *> >(); - qRegisterMetaType< QSet<QUmlExtension *> >(); - qRegisterMetaType<QUmlExtensionEnd *>(); - qRegisterMetaType< QList<QUmlExtensionEnd *> >(); - qRegisterMetaType< QSet<QUmlExtensionEnd *> >(); - qRegisterMetaType<QUmlExtensionPoint *>(); - qRegisterMetaType< QList<QUmlExtensionPoint *> >(); - qRegisterMetaType< QSet<QUmlExtensionPoint *> >(); - qRegisterMetaType<QUmlFeature *>(); - qRegisterMetaType< QList<QUmlFeature *> >(); - qRegisterMetaType< QSet<QUmlFeature *> >(); - qRegisterMetaType<QUmlFinalNode *>(); - qRegisterMetaType< QList<QUmlFinalNode *> >(); - qRegisterMetaType< QSet<QUmlFinalNode *> >(); - qRegisterMetaType<QUmlFinalState *>(); - qRegisterMetaType< QList<QUmlFinalState *> >(); - qRegisterMetaType< QSet<QUmlFinalState *> >(); - qRegisterMetaType<QUmlFlowFinalNode *>(); - qRegisterMetaType< QList<QUmlFlowFinalNode *> >(); - qRegisterMetaType< QSet<QUmlFlowFinalNode *> >(); - qRegisterMetaType<QUmlForkNode *>(); - qRegisterMetaType< QList<QUmlForkNode *> >(); - qRegisterMetaType< QSet<QUmlForkNode *> >(); - qRegisterMetaType<QUmlFunctionBehavior *>(); - qRegisterMetaType< QList<QUmlFunctionBehavior *> >(); - qRegisterMetaType< QSet<QUmlFunctionBehavior *> >(); - qRegisterMetaType<QUmlGate *>(); - qRegisterMetaType< QList<QUmlGate *> >(); - qRegisterMetaType< QSet<QUmlGate *> >(); - qRegisterMetaType<QUmlGeneralization *>(); - qRegisterMetaType< QList<QUmlGeneralization *> >(); - qRegisterMetaType< QSet<QUmlGeneralization *> >(); - qRegisterMetaType<QUmlGeneralizationSet *>(); - qRegisterMetaType< QList<QUmlGeneralizationSet *> >(); - qRegisterMetaType< QSet<QUmlGeneralizationSet *> >(); - qRegisterMetaType<QUmlGeneralOrdering *>(); - qRegisterMetaType< QList<QUmlGeneralOrdering *> >(); - qRegisterMetaType< QSet<QUmlGeneralOrdering *> >(); - qRegisterMetaType<QUmlImage *>(); - qRegisterMetaType< QList<QUmlImage *> >(); - qRegisterMetaType< QSet<QUmlImage *> >(); - qRegisterMetaType<QUmlInclude *>(); - qRegisterMetaType< QList<QUmlInclude *> >(); - qRegisterMetaType< QSet<QUmlInclude *> >(); - qRegisterMetaType<QUmlInformationFlow *>(); - qRegisterMetaType< QList<QUmlInformationFlow *> >(); - qRegisterMetaType< QSet<QUmlInformationFlow *> >(); - qRegisterMetaType<QUmlInformationItem *>(); - qRegisterMetaType< QList<QUmlInformationItem *> >(); - qRegisterMetaType< QSet<QUmlInformationItem *> >(); - qRegisterMetaType<QUmlInitialNode *>(); - qRegisterMetaType< QList<QUmlInitialNode *> >(); - qRegisterMetaType< QSet<QUmlInitialNode *> >(); - qRegisterMetaType<QUmlInputPin *>(); - qRegisterMetaType< QList<QUmlInputPin *> >(); - qRegisterMetaType< QSet<QUmlInputPin *> >(); - qRegisterMetaType<QUmlInstanceSpecification *>(); - qRegisterMetaType< QList<QUmlInstanceSpecification *> >(); - qRegisterMetaType< QSet<QUmlInstanceSpecification *> >(); - qRegisterMetaType<QUmlInstanceValue *>(); - qRegisterMetaType< QList<QUmlInstanceValue *> >(); - qRegisterMetaType< QSet<QUmlInstanceValue *> >(); - qRegisterMetaType<QUmlInteraction *>(); - qRegisterMetaType< QList<QUmlInteraction *> >(); - qRegisterMetaType< QSet<QUmlInteraction *> >(); - qRegisterMetaType<QUmlInteractionConstraint *>(); - qRegisterMetaType< QList<QUmlInteractionConstraint *> >(); - qRegisterMetaType< QSet<QUmlInteractionConstraint *> >(); - qRegisterMetaType<QUmlInteractionFragment *>(); - qRegisterMetaType< QList<QUmlInteractionFragment *> >(); - qRegisterMetaType< QSet<QUmlInteractionFragment *> >(); - qRegisterMetaType<QUmlInteractionOperand *>(); - qRegisterMetaType< QList<QUmlInteractionOperand *> >(); - qRegisterMetaType< QSet<QUmlInteractionOperand *> >(); - qRegisterMetaType<QUmlInteractionUse *>(); - qRegisterMetaType< QList<QUmlInteractionUse *> >(); - qRegisterMetaType< QSet<QUmlInteractionUse *> >(); - qRegisterMetaType<QUmlInterface *>(); - qRegisterMetaType< QList<QUmlInterface *> >(); - qRegisterMetaType< QSet<QUmlInterface *> >(); - qRegisterMetaType<QUmlInterfaceRealization *>(); - qRegisterMetaType< QList<QUmlInterfaceRealization *> >(); - qRegisterMetaType< QSet<QUmlInterfaceRealization *> >(); - qRegisterMetaType<QUmlInterruptibleActivityRegion *>(); - qRegisterMetaType< QList<QUmlInterruptibleActivityRegion *> >(); - qRegisterMetaType< QSet<QUmlInterruptibleActivityRegion *> >(); - qRegisterMetaType<QUmlInterval *>(); - qRegisterMetaType< QList<QUmlInterval *> >(); - qRegisterMetaType< QSet<QUmlInterval *> >(); - qRegisterMetaType<QUmlIntervalConstraint *>(); - qRegisterMetaType< QList<QUmlIntervalConstraint *> >(); - qRegisterMetaType< QSet<QUmlIntervalConstraint *> >(); - qRegisterMetaType<QUmlInvocationAction *>(); - qRegisterMetaType< QList<QUmlInvocationAction *> >(); - qRegisterMetaType< QSet<QUmlInvocationAction *> >(); - qRegisterMetaType<QUmlJoinNode *>(); - qRegisterMetaType< QList<QUmlJoinNode *> >(); - qRegisterMetaType< QSet<QUmlJoinNode *> >(); - qRegisterMetaType<QUmlLifeline *>(); - qRegisterMetaType< QList<QUmlLifeline *> >(); - qRegisterMetaType< QSet<QUmlLifeline *> >(); - qRegisterMetaType<QUmlLinkAction *>(); - qRegisterMetaType< QList<QUmlLinkAction *> >(); - qRegisterMetaType< QSet<QUmlLinkAction *> >(); - qRegisterMetaType<QUmlLinkEndCreationData *>(); - qRegisterMetaType< QList<QUmlLinkEndCreationData *> >(); - qRegisterMetaType< QSet<QUmlLinkEndCreationData *> >(); - qRegisterMetaType<QUmlLinkEndData *>(); - qRegisterMetaType< QList<QUmlLinkEndData *> >(); - qRegisterMetaType< QSet<QUmlLinkEndData *> >(); - qRegisterMetaType<QUmlLinkEndDestructionData *>(); - qRegisterMetaType< QList<QUmlLinkEndDestructionData *> >(); - qRegisterMetaType< QSet<QUmlLinkEndDestructionData *> >(); - qRegisterMetaType<QUmlLiteralBoolean *>(); - qRegisterMetaType< QList<QUmlLiteralBoolean *> >(); - qRegisterMetaType< QSet<QUmlLiteralBoolean *> >(); - qRegisterMetaType<QUmlLiteralInteger *>(); - qRegisterMetaType< QList<QUmlLiteralInteger *> >(); - qRegisterMetaType< QSet<QUmlLiteralInteger *> >(); - qRegisterMetaType<QUmlLiteralNull *>(); - qRegisterMetaType< QList<QUmlLiteralNull *> >(); - qRegisterMetaType< QSet<QUmlLiteralNull *> >(); - qRegisterMetaType<QUmlLiteralReal *>(); - qRegisterMetaType< QList<QUmlLiteralReal *> >(); - qRegisterMetaType< QSet<QUmlLiteralReal *> >(); - qRegisterMetaType<QUmlLiteralSpecification *>(); - qRegisterMetaType< QList<QUmlLiteralSpecification *> >(); - qRegisterMetaType< QSet<QUmlLiteralSpecification *> >(); - qRegisterMetaType<QUmlLiteralString *>(); - qRegisterMetaType< QList<QUmlLiteralString *> >(); - qRegisterMetaType< QSet<QUmlLiteralString *> >(); - qRegisterMetaType<QUmlLiteralUnlimitedNatural *>(); - qRegisterMetaType< QList<QUmlLiteralUnlimitedNatural *> >(); - qRegisterMetaType< QSet<QUmlLiteralUnlimitedNatural *> >(); - qRegisterMetaType<QUmlLoopNode *>(); - qRegisterMetaType< QList<QUmlLoopNode *> >(); - qRegisterMetaType< QSet<QUmlLoopNode *> >(); - qRegisterMetaType<QUmlManifestation *>(); - qRegisterMetaType< QList<QUmlManifestation *> >(); - qRegisterMetaType< QSet<QUmlManifestation *> >(); - qRegisterMetaType<QUmlMergeNode *>(); - qRegisterMetaType< QList<QUmlMergeNode *> >(); - qRegisterMetaType< QSet<QUmlMergeNode *> >(); - qRegisterMetaType<QUmlMessage *>(); - qRegisterMetaType< QList<QUmlMessage *> >(); - qRegisterMetaType< QSet<QUmlMessage *> >(); - qRegisterMetaType<QUmlMessageEnd *>(); - qRegisterMetaType< QList<QUmlMessageEnd *> >(); - qRegisterMetaType< QSet<QUmlMessageEnd *> >(); - qRegisterMetaType<QUmlMessageEvent *>(); - qRegisterMetaType< QList<QUmlMessageEvent *> >(); - qRegisterMetaType< QSet<QUmlMessageEvent *> >(); - qRegisterMetaType<QUmlMessageOccurrenceSpecification *>(); - qRegisterMetaType< QList<QUmlMessageOccurrenceSpecification *> >(); - qRegisterMetaType< QSet<QUmlMessageOccurrenceSpecification *> >(); - qRegisterMetaType<QUmlModel *>(); - qRegisterMetaType< QList<QUmlModel *> >(); - qRegisterMetaType< QSet<QUmlModel *> >(); - qRegisterMetaType<QUmlMultiplicityElement *>(); - qRegisterMetaType< QList<QUmlMultiplicityElement *> >(); - qRegisterMetaType< QSet<QUmlMultiplicityElement *> >(); - qRegisterMetaType<QUmlNamedElement *>(); - qRegisterMetaType< QList<QUmlNamedElement *> >(); - qRegisterMetaType< QSet<QUmlNamedElement *> >(); - qRegisterMetaType<QUmlNamespace *>(); - qRegisterMetaType< QList<QUmlNamespace *> >(); - qRegisterMetaType< QSet<QUmlNamespace *> >(); - qRegisterMetaType<QUmlNode *>(); - qRegisterMetaType< QList<QUmlNode *> >(); - qRegisterMetaType< QSet<QUmlNode *> >(); - qRegisterMetaType<QUmlObjectFlow *>(); - qRegisterMetaType< QList<QUmlObjectFlow *> >(); - qRegisterMetaType< QSet<QUmlObjectFlow *> >(); - qRegisterMetaType<QUmlObjectNode *>(); - qRegisterMetaType< QList<QUmlObjectNode *> >(); - qRegisterMetaType< QSet<QUmlObjectNode *> >(); - qRegisterMetaType<QUmlObservation *>(); - qRegisterMetaType< QList<QUmlObservation *> >(); - qRegisterMetaType< QSet<QUmlObservation *> >(); - qRegisterMetaType<QUmlOccurrenceSpecification *>(); - qRegisterMetaType< QList<QUmlOccurrenceSpecification *> >(); - qRegisterMetaType< QSet<QUmlOccurrenceSpecification *> >(); - qRegisterMetaType<QUmlOpaqueAction *>(); - qRegisterMetaType< QList<QUmlOpaqueAction *> >(); - qRegisterMetaType< QSet<QUmlOpaqueAction *> >(); - qRegisterMetaType<QUmlOpaqueBehavior *>(); - qRegisterMetaType< QList<QUmlOpaqueBehavior *> >(); - qRegisterMetaType< QSet<QUmlOpaqueBehavior *> >(); - qRegisterMetaType<QUmlOpaqueExpression *>(); - qRegisterMetaType< QList<QUmlOpaqueExpression *> >(); - qRegisterMetaType< QSet<QUmlOpaqueExpression *> >(); - qRegisterMetaType<QUmlOperation *>(); - qRegisterMetaType< QList<QUmlOperation *> >(); - qRegisterMetaType< QSet<QUmlOperation *> >(); - qRegisterMetaType<QUmlOperationTemplateParameter *>(); - qRegisterMetaType< QList<QUmlOperationTemplateParameter *> >(); - qRegisterMetaType< QSet<QUmlOperationTemplateParameter *> >(); - qRegisterMetaType<QUmlOutputPin *>(); - qRegisterMetaType< QList<QUmlOutputPin *> >(); - qRegisterMetaType< QSet<QUmlOutputPin *> >(); - qRegisterMetaType<QUmlPackage *>(); - qRegisterMetaType< QList<QUmlPackage *> >(); - qRegisterMetaType< QSet<QUmlPackage *> >(); - qRegisterMetaType<QUmlPackageableElement *>(); - qRegisterMetaType< QList<QUmlPackageableElement *> >(); - qRegisterMetaType< QSet<QUmlPackageableElement *> >(); - qRegisterMetaType<QUmlPackageImport *>(); - qRegisterMetaType< QList<QUmlPackageImport *> >(); - qRegisterMetaType< QSet<QUmlPackageImport *> >(); - qRegisterMetaType<QUmlPackageMerge *>(); - qRegisterMetaType< QList<QUmlPackageMerge *> >(); - qRegisterMetaType< QSet<QUmlPackageMerge *> >(); - qRegisterMetaType<QUmlParameter *>(); - qRegisterMetaType< QList<QUmlParameter *> >(); - qRegisterMetaType< QSet<QUmlParameter *> >(); - qRegisterMetaType<QUmlParameterableElement *>(); - qRegisterMetaType< QList<QUmlParameterableElement *> >(); - qRegisterMetaType< QSet<QUmlParameterableElement *> >(); - qRegisterMetaType<QUmlParameterSet *>(); - qRegisterMetaType< QList<QUmlParameterSet *> >(); - qRegisterMetaType< QSet<QUmlParameterSet *> >(); - qRegisterMetaType<QUmlPartDecomposition *>(); - qRegisterMetaType< QList<QUmlPartDecomposition *> >(); - qRegisterMetaType< QSet<QUmlPartDecomposition *> >(); - qRegisterMetaType<QUmlPin *>(); - qRegisterMetaType< QList<QUmlPin *> >(); - qRegisterMetaType< QSet<QUmlPin *> >(); - qRegisterMetaType<QUmlPort *>(); - qRegisterMetaType< QList<QUmlPort *> >(); - qRegisterMetaType< QSet<QUmlPort *> >(); - qRegisterMetaType<QUmlPrimitiveType *>(); - qRegisterMetaType< QList<QUmlPrimitiveType *> >(); - qRegisterMetaType< QSet<QUmlPrimitiveType *> >(); - qRegisterMetaType<QUmlProfile *>(); - qRegisterMetaType< QList<QUmlProfile *> >(); - qRegisterMetaType< QSet<QUmlProfile *> >(); - qRegisterMetaType<QUmlProfileApplication *>(); - qRegisterMetaType< QList<QUmlProfileApplication *> >(); - qRegisterMetaType< QSet<QUmlProfileApplication *> >(); - qRegisterMetaType<QUmlProperty *>(); - qRegisterMetaType< QList<QUmlProperty *> >(); - qRegisterMetaType< QSet<QUmlProperty *> >(); - qRegisterMetaType<QUmlProtocolConformance *>(); - qRegisterMetaType< QList<QUmlProtocolConformance *> >(); - qRegisterMetaType< QSet<QUmlProtocolConformance *> >(); - qRegisterMetaType<QUmlProtocolStateMachine *>(); - qRegisterMetaType< QList<QUmlProtocolStateMachine *> >(); - qRegisterMetaType< QSet<QUmlProtocolStateMachine *> >(); - qRegisterMetaType<QUmlProtocolTransition *>(); - qRegisterMetaType< QList<QUmlProtocolTransition *> >(); - qRegisterMetaType< QSet<QUmlProtocolTransition *> >(); - qRegisterMetaType<QUmlPseudostate *>(); - qRegisterMetaType< QList<QUmlPseudostate *> >(); - qRegisterMetaType< QSet<QUmlPseudostate *> >(); - qRegisterMetaType<QUmlQualifierValue *>(); - qRegisterMetaType< QList<QUmlQualifierValue *> >(); - qRegisterMetaType< QSet<QUmlQualifierValue *> >(); - qRegisterMetaType<QUmlRaiseExceptionAction *>(); - qRegisterMetaType< QList<QUmlRaiseExceptionAction *> >(); - qRegisterMetaType< QSet<QUmlRaiseExceptionAction *> >(); - qRegisterMetaType<QUmlReadExtentAction *>(); - qRegisterMetaType< QList<QUmlReadExtentAction *> >(); - qRegisterMetaType< QSet<QUmlReadExtentAction *> >(); - qRegisterMetaType<QUmlReadIsClassifiedObjectAction *>(); - qRegisterMetaType< QList<QUmlReadIsClassifiedObjectAction *> >(); - qRegisterMetaType< QSet<QUmlReadIsClassifiedObjectAction *> >(); - qRegisterMetaType<QUmlReadLinkAction *>(); - qRegisterMetaType< QList<QUmlReadLinkAction *> >(); - qRegisterMetaType< QSet<QUmlReadLinkAction *> >(); - qRegisterMetaType<QUmlReadLinkObjectEndAction *>(); - qRegisterMetaType< QList<QUmlReadLinkObjectEndAction *> >(); - qRegisterMetaType< QSet<QUmlReadLinkObjectEndAction *> >(); - qRegisterMetaType<QUmlReadLinkObjectEndQualifierAction *>(); - qRegisterMetaType< QList<QUmlReadLinkObjectEndQualifierAction *> >(); - qRegisterMetaType< QSet<QUmlReadLinkObjectEndQualifierAction *> >(); - qRegisterMetaType<QUmlReadSelfAction *>(); - qRegisterMetaType< QList<QUmlReadSelfAction *> >(); - qRegisterMetaType< QSet<QUmlReadSelfAction *> >(); - qRegisterMetaType<QUmlReadStructuralFeatureAction *>(); - qRegisterMetaType< QList<QUmlReadStructuralFeatureAction *> >(); - qRegisterMetaType< QSet<QUmlReadStructuralFeatureAction *> >(); - qRegisterMetaType<QUmlReadVariableAction *>(); - qRegisterMetaType< QList<QUmlReadVariableAction *> >(); - qRegisterMetaType< QSet<QUmlReadVariableAction *> >(); - qRegisterMetaType<QUmlRealization *>(); - qRegisterMetaType< QList<QUmlRealization *> >(); - qRegisterMetaType< QSet<QUmlRealization *> >(); - qRegisterMetaType<QUmlReception *>(); - qRegisterMetaType< QList<QUmlReception *> >(); - qRegisterMetaType< QSet<QUmlReception *> >(); - qRegisterMetaType<QUmlReclassifyObjectAction *>(); - qRegisterMetaType< QList<QUmlReclassifyObjectAction *> >(); - qRegisterMetaType< QSet<QUmlReclassifyObjectAction *> >(); - qRegisterMetaType<QUmlRedefinableElement *>(); - qRegisterMetaType< QList<QUmlRedefinableElement *> >(); - qRegisterMetaType< QSet<QUmlRedefinableElement *> >(); - qRegisterMetaType<QUmlRedefinableTemplateSignature *>(); - qRegisterMetaType< QList<QUmlRedefinableTemplateSignature *> >(); - qRegisterMetaType< QSet<QUmlRedefinableTemplateSignature *> >(); - qRegisterMetaType<QUmlReduceAction *>(); - qRegisterMetaType< QList<QUmlReduceAction *> >(); - qRegisterMetaType< QSet<QUmlReduceAction *> >(); - qRegisterMetaType<QUmlRegion *>(); - qRegisterMetaType< QList<QUmlRegion *> >(); - qRegisterMetaType< QSet<QUmlRegion *> >(); - qRegisterMetaType<QUmlRelationship *>(); - qRegisterMetaType< QList<QUmlRelationship *> >(); - qRegisterMetaType< QSet<QUmlRelationship *> >(); - qRegisterMetaType<QUmlRemoveStructuralFeatureValueAction *>(); - qRegisterMetaType< QList<QUmlRemoveStructuralFeatureValueAction *> >(); - qRegisterMetaType< QSet<QUmlRemoveStructuralFeatureValueAction *> >(); - qRegisterMetaType<QUmlRemoveVariableValueAction *>(); - qRegisterMetaType< QList<QUmlRemoveVariableValueAction *> >(); - qRegisterMetaType< QSet<QUmlRemoveVariableValueAction *> >(); - qRegisterMetaType<QUmlReplyAction *>(); - qRegisterMetaType< QList<QUmlReplyAction *> >(); - qRegisterMetaType< QSet<QUmlReplyAction *> >(); - qRegisterMetaType<QUmlSendObjectAction *>(); - qRegisterMetaType< QList<QUmlSendObjectAction *> >(); - qRegisterMetaType< QSet<QUmlSendObjectAction *> >(); - qRegisterMetaType<QUmlSendSignalAction *>(); - qRegisterMetaType< QList<QUmlSendSignalAction *> >(); - qRegisterMetaType< QSet<QUmlSendSignalAction *> >(); - qRegisterMetaType<QUmlSequenceNode *>(); - qRegisterMetaType< QList<QUmlSequenceNode *> >(); - qRegisterMetaType< QSet<QUmlSequenceNode *> >(); - qRegisterMetaType<QUmlSignal *>(); - qRegisterMetaType< QList<QUmlSignal *> >(); - qRegisterMetaType< QSet<QUmlSignal *> >(); - qRegisterMetaType<QUmlSignalEvent *>(); - qRegisterMetaType< QList<QUmlSignalEvent *> >(); - qRegisterMetaType< QSet<QUmlSignalEvent *> >(); - qRegisterMetaType<QUmlSlot *>(); - qRegisterMetaType< QList<QUmlSlot *> >(); - qRegisterMetaType< QSet<QUmlSlot *> >(); - qRegisterMetaType<QUmlStartClassifierBehaviorAction *>(); - qRegisterMetaType< QList<QUmlStartClassifierBehaviorAction *> >(); - qRegisterMetaType< QSet<QUmlStartClassifierBehaviorAction *> >(); - qRegisterMetaType<QUmlStartObjectBehaviorAction *>(); - qRegisterMetaType< QList<QUmlStartObjectBehaviorAction *> >(); - qRegisterMetaType< QSet<QUmlStartObjectBehaviorAction *> >(); - qRegisterMetaType<QUmlState *>(); - qRegisterMetaType< QList<QUmlState *> >(); - qRegisterMetaType< QSet<QUmlState *> >(); - qRegisterMetaType<QUmlStateInvariant *>(); - qRegisterMetaType< QList<QUmlStateInvariant *> >(); - qRegisterMetaType< QSet<QUmlStateInvariant *> >(); - qRegisterMetaType<QUmlStateMachine *>(); - qRegisterMetaType< QList<QUmlStateMachine *> >(); - qRegisterMetaType< QSet<QUmlStateMachine *> >(); - qRegisterMetaType<QUmlStereotype *>(); - qRegisterMetaType< QList<QUmlStereotype *> >(); - qRegisterMetaType< QSet<QUmlStereotype *> >(); - qRegisterMetaType<QUmlStringExpression *>(); - qRegisterMetaType< QList<QUmlStringExpression *> >(); - qRegisterMetaType< QSet<QUmlStringExpression *> >(); - qRegisterMetaType<QUmlStructuralFeature *>(); - qRegisterMetaType< QList<QUmlStructuralFeature *> >(); - qRegisterMetaType< QSet<QUmlStructuralFeature *> >(); - qRegisterMetaType<QUmlStructuralFeatureAction *>(); - qRegisterMetaType< QList<QUmlStructuralFeatureAction *> >(); - qRegisterMetaType< QSet<QUmlStructuralFeatureAction *> >(); - qRegisterMetaType<QUmlStructuredActivityNode *>(); - qRegisterMetaType< QList<QUmlStructuredActivityNode *> >(); - qRegisterMetaType< QSet<QUmlStructuredActivityNode *> >(); - qRegisterMetaType<QUmlStructuredClassifier *>(); - qRegisterMetaType< QList<QUmlStructuredClassifier *> >(); - qRegisterMetaType< QSet<QUmlStructuredClassifier *> >(); - qRegisterMetaType<QUmlSubstitution *>(); - qRegisterMetaType< QList<QUmlSubstitution *> >(); - qRegisterMetaType< QSet<QUmlSubstitution *> >(); - qRegisterMetaType<QUmlTemplateableElement *>(); - qRegisterMetaType< QList<QUmlTemplateableElement *> >(); - qRegisterMetaType< QSet<QUmlTemplateableElement *> >(); - qRegisterMetaType<QUmlTemplateBinding *>(); - qRegisterMetaType< QList<QUmlTemplateBinding *> >(); - qRegisterMetaType< QSet<QUmlTemplateBinding *> >(); - qRegisterMetaType<QUmlTemplateParameter *>(); - qRegisterMetaType< QList<QUmlTemplateParameter *> >(); - qRegisterMetaType< QSet<QUmlTemplateParameter *> >(); - qRegisterMetaType<QUmlTemplateParameterSubstitution *>(); - qRegisterMetaType< QList<QUmlTemplateParameterSubstitution *> >(); - qRegisterMetaType< QSet<QUmlTemplateParameterSubstitution *> >(); - qRegisterMetaType<QUmlTemplateSignature *>(); - qRegisterMetaType< QList<QUmlTemplateSignature *> >(); - qRegisterMetaType< QSet<QUmlTemplateSignature *> >(); - qRegisterMetaType<QUmlTestIdentityAction *>(); - qRegisterMetaType< QList<QUmlTestIdentityAction *> >(); - qRegisterMetaType< QSet<QUmlTestIdentityAction *> >(); - qRegisterMetaType<QUmlTimeConstraint *>(); - qRegisterMetaType< QList<QUmlTimeConstraint *> >(); - qRegisterMetaType< QSet<QUmlTimeConstraint *> >(); - qRegisterMetaType<QUmlTimeEvent *>(); - qRegisterMetaType< QList<QUmlTimeEvent *> >(); - qRegisterMetaType< QSet<QUmlTimeEvent *> >(); - qRegisterMetaType<QUmlTimeExpression *>(); - qRegisterMetaType< QList<QUmlTimeExpression *> >(); - qRegisterMetaType< QSet<QUmlTimeExpression *> >(); - qRegisterMetaType<QUmlTimeInterval *>(); - qRegisterMetaType< QList<QUmlTimeInterval *> >(); - qRegisterMetaType< QSet<QUmlTimeInterval *> >(); - qRegisterMetaType<QUmlTimeObservation *>(); - qRegisterMetaType< QList<QUmlTimeObservation *> >(); - qRegisterMetaType< QSet<QUmlTimeObservation *> >(); - qRegisterMetaType<QUmlTransition *>(); - qRegisterMetaType< QList<QUmlTransition *> >(); - qRegisterMetaType< QSet<QUmlTransition *> >(); - qRegisterMetaType<QUmlTrigger *>(); - qRegisterMetaType< QList<QUmlTrigger *> >(); - qRegisterMetaType< QSet<QUmlTrigger *> >(); - qRegisterMetaType<QUmlType *>(); - qRegisterMetaType< QList<QUmlType *> >(); - qRegisterMetaType< QSet<QUmlType *> >(); - qRegisterMetaType<QUmlTypedElement *>(); - qRegisterMetaType< QList<QUmlTypedElement *> >(); - qRegisterMetaType< QSet<QUmlTypedElement *> >(); - qRegisterMetaType<QUmlUnmarshallAction *>(); - qRegisterMetaType< QList<QUmlUnmarshallAction *> >(); - qRegisterMetaType< QSet<QUmlUnmarshallAction *> >(); - qRegisterMetaType<QUmlUsage *>(); - qRegisterMetaType< QList<QUmlUsage *> >(); - qRegisterMetaType< QSet<QUmlUsage *> >(); - qRegisterMetaType<QUmlUseCase *>(); - qRegisterMetaType< QList<QUmlUseCase *> >(); - qRegisterMetaType< QSet<QUmlUseCase *> >(); - qRegisterMetaType<QUmlValuePin *>(); - qRegisterMetaType< QList<QUmlValuePin *> >(); - qRegisterMetaType< QSet<QUmlValuePin *> >(); - qRegisterMetaType<QUmlValueSpecification *>(); - qRegisterMetaType< QList<QUmlValueSpecification *> >(); - qRegisterMetaType< QSet<QUmlValueSpecification *> >(); - qRegisterMetaType<QUmlValueSpecificationAction *>(); - qRegisterMetaType< QList<QUmlValueSpecificationAction *> >(); - qRegisterMetaType< QSet<QUmlValueSpecificationAction *> >(); - qRegisterMetaType<QUmlVariable *>(); - qRegisterMetaType< QList<QUmlVariable *> >(); - qRegisterMetaType< QSet<QUmlVariable *> >(); - qRegisterMetaType<QUmlVariableAction *>(); - qRegisterMetaType< QList<QUmlVariableAction *> >(); - qRegisterMetaType< QSet<QUmlVariableAction *> >(); - qRegisterMetaType<QUmlVertex *>(); - qRegisterMetaType< QList<QUmlVertex *> >(); - qRegisterMetaType< QSet<QUmlVertex *> >(); - qRegisterMetaType<QUmlWriteLinkAction *>(); - qRegisterMetaType< QList<QUmlWriteLinkAction *> >(); - qRegisterMetaType< QSet<QUmlWriteLinkAction *> >(); - qRegisterMetaType<QUmlWriteStructuralFeatureAction *>(); - qRegisterMetaType< QList<QUmlWriteStructuralFeatureAction *> >(); - qRegisterMetaType< QSet<QUmlWriteStructuralFeatureAction *> >(); - qRegisterMetaType<QUmlWriteVariableAction *>(); - qRegisterMetaType< QList<QUmlWriteVariableAction *> >(); - qRegisterMetaType< QSet<QUmlWriteVariableAction *> >(); - - qmlRegisterType<QUmlAbstraction>(); - qmlRegisterType<QUmlAcceptCallAction>(); - qmlRegisterType<QUmlAcceptEventAction>(); - qmlRegisterType<QUmlAction>(); - qmlRegisterType<QUmlActionExecutionSpecification>(); - qmlRegisterType<QUmlActionInputPin>(); - qmlRegisterType<QUmlActivity>(); - qmlRegisterType<QUmlActivityEdge>(); - qmlRegisterType<QUmlActivityFinalNode>(); - qmlRegisterType<QUmlActivityGroup>(); - qmlRegisterType<QUmlActivityNode>(); - qmlRegisterType<QUmlActivityParameterNode>(); - qmlRegisterType<QUmlActivityPartition>(); - qmlRegisterType<QUmlActor>(); - qmlRegisterType<QUmlAddStructuralFeatureValueAction>(); - qmlRegisterType<QUmlAddVariableValueAction>(); - qmlRegisterType<QUmlAnyReceiveEvent>(); - qmlRegisterType<QUmlArtifact>(); - qmlRegisterType<QUmlAssociation>(); - qmlRegisterType<QUmlAssociationClass>(); - qmlRegisterType<QUmlBehavior>(); - qmlRegisterType<QUmlBehavioralFeature>(); - qmlRegisterType<QUmlBehavioredClassifier>(); - qmlRegisterType<QUmlBehaviorExecutionSpecification>(); - qmlRegisterType<QUmlBroadcastSignalAction>(); - qmlRegisterType<QUmlCallAction>(); - qmlRegisterType<QUmlCallBehaviorAction>(); - qmlRegisterType<QUmlCallEvent>(); - qmlRegisterType<QUmlCallOperationAction>(); - qmlRegisterType<QUmlCentralBufferNode>(); - qmlRegisterType<QUmlChangeEvent>(); - qmlRegisterType<QUmlClass>(); - qmlRegisterType<QUmlClassifier>(); - qmlRegisterType<QUmlClassifierTemplateParameter>(); - qmlRegisterType<QUmlClause>(); - qmlRegisterType<QUmlClearAssociationAction>(); - qmlRegisterType<QUmlClearStructuralFeatureAction>(); - qmlRegisterType<QUmlClearVariableAction>(); - qmlRegisterType<QUmlCollaboration>(); - qmlRegisterType<QUmlCollaborationUse>(); - qmlRegisterType<QUmlCombinedFragment>(); - qmlRegisterType<QUmlComment>(); - qmlRegisterType<QUmlCommunicationPath>(); - qmlRegisterType<QUmlComponent>(); - qmlRegisterType<QUmlComponentRealization>(); - qmlRegisterType<QUmlConditionalNode>(); - qmlRegisterType<QUmlConnectableElement>(); - qmlRegisterType<QUmlConnectableElementTemplateParameter>(); - qmlRegisterType<QUmlConnectionPointReference>(); - qmlRegisterType<QUmlConnector>(); - qmlRegisterType<QUmlConnectorEnd>(); - qmlRegisterType<QUmlConsiderIgnoreFragment>(); - qmlRegisterType<QUmlConstraint>(); - qmlRegisterType<QUmlContinuation>(); - qmlRegisterType<QUmlControlFlow>(); - qmlRegisterType<QUmlControlNode>(); - qmlRegisterType<QUmlCreateLinkAction>(); - qmlRegisterType<QUmlCreateLinkObjectAction>(); - qmlRegisterType<QUmlCreateObjectAction>(); - qmlRegisterType<QUmlDataStoreNode>(); - qmlRegisterType<QUmlDataType>(); - qmlRegisterType<QUmlDecisionNode>(); - qmlRegisterType<QUmlDependency>(); - qmlRegisterType<QUmlDeployedArtifact>(); - qmlRegisterType<QUmlDeployment>(); - qmlRegisterType<QUmlDeploymentSpecification>(); - qmlRegisterType<QUmlDeploymentTarget>(); - qmlRegisterType<QUmlDestroyLinkAction>(); - qmlRegisterType<QUmlDestroyObjectAction>(); - qmlRegisterType<QUmlDestructionOccurrenceSpecification>(); - qmlRegisterType<QUmlDevice>(); - qmlRegisterType<QUmlDirectedRelationship>(); - qmlRegisterType<QUmlDuration>(); - qmlRegisterType<QUmlDurationConstraint>(); - qmlRegisterType<QUmlDurationInterval>(); - qmlRegisterType<QUmlDurationObservation>(); - qmlRegisterType<QUmlElement>(); - qmlRegisterType<QUmlElementImport>(); - qmlRegisterType<QUmlEncapsulatedClassifier>(); - qmlRegisterType<QUmlEnumeration>(); - qmlRegisterType<QUmlEnumerationLiteral>(); - qmlRegisterType<QUmlEvent>(); - qmlRegisterType<QUmlExceptionHandler>(); - qmlRegisterType<QUmlExecutableNode>(); - qmlRegisterType<QUmlExecutionEnvironment>(); - qmlRegisterType<QUmlExecutionOccurrenceSpecification>(); - qmlRegisterType<QUmlExecutionSpecification>(); - qmlRegisterType<QUmlExpansionNode>(); - qmlRegisterType<QUmlExpansionRegion>(); - qmlRegisterType<QUmlExpression>(); - qmlRegisterType<QUmlExtend>(); - qmlRegisterType<QUmlExtension>(); - qmlRegisterType<QUmlExtensionEnd>(); - qmlRegisterType<QUmlExtensionPoint>(); - qmlRegisterType<QUmlFeature>(); - qmlRegisterType<QUmlFinalNode>(); - qmlRegisterType<QUmlFinalState>(); - qmlRegisterType<QUmlFlowFinalNode>(); - qmlRegisterType<QUmlForkNode>(); - qmlRegisterType<QUmlFunctionBehavior>(); - qmlRegisterType<QUmlGate>(); - qmlRegisterType<QUmlGeneralization>(); - qmlRegisterType<QUmlGeneralizationSet>(); - qmlRegisterType<QUmlGeneralOrdering>(); - qmlRegisterType<QUmlImage>(); - qmlRegisterType<QUmlInclude>(); - qmlRegisterType<QUmlInformationFlow>(); - qmlRegisterType<QUmlInformationItem>(); - qmlRegisterType<QUmlInitialNode>(); - qmlRegisterType<QUmlInputPin>(); - qmlRegisterType<QUmlInstanceSpecification>(); - qmlRegisterType<QUmlInstanceValue>(); - qmlRegisterType<QUmlInteraction>(); - qmlRegisterType<QUmlInteractionConstraint>(); - qmlRegisterType<QUmlInteractionFragment>(); - qmlRegisterType<QUmlInteractionOperand>(); - qmlRegisterType<QUmlInteractionUse>(); - qmlRegisterType<QUmlInterface>(); - qmlRegisterType<QUmlInterfaceRealization>(); - qmlRegisterType<QUmlInterruptibleActivityRegion>(); - qmlRegisterType<QUmlInterval>(); - qmlRegisterType<QUmlIntervalConstraint>(); - qmlRegisterType<QUmlInvocationAction>(); - qmlRegisterType<QUmlJoinNode>(); - qmlRegisterType<QUmlLifeline>(); - qmlRegisterType<QUmlLinkAction>(); - qmlRegisterType<QUmlLinkEndCreationData>(); - qmlRegisterType<QUmlLinkEndData>(); - qmlRegisterType<QUmlLinkEndDestructionData>(); - qmlRegisterType<QUmlLiteralBoolean>(); - qmlRegisterType<QUmlLiteralInteger>(); - qmlRegisterType<QUmlLiteralNull>(); - qmlRegisterType<QUmlLiteralReal>(); - qmlRegisterType<QUmlLiteralSpecification>(); - qmlRegisterType<QUmlLiteralString>(); - qmlRegisterType<QUmlLiteralUnlimitedNatural>(); - qmlRegisterType<QUmlLoopNode>(); - qmlRegisterType<QUmlManifestation>(); - qmlRegisterType<QUmlMergeNode>(); - qmlRegisterType<QUmlMessage>(); - qmlRegisterType<QUmlMessageEnd>(); - qmlRegisterType<QUmlMessageEvent>(); - qmlRegisterType<QUmlMessageOccurrenceSpecification>(); - qmlRegisterType<QUmlModel>(); - qmlRegisterType<QUmlMultiplicityElement>(); - qmlRegisterType<QUmlNamedElement>(); - qmlRegisterType<QUmlNamespace>(); - qmlRegisterType<QUmlNamespace>(); - qmlRegisterType<QUmlNode>(); - qmlRegisterType<QUmlObjectFlow>(); - qmlRegisterType<QUmlObjectNode>(); - qmlRegisterType<QUmlObservation>(); - qmlRegisterType<QUmlOccurrenceSpecification>(); - qmlRegisterType<QUmlOpaqueAction>(); - qmlRegisterType<QUmlOpaqueBehavior>(); - qmlRegisterType<QUmlOpaqueExpression>(); - qmlRegisterType<QUmlOperation>(); - qmlRegisterType<QUmlOperationTemplateParameter>(); - qmlRegisterType<QUmlOutputPin>(); - qmlRegisterType<QUmlPackage>(); - qmlRegisterType<QUmlPackageableElement>(); - qmlRegisterType<QUmlPackageImport>(); - qmlRegisterType<QUmlPackageMerge>(); - qmlRegisterType<QUmlParameter>(); - qmlRegisterType<QUmlParameterableElement>(); - qmlRegisterType<QUmlParameterSet>(); - qmlRegisterType<QUmlPartDecomposition>(); - qmlRegisterType<QUmlPin>(); - qmlRegisterType<QUmlPort>(); - qmlRegisterType<QUmlPrimitiveType>(); - qmlRegisterType<QUmlProfile>(); - qmlRegisterType<QUmlProfileApplication>(); - qmlRegisterType<QUmlProperty>(); - qmlRegisterType<QUmlProtocolConformance>(); - qmlRegisterType<QUmlProtocolStateMachine>(); - qmlRegisterType<QUmlProtocolTransition>(); - qmlRegisterType<QUmlPseudostate>(); - qmlRegisterType<QUmlQualifierValue>(); - qmlRegisterType<QUmlRaiseExceptionAction>(); - qmlRegisterType<QUmlReadExtentAction>(); - qmlRegisterType<QUmlReadIsClassifiedObjectAction>(); - qmlRegisterType<QUmlReadLinkAction>(); - qmlRegisterType<QUmlReadLinkObjectEndAction>(); - qmlRegisterType<QUmlReadLinkObjectEndQualifierAction>(); - qmlRegisterType<QUmlReadSelfAction>(); - qmlRegisterType<QUmlReadStructuralFeatureAction>(); - qmlRegisterType<QUmlReadVariableAction>(); - qmlRegisterType<QUmlRealization>(); - qmlRegisterType<QUmlReception>(); - qmlRegisterType<QUmlReclassifyObjectAction>(); - qmlRegisterType<QUmlRedefinableElement>(); - qmlRegisterType<QUmlRedefinableTemplateSignature>(); - qmlRegisterType<QUmlReduceAction>(); - qmlRegisterType<QUmlRegion>(); - qmlRegisterType<QUmlRelationship>(); - qmlRegisterType<QUmlRemoveStructuralFeatureValueAction>(); - qmlRegisterType<QUmlRemoveVariableValueAction>(); - qmlRegisterType<QUmlReplyAction>(); - qmlRegisterType<QUmlSendObjectAction>(); - qmlRegisterType<QUmlSendSignalAction>(); - qmlRegisterType<QUmlSequenceNode>(); - qmlRegisterType<QUmlSignal>(); - qmlRegisterType<QUmlSignalEvent>(); - qmlRegisterType<QUmlSlot>(); - qmlRegisterType<QUmlStartClassifierBehaviorAction>(); - qmlRegisterType<QUmlStartObjectBehaviorAction>(); - qmlRegisterType<QUmlState>(); - qmlRegisterType<QUmlStateInvariant>(); - qmlRegisterType<QUmlStateMachine>(); - qmlRegisterType<QUmlStereotype>(); - qmlRegisterType<QUmlStringExpression>(); - qmlRegisterType<QUmlStructuralFeature>(); - qmlRegisterType<QUmlStructuralFeatureAction>(); - qmlRegisterType<QUmlStructuredActivityNode>(); - qmlRegisterType<QUmlStructuredClassifier>(); - qmlRegisterType<QUmlSubstitution>(); - qmlRegisterType<QUmlTemplateableElement>(); - qmlRegisterType<QUmlTemplateBinding>(); - qmlRegisterType<QUmlTemplateParameter>(); - qmlRegisterType<QUmlTemplateParameterSubstitution>(); - qmlRegisterType<QUmlTemplateSignature>(); - qmlRegisterType<QUmlTestIdentityAction>(); - qmlRegisterType<QUmlTimeConstraint>(); - qmlRegisterType<QUmlTimeEvent>(); - qmlRegisterType<QUmlTimeExpression>(); - qmlRegisterType<QUmlTimeInterval>(); - qmlRegisterType<QUmlTimeObservation>(); - qmlRegisterType<QUmlTransition>(); - qmlRegisterType<QUmlTrigger>(); - qmlRegisterType<QUmlType>(); - qmlRegisterType<QUmlTypedElement>(); - qmlRegisterType<QUmlUnmarshallAction>(); - qmlRegisterType<QUmlUsage>(); - qmlRegisterType<QUmlUseCase>(); - qmlRegisterType<QUmlValuePin>(); - qmlRegisterType<QUmlValueSpecification>(); - qmlRegisterType<QUmlValueSpecificationAction>(); - qmlRegisterType<QUmlVariable>(); - qmlRegisterType<QUmlVariableAction>(); - qmlRegisterType<QUmlVertex>(); - qmlRegisterType<QUmlWriteLinkAction>(); - qmlRegisterType<QUmlWriteStructuralFeatureAction>(); - qmlRegisterType<QUmlWriteVariableAction>(); - - if (scriptEngine) { - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlAbstraction>, scriptValueToQSet<QUmlAbstraction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlAbstraction>, scriptValueToQList<QUmlAbstraction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlAcceptCallAction>, scriptValueToQSet<QUmlAcceptCallAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlAcceptCallAction>, scriptValueToQList<QUmlAcceptCallAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlAcceptEventAction>, scriptValueToQSet<QUmlAcceptEventAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlAcceptEventAction>, scriptValueToQList<QUmlAcceptEventAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlAction>, scriptValueToQSet<QUmlAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlAction>, scriptValueToQList<QUmlAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlActionExecutionSpecification>, scriptValueToQSet<QUmlActionExecutionSpecification>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlActionExecutionSpecification>, scriptValueToQList<QUmlActionExecutionSpecification>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlActionInputPin>, scriptValueToQSet<QUmlActionInputPin>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlActionInputPin>, scriptValueToQList<QUmlActionInputPin>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlActivity>, scriptValueToQSet<QUmlActivity>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlActivity>, scriptValueToQList<QUmlActivity>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlActivityEdge>, scriptValueToQSet<QUmlActivityEdge>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlActivityEdge>, scriptValueToQList<QUmlActivityEdge>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlActivityFinalNode>, scriptValueToQSet<QUmlActivityFinalNode>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlActivityFinalNode>, scriptValueToQList<QUmlActivityFinalNode>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlActivityGroup>, scriptValueToQSet<QUmlActivityGroup>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlActivityGroup>, scriptValueToQList<QUmlActivityGroup>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlActivityNode>, scriptValueToQSet<QUmlActivityNode>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlActivityNode>, scriptValueToQList<QUmlActivityNode>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlActivityParameterNode>, scriptValueToQSet<QUmlActivityParameterNode>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlActivityParameterNode>, scriptValueToQList<QUmlActivityParameterNode>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlActivityPartition>, scriptValueToQSet<QUmlActivityPartition>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlActivityPartition>, scriptValueToQList<QUmlActivityPartition>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlActor>, scriptValueToQSet<QUmlActor>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlActor>, scriptValueToQList<QUmlActor>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlAddStructuralFeatureValueAction>, scriptValueToQSet<QUmlAddStructuralFeatureValueAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlAddStructuralFeatureValueAction>, scriptValueToQList<QUmlAddStructuralFeatureValueAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlAddVariableValueAction>, scriptValueToQSet<QUmlAddVariableValueAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlAddVariableValueAction>, scriptValueToQList<QUmlAddVariableValueAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlAnyReceiveEvent>, scriptValueToQSet<QUmlAnyReceiveEvent>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlAnyReceiveEvent>, scriptValueToQList<QUmlAnyReceiveEvent>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlArtifact>, scriptValueToQSet<QUmlArtifact>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlArtifact>, scriptValueToQList<QUmlArtifact>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlAssociation>, scriptValueToQSet<QUmlAssociation>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlAssociation>, scriptValueToQList<QUmlAssociation>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlAssociationClass>, scriptValueToQSet<QUmlAssociationClass>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlAssociationClass>, scriptValueToQList<QUmlAssociationClass>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlBehavior>, scriptValueToQSet<QUmlBehavior>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlBehavior>, scriptValueToQList<QUmlBehavior>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlBehavioralFeature>, scriptValueToQSet<QUmlBehavioralFeature>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlBehavioralFeature>, scriptValueToQList<QUmlBehavioralFeature>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlBehavioredClassifier>, scriptValueToQSet<QUmlBehavioredClassifier>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlBehavioredClassifier>, scriptValueToQList<QUmlBehavioredClassifier>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlBehaviorExecutionSpecification>, scriptValueToQSet<QUmlBehaviorExecutionSpecification>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlBehaviorExecutionSpecification>, scriptValueToQList<QUmlBehaviorExecutionSpecification>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlBroadcastSignalAction>, scriptValueToQSet<QUmlBroadcastSignalAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlBroadcastSignalAction>, scriptValueToQList<QUmlBroadcastSignalAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlCallAction>, scriptValueToQSet<QUmlCallAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlCallAction>, scriptValueToQList<QUmlCallAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlCallBehaviorAction>, scriptValueToQSet<QUmlCallBehaviorAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlCallBehaviorAction>, scriptValueToQList<QUmlCallBehaviorAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlCallEvent>, scriptValueToQSet<QUmlCallEvent>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlCallEvent>, scriptValueToQList<QUmlCallEvent>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlCallOperationAction>, scriptValueToQSet<QUmlCallOperationAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlCallOperationAction>, scriptValueToQList<QUmlCallOperationAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlCentralBufferNode>, scriptValueToQSet<QUmlCentralBufferNode>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlCentralBufferNode>, scriptValueToQList<QUmlCentralBufferNode>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlChangeEvent>, scriptValueToQSet<QUmlChangeEvent>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlChangeEvent>, scriptValueToQList<QUmlChangeEvent>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlClass>, scriptValueToQSet<QUmlClass>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlClass>, scriptValueToQList<QUmlClass>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlClassifier>, scriptValueToQSet<QUmlClassifier>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlClassifier>, scriptValueToQList<QUmlClassifier>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlClassifierTemplateParameter>, scriptValueToQSet<QUmlClassifierTemplateParameter>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlClassifierTemplateParameter>, scriptValueToQList<QUmlClassifierTemplateParameter>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlClause>, scriptValueToQSet<QUmlClause>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlClause>, scriptValueToQList<QUmlClause>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlClearAssociationAction>, scriptValueToQSet<QUmlClearAssociationAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlClearAssociationAction>, scriptValueToQList<QUmlClearAssociationAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlClearStructuralFeatureAction>, scriptValueToQSet<QUmlClearStructuralFeatureAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlClearStructuralFeatureAction>, scriptValueToQList<QUmlClearStructuralFeatureAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlClearVariableAction>, scriptValueToQSet<QUmlClearVariableAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlClearVariableAction>, scriptValueToQList<QUmlClearVariableAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlCollaboration>, scriptValueToQSet<QUmlCollaboration>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlCollaboration>, scriptValueToQList<QUmlCollaboration>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlCollaborationUse>, scriptValueToQSet<QUmlCollaborationUse>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlCollaborationUse>, scriptValueToQList<QUmlCollaborationUse>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlCombinedFragment>, scriptValueToQSet<QUmlCombinedFragment>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlCombinedFragment>, scriptValueToQList<QUmlCombinedFragment>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlComment>, scriptValueToQSet<QUmlComment>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlComment>, scriptValueToQList<QUmlComment>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlCommunicationPath>, scriptValueToQSet<QUmlCommunicationPath>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlCommunicationPath>, scriptValueToQList<QUmlCommunicationPath>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlComponent>, scriptValueToQSet<QUmlComponent>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlComponent>, scriptValueToQList<QUmlComponent>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlComponentRealization>, scriptValueToQSet<QUmlComponentRealization>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlComponentRealization>, scriptValueToQList<QUmlComponentRealization>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlConditionalNode>, scriptValueToQSet<QUmlConditionalNode>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlConditionalNode>, scriptValueToQList<QUmlConditionalNode>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlConnectableElement>, scriptValueToQSet<QUmlConnectableElement>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlConnectableElement>, scriptValueToQList<QUmlConnectableElement>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlConnectableElementTemplateParameter>, scriptValueToQSet<QUmlConnectableElementTemplateParameter>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlConnectableElementTemplateParameter>, scriptValueToQList<QUmlConnectableElementTemplateParameter>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlConnectionPointReference>, scriptValueToQSet<QUmlConnectionPointReference>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlConnectionPointReference>, scriptValueToQList<QUmlConnectionPointReference>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlConnector>, scriptValueToQSet<QUmlConnector>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlConnector>, scriptValueToQList<QUmlConnector>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlConnectorEnd>, scriptValueToQSet<QUmlConnectorEnd>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlConnectorEnd>, scriptValueToQList<QUmlConnectorEnd>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlConsiderIgnoreFragment>, scriptValueToQSet<QUmlConsiderIgnoreFragment>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlConsiderIgnoreFragment>, scriptValueToQList<QUmlConsiderIgnoreFragment>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlConstraint>, scriptValueToQSet<QUmlConstraint>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlConstraint>, scriptValueToQList<QUmlConstraint>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlContinuation>, scriptValueToQSet<QUmlContinuation>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlContinuation>, scriptValueToQList<QUmlContinuation>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlControlFlow>, scriptValueToQSet<QUmlControlFlow>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlControlFlow>, scriptValueToQList<QUmlControlFlow>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlControlNode>, scriptValueToQSet<QUmlControlNode>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlControlNode>, scriptValueToQList<QUmlControlNode>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlCreateLinkAction>, scriptValueToQSet<QUmlCreateLinkAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlCreateLinkAction>, scriptValueToQList<QUmlCreateLinkAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlCreateLinkObjectAction>, scriptValueToQSet<QUmlCreateLinkObjectAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlCreateLinkObjectAction>, scriptValueToQList<QUmlCreateLinkObjectAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlCreateObjectAction>, scriptValueToQSet<QUmlCreateObjectAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlCreateObjectAction>, scriptValueToQList<QUmlCreateObjectAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlDataStoreNode>, scriptValueToQSet<QUmlDataStoreNode>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlDataStoreNode>, scriptValueToQList<QUmlDataStoreNode>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlDataType>, scriptValueToQSet<QUmlDataType>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlDataType>, scriptValueToQList<QUmlDataType>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlDecisionNode>, scriptValueToQSet<QUmlDecisionNode>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlDecisionNode>, scriptValueToQList<QUmlDecisionNode>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlDependency>, scriptValueToQSet<QUmlDependency>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlDependency>, scriptValueToQList<QUmlDependency>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlDeployedArtifact>, scriptValueToQSet<QUmlDeployedArtifact>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlDeployedArtifact>, scriptValueToQList<QUmlDeployedArtifact>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlDeployment>, scriptValueToQSet<QUmlDeployment>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlDeployment>, scriptValueToQList<QUmlDeployment>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlDeploymentSpecification>, scriptValueToQSet<QUmlDeploymentSpecification>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlDeploymentSpecification>, scriptValueToQList<QUmlDeploymentSpecification>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlDeploymentTarget>, scriptValueToQSet<QUmlDeploymentTarget>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlDeploymentTarget>, scriptValueToQList<QUmlDeploymentTarget>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlDestroyLinkAction>, scriptValueToQSet<QUmlDestroyLinkAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlDestroyLinkAction>, scriptValueToQList<QUmlDestroyLinkAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlDestroyObjectAction>, scriptValueToQSet<QUmlDestroyObjectAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlDestroyObjectAction>, scriptValueToQList<QUmlDestroyObjectAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlDestructionOccurrenceSpecification>, scriptValueToQSet<QUmlDestructionOccurrenceSpecification>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlDestructionOccurrenceSpecification>, scriptValueToQList<QUmlDestructionOccurrenceSpecification>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlDevice>, scriptValueToQSet<QUmlDevice>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlDevice>, scriptValueToQList<QUmlDevice>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlDirectedRelationship>, scriptValueToQSet<QUmlDirectedRelationship>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlDirectedRelationship>, scriptValueToQList<QUmlDirectedRelationship>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlDuration>, scriptValueToQSet<QUmlDuration>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlDuration>, scriptValueToQList<QUmlDuration>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlDurationConstraint>, scriptValueToQSet<QUmlDurationConstraint>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlDurationConstraint>, scriptValueToQList<QUmlDurationConstraint>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlDurationInterval>, scriptValueToQSet<QUmlDurationInterval>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlDurationInterval>, scriptValueToQList<QUmlDurationInterval>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlDurationObservation>, scriptValueToQSet<QUmlDurationObservation>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlDurationObservation>, scriptValueToQList<QUmlDurationObservation>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlElement>, scriptValueToQSet<QUmlElement>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlElement>, scriptValueToQList<QUmlElement>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlElementImport>, scriptValueToQSet<QUmlElementImport>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlElementImport>, scriptValueToQList<QUmlElementImport>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlEncapsulatedClassifier>, scriptValueToQSet<QUmlEncapsulatedClassifier>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlEncapsulatedClassifier>, scriptValueToQList<QUmlEncapsulatedClassifier>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlEnumeration>, scriptValueToQSet<QUmlEnumeration>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlEnumeration>, scriptValueToQList<QUmlEnumeration>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlEnumerationLiteral>, scriptValueToQSet<QUmlEnumerationLiteral>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlEnumerationLiteral>, scriptValueToQList<QUmlEnumerationLiteral>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlEvent>, scriptValueToQSet<QUmlEvent>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlEvent>, scriptValueToQList<QUmlEvent>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlExceptionHandler>, scriptValueToQSet<QUmlExceptionHandler>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlExceptionHandler>, scriptValueToQList<QUmlExceptionHandler>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlExecutableNode>, scriptValueToQSet<QUmlExecutableNode>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlExecutableNode>, scriptValueToQList<QUmlExecutableNode>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlExecutionEnvironment>, scriptValueToQSet<QUmlExecutionEnvironment>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlExecutionEnvironment>, scriptValueToQList<QUmlExecutionEnvironment>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlExecutionOccurrenceSpecification>, scriptValueToQSet<QUmlExecutionOccurrenceSpecification>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlExecutionOccurrenceSpecification>, scriptValueToQList<QUmlExecutionOccurrenceSpecification>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlExecutionSpecification>, scriptValueToQSet<QUmlExecutionSpecification>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlExecutionSpecification>, scriptValueToQList<QUmlExecutionSpecification>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlExpansionNode>, scriptValueToQSet<QUmlExpansionNode>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlExpansionNode>, scriptValueToQList<QUmlExpansionNode>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlExpansionRegion>, scriptValueToQSet<QUmlExpansionRegion>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlExpansionRegion>, scriptValueToQList<QUmlExpansionRegion>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlExpression>, scriptValueToQSet<QUmlExpression>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlExpression>, scriptValueToQList<QUmlExpression>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlExtend>, scriptValueToQSet<QUmlExtend>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlExtend>, scriptValueToQList<QUmlExtend>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlExtension>, scriptValueToQSet<QUmlExtension>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlExtension>, scriptValueToQList<QUmlExtension>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlExtensionEnd>, scriptValueToQSet<QUmlExtensionEnd>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlExtensionEnd>, scriptValueToQList<QUmlExtensionEnd>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlExtensionPoint>, scriptValueToQSet<QUmlExtensionPoint>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlExtensionPoint>, scriptValueToQList<QUmlExtensionPoint>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlFeature>, scriptValueToQSet<QUmlFeature>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlFeature>, scriptValueToQList<QUmlFeature>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlFinalNode>, scriptValueToQSet<QUmlFinalNode>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlFinalNode>, scriptValueToQList<QUmlFinalNode>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlFinalState>, scriptValueToQSet<QUmlFinalState>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlFinalState>, scriptValueToQList<QUmlFinalState>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlFlowFinalNode>, scriptValueToQSet<QUmlFlowFinalNode>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlFlowFinalNode>, scriptValueToQList<QUmlFlowFinalNode>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlForkNode>, scriptValueToQSet<QUmlForkNode>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlForkNode>, scriptValueToQList<QUmlForkNode>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlFunctionBehavior>, scriptValueToQSet<QUmlFunctionBehavior>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlFunctionBehavior>, scriptValueToQList<QUmlFunctionBehavior>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlGate>, scriptValueToQSet<QUmlGate>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlGate>, scriptValueToQList<QUmlGate>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlGeneralization>, scriptValueToQSet<QUmlGeneralization>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlGeneralization>, scriptValueToQList<QUmlGeneralization>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlGeneralizationSet>, scriptValueToQSet<QUmlGeneralizationSet>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlGeneralizationSet>, scriptValueToQList<QUmlGeneralizationSet>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlGeneralOrdering>, scriptValueToQSet<QUmlGeneralOrdering>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlGeneralOrdering>, scriptValueToQList<QUmlGeneralOrdering>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlImage>, scriptValueToQSet<QUmlImage>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlImage>, scriptValueToQList<QUmlImage>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlInclude>, scriptValueToQSet<QUmlInclude>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlInclude>, scriptValueToQList<QUmlInclude>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlInformationFlow>, scriptValueToQSet<QUmlInformationFlow>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlInformationFlow>, scriptValueToQList<QUmlInformationFlow>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlInformationItem>, scriptValueToQSet<QUmlInformationItem>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlInformationItem>, scriptValueToQList<QUmlInformationItem>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlInitialNode>, scriptValueToQSet<QUmlInitialNode>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlInitialNode>, scriptValueToQList<QUmlInitialNode>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlInputPin>, scriptValueToQSet<QUmlInputPin>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlInputPin>, scriptValueToQList<QUmlInputPin>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlInstanceSpecification>, scriptValueToQSet<QUmlInstanceSpecification>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlInstanceSpecification>, scriptValueToQList<QUmlInstanceSpecification>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlInstanceValue>, scriptValueToQSet<QUmlInstanceValue>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlInstanceValue>, scriptValueToQList<QUmlInstanceValue>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlInteraction>, scriptValueToQSet<QUmlInteraction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlInteraction>, scriptValueToQList<QUmlInteraction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlInteractionConstraint>, scriptValueToQSet<QUmlInteractionConstraint>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlInteractionConstraint>, scriptValueToQList<QUmlInteractionConstraint>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlInteractionFragment>, scriptValueToQSet<QUmlInteractionFragment>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlInteractionFragment>, scriptValueToQList<QUmlInteractionFragment>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlInteractionOperand>, scriptValueToQSet<QUmlInteractionOperand>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlInteractionOperand>, scriptValueToQList<QUmlInteractionOperand>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlInteractionUse>, scriptValueToQSet<QUmlInteractionUse>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlInteractionUse>, scriptValueToQList<QUmlInteractionUse>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlInterface>, scriptValueToQSet<QUmlInterface>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlInterface>, scriptValueToQList<QUmlInterface>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlInterfaceRealization>, scriptValueToQSet<QUmlInterfaceRealization>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlInterfaceRealization>, scriptValueToQList<QUmlInterfaceRealization>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlInterruptibleActivityRegion>, scriptValueToQSet<QUmlInterruptibleActivityRegion>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlInterruptibleActivityRegion>, scriptValueToQList<QUmlInterruptibleActivityRegion>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlInterval>, scriptValueToQSet<QUmlInterval>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlInterval>, scriptValueToQList<QUmlInterval>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlIntervalConstraint>, scriptValueToQSet<QUmlIntervalConstraint>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlIntervalConstraint>, scriptValueToQList<QUmlIntervalConstraint>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlInvocationAction>, scriptValueToQSet<QUmlInvocationAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlInvocationAction>, scriptValueToQList<QUmlInvocationAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlJoinNode>, scriptValueToQSet<QUmlJoinNode>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlJoinNode>, scriptValueToQList<QUmlJoinNode>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlLifeline>, scriptValueToQSet<QUmlLifeline>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlLifeline>, scriptValueToQList<QUmlLifeline>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlLinkAction>, scriptValueToQSet<QUmlLinkAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlLinkAction>, scriptValueToQList<QUmlLinkAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlLinkEndCreationData>, scriptValueToQSet<QUmlLinkEndCreationData>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlLinkEndCreationData>, scriptValueToQList<QUmlLinkEndCreationData>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlLinkEndData>, scriptValueToQSet<QUmlLinkEndData>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlLinkEndData>, scriptValueToQList<QUmlLinkEndData>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlLinkEndDestructionData>, scriptValueToQSet<QUmlLinkEndDestructionData>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlLinkEndDestructionData>, scriptValueToQList<QUmlLinkEndDestructionData>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlLiteralBoolean>, scriptValueToQSet<QUmlLiteralBoolean>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlLiteralBoolean>, scriptValueToQList<QUmlLiteralBoolean>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlLiteralInteger>, scriptValueToQSet<QUmlLiteralInteger>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlLiteralInteger>, scriptValueToQList<QUmlLiteralInteger>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlLiteralNull>, scriptValueToQSet<QUmlLiteralNull>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlLiteralNull>, scriptValueToQList<QUmlLiteralNull>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlLiteralReal>, scriptValueToQSet<QUmlLiteralReal>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlLiteralReal>, scriptValueToQList<QUmlLiteralReal>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlLiteralSpecification>, scriptValueToQSet<QUmlLiteralSpecification>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlLiteralSpecification>, scriptValueToQList<QUmlLiteralSpecification>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlLiteralString>, scriptValueToQSet<QUmlLiteralString>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlLiteralString>, scriptValueToQList<QUmlLiteralString>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlLiteralUnlimitedNatural>, scriptValueToQSet<QUmlLiteralUnlimitedNatural>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlLiteralUnlimitedNatural>, scriptValueToQList<QUmlLiteralUnlimitedNatural>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlLoopNode>, scriptValueToQSet<QUmlLoopNode>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlLoopNode>, scriptValueToQList<QUmlLoopNode>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlManifestation>, scriptValueToQSet<QUmlManifestation>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlManifestation>, scriptValueToQList<QUmlManifestation>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlMergeNode>, scriptValueToQSet<QUmlMergeNode>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlMergeNode>, scriptValueToQList<QUmlMergeNode>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlMessage>, scriptValueToQSet<QUmlMessage>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlMessage>, scriptValueToQList<QUmlMessage>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlMessageEnd>, scriptValueToQSet<QUmlMessageEnd>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlMessageEnd>, scriptValueToQList<QUmlMessageEnd>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlMessageEvent>, scriptValueToQSet<QUmlMessageEvent>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlMessageEvent>, scriptValueToQList<QUmlMessageEvent>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlMessageOccurrenceSpecification>, scriptValueToQSet<QUmlMessageOccurrenceSpecification>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlMessageOccurrenceSpecification>, scriptValueToQList<QUmlMessageOccurrenceSpecification>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlModel>, scriptValueToQSet<QUmlModel>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlModel>, scriptValueToQList<QUmlModel>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlMultiplicityElement>, scriptValueToQSet<QUmlMultiplicityElement>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlMultiplicityElement>, scriptValueToQList<QUmlMultiplicityElement>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlNamedElement>, scriptValueToQSet<QUmlNamedElement>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlNamedElement>, scriptValueToQList<QUmlNamedElement>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlNamespace>, scriptValueToQSet<QUmlNamespace>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlNamespace>, scriptValueToQList<QUmlNamespace>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlNode>, scriptValueToQSet<QUmlNode>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlNode>, scriptValueToQList<QUmlNode>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlObjectFlow>, scriptValueToQSet<QUmlObjectFlow>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlObjectFlow>, scriptValueToQList<QUmlObjectFlow>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlObjectNode>, scriptValueToQSet<QUmlObjectNode>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlObjectNode>, scriptValueToQList<QUmlObjectNode>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlObservation>, scriptValueToQSet<QUmlObservation>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlObservation>, scriptValueToQList<QUmlObservation>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlOccurrenceSpecification>, scriptValueToQSet<QUmlOccurrenceSpecification>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlOccurrenceSpecification>, scriptValueToQList<QUmlOccurrenceSpecification>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlOpaqueAction>, scriptValueToQSet<QUmlOpaqueAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlOpaqueAction>, scriptValueToQList<QUmlOpaqueAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlOpaqueBehavior>, scriptValueToQSet<QUmlOpaqueBehavior>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlOpaqueBehavior>, scriptValueToQList<QUmlOpaqueBehavior>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlOpaqueExpression>, scriptValueToQSet<QUmlOpaqueExpression>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlOpaqueExpression>, scriptValueToQList<QUmlOpaqueExpression>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlOperation>, scriptValueToQSet<QUmlOperation>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlOperation>, scriptValueToQList<QUmlOperation>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlOperationTemplateParameter>, scriptValueToQSet<QUmlOperationTemplateParameter>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlOperationTemplateParameter>, scriptValueToQList<QUmlOperationTemplateParameter>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlOutputPin>, scriptValueToQSet<QUmlOutputPin>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlOutputPin>, scriptValueToQList<QUmlOutputPin>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlPackage >, scriptValueToQSet<QUmlPackage >); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlPackage >, scriptValueToQList<QUmlPackage >); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlPackageableElement>, scriptValueToQSet<QUmlPackageableElement>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlPackageableElement>, scriptValueToQList<QUmlPackageableElement>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlPackageImport>, scriptValueToQSet<QUmlPackageImport>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlPackageImport>, scriptValueToQList<QUmlPackageImport>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlPackageMerge>, scriptValueToQSet<QUmlPackageMerge>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlPackageMerge>, scriptValueToQList<QUmlPackageMerge>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlParameter>, scriptValueToQSet<QUmlParameter>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlParameter>, scriptValueToQList<QUmlParameter>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlParameterableElement>, scriptValueToQSet<QUmlParameterableElement>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlParameterableElement>, scriptValueToQList<QUmlParameterableElement>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlParameterSet>, scriptValueToQSet<QUmlParameterSet>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlParameterSet>, scriptValueToQList<QUmlParameterSet>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlPartDecomposition>, scriptValueToQSet<QUmlPartDecomposition>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlPartDecomposition>, scriptValueToQList<QUmlPartDecomposition>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlPin>, scriptValueToQSet<QUmlPin>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlPin>, scriptValueToQList<QUmlPin>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlPort>, scriptValueToQSet<QUmlPort>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlPort>, scriptValueToQList<QUmlPort>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlPrimitiveType>, scriptValueToQSet<QUmlPrimitiveType>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlPrimitiveType>, scriptValueToQList<QUmlPrimitiveType>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlProfile>, scriptValueToQSet<QUmlProfile>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlProfile>, scriptValueToQList<QUmlProfile>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlProfileApplication>, scriptValueToQSet<QUmlProfileApplication>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlProfileApplication>, scriptValueToQList<QUmlProfileApplication>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlProperty>, scriptValueToQSet<QUmlProperty>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlProperty>, scriptValueToQList<QUmlProperty>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlProtocolConformance>, scriptValueToQSet<QUmlProtocolConformance>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlProtocolConformance>, scriptValueToQList<QUmlProtocolConformance>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlProtocolStateMachine>, scriptValueToQSet<QUmlProtocolStateMachine>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlProtocolStateMachine>, scriptValueToQList<QUmlProtocolStateMachine>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlProtocolTransition>, scriptValueToQSet<QUmlProtocolTransition>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlProtocolTransition>, scriptValueToQList<QUmlProtocolTransition>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlPseudostate>, scriptValueToQSet<QUmlPseudostate>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlPseudostate>, scriptValueToQList<QUmlPseudostate>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlQualifierValue>, scriptValueToQSet<QUmlQualifierValue>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlQualifierValue>, scriptValueToQList<QUmlQualifierValue>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlRaiseExceptionAction>, scriptValueToQSet<QUmlRaiseExceptionAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlRaiseExceptionAction>, scriptValueToQList<QUmlRaiseExceptionAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlReadExtentAction>, scriptValueToQSet<QUmlReadExtentAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlReadExtentAction>, scriptValueToQList<QUmlReadExtentAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlReadIsClassifiedObjectAction>, scriptValueToQSet<QUmlReadIsClassifiedObjectAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlReadIsClassifiedObjectAction>, scriptValueToQList<QUmlReadIsClassifiedObjectAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlReadLinkAction>, scriptValueToQSet<QUmlReadLinkAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlReadLinkAction>, scriptValueToQList<QUmlReadLinkAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlReadLinkObjectEndAction>, scriptValueToQSet<QUmlReadLinkObjectEndAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlReadLinkObjectEndAction>, scriptValueToQList<QUmlReadLinkObjectEndAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlReadLinkObjectEndQualifierAction>, scriptValueToQSet<QUmlReadLinkObjectEndQualifierAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlReadLinkObjectEndQualifierAction>, scriptValueToQList<QUmlReadLinkObjectEndQualifierAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlReadSelfAction>, scriptValueToQSet<QUmlReadSelfAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlReadSelfAction>, scriptValueToQList<QUmlReadSelfAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlReadStructuralFeatureAction>, scriptValueToQSet<QUmlReadStructuralFeatureAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlReadStructuralFeatureAction>, scriptValueToQList<QUmlReadStructuralFeatureAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlReadVariableAction>, scriptValueToQSet<QUmlReadVariableAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlReadVariableAction>, scriptValueToQList<QUmlReadVariableAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlRealization>, scriptValueToQSet<QUmlRealization>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlRealization>, scriptValueToQList<QUmlRealization>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlReception>, scriptValueToQSet<QUmlReception>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlReception>, scriptValueToQList<QUmlReception>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlReclassifyObjectAction>, scriptValueToQSet<QUmlReclassifyObjectAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlReclassifyObjectAction>, scriptValueToQList<QUmlReclassifyObjectAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlRedefinableElement>, scriptValueToQSet<QUmlRedefinableElement>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlRedefinableElement>, scriptValueToQList<QUmlRedefinableElement>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlRedefinableTemplateSignature>, scriptValueToQSet<QUmlRedefinableTemplateSignature>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlRedefinableTemplateSignature>, scriptValueToQList<QUmlRedefinableTemplateSignature>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlReduceAction>, scriptValueToQSet<QUmlReduceAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlReduceAction>, scriptValueToQList<QUmlReduceAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlRegion>, scriptValueToQSet<QUmlRegion>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlRegion>, scriptValueToQList<QUmlRegion>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlRelationship>, scriptValueToQSet<QUmlRelationship>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlRelationship>, scriptValueToQList<QUmlRelationship>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlRemoveStructuralFeatureValueAction>, scriptValueToQSet<QUmlRemoveStructuralFeatureValueAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlRemoveStructuralFeatureValueAction>, scriptValueToQList<QUmlRemoveStructuralFeatureValueAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlRemoveVariableValueAction>, scriptValueToQSet<QUmlRemoveVariableValueAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlRemoveVariableValueAction>, scriptValueToQList<QUmlRemoveVariableValueAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlReplyAction>, scriptValueToQSet<QUmlReplyAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlReplyAction>, scriptValueToQList<QUmlReplyAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlSendObjectAction>, scriptValueToQSet<QUmlSendObjectAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlSendObjectAction>, scriptValueToQList<QUmlSendObjectAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlSendSignalAction>, scriptValueToQSet<QUmlSendSignalAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlSendSignalAction>, scriptValueToQList<QUmlSendSignalAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlSequenceNode>, scriptValueToQSet<QUmlSequenceNode>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlSequenceNode>, scriptValueToQList<QUmlSequenceNode>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlSignal>, scriptValueToQSet<QUmlSignal>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlSignal>, scriptValueToQList<QUmlSignal>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlSignalEvent>, scriptValueToQSet<QUmlSignalEvent>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlSignalEvent>, scriptValueToQList<QUmlSignalEvent>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlSlot>, scriptValueToQSet<QUmlSlot>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlSlot>, scriptValueToQList<QUmlSlot>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlStartClassifierBehaviorAction>, scriptValueToQSet<QUmlStartClassifierBehaviorAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlStartClassifierBehaviorAction>, scriptValueToQList<QUmlStartClassifierBehaviorAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlStartObjectBehaviorAction>, scriptValueToQSet<QUmlStartObjectBehaviorAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlStartObjectBehaviorAction>, scriptValueToQList<QUmlStartObjectBehaviorAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlState>, scriptValueToQSet<QUmlState>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlState>, scriptValueToQList<QUmlState>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlStateInvariant>, scriptValueToQSet<QUmlStateInvariant>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlStateInvariant>, scriptValueToQList<QUmlStateInvariant>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlStateMachine>, scriptValueToQSet<QUmlStateMachine>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlStateMachine>, scriptValueToQList<QUmlStateMachine>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlStereotype>, scriptValueToQSet<QUmlStereotype>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlStereotype>, scriptValueToQList<QUmlStereotype>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlStringExpression>, scriptValueToQSet<QUmlStringExpression>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlStringExpression>, scriptValueToQList<QUmlStringExpression>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlStructuralFeature>, scriptValueToQSet<QUmlStructuralFeature>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlStructuralFeature>, scriptValueToQList<QUmlStructuralFeature>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlStructuralFeatureAction>, scriptValueToQSet<QUmlStructuralFeatureAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlStructuralFeatureAction>, scriptValueToQList<QUmlStructuralFeatureAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlStructuredActivityNode>, scriptValueToQSet<QUmlStructuredActivityNode>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlStructuredActivityNode>, scriptValueToQList<QUmlStructuredActivityNode>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlStructuredClassifier>, scriptValueToQSet<QUmlStructuredClassifier>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlStructuredClassifier>, scriptValueToQList<QUmlStructuredClassifier>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlSubstitution>, scriptValueToQSet<QUmlSubstitution>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlSubstitution>, scriptValueToQList<QUmlSubstitution>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlTemplateableElement>, scriptValueToQSet<QUmlTemplateableElement>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlTemplateableElement>, scriptValueToQList<QUmlTemplateableElement>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlTemplateBinding>, scriptValueToQSet<QUmlTemplateBinding>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlTemplateBinding>, scriptValueToQList<QUmlTemplateBinding>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlTemplateParameter>, scriptValueToQSet<QUmlTemplateParameter>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlTemplateParameter>, scriptValueToQList<QUmlTemplateParameter>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlTemplateParameterSubstitution>, scriptValueToQSet<QUmlTemplateParameterSubstitution>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlTemplateParameterSubstitution>, scriptValueToQList<QUmlTemplateParameterSubstitution>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlTemplateSignature>, scriptValueToQSet<QUmlTemplateSignature>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlTemplateSignature>, scriptValueToQList<QUmlTemplateSignature>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlTestIdentityAction>, scriptValueToQSet<QUmlTestIdentityAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlTestIdentityAction>, scriptValueToQList<QUmlTestIdentityAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlTimeConstraint>, scriptValueToQSet<QUmlTimeConstraint>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlTimeConstraint>, scriptValueToQList<QUmlTimeConstraint>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlTimeEvent>, scriptValueToQSet<QUmlTimeEvent>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlTimeEvent>, scriptValueToQList<QUmlTimeEvent>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlTimeExpression>, scriptValueToQSet<QUmlTimeExpression>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlTimeExpression>, scriptValueToQList<QUmlTimeExpression>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlTimeInterval>, scriptValueToQSet<QUmlTimeInterval>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlTimeInterval>, scriptValueToQList<QUmlTimeInterval>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlTimeObservation>, scriptValueToQSet<QUmlTimeObservation>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlTimeObservation>, scriptValueToQList<QUmlTimeObservation>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlTransition>, scriptValueToQSet<QUmlTransition>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlTransition>, scriptValueToQList<QUmlTransition>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlTrigger>, scriptValueToQSet<QUmlTrigger>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlTrigger>, scriptValueToQList<QUmlTrigger>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlType>, scriptValueToQSet<QUmlType>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlType>, scriptValueToQList<QUmlType>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlTypedElement>, scriptValueToQSet<QUmlTypedElement>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlTypedElement>, scriptValueToQList<QUmlTypedElement>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlUnmarshallAction>, scriptValueToQSet<QUmlUnmarshallAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlUnmarshallAction>, scriptValueToQList<QUmlUnmarshallAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlUsage>, scriptValueToQSet<QUmlUsage>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlUsage>, scriptValueToQList<QUmlUsage>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlUseCase>, scriptValueToQSet<QUmlUseCase>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlUseCase>, scriptValueToQList<QUmlUseCase>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlValuePin>, scriptValueToQSet<QUmlValuePin>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlValuePin>, scriptValueToQList<QUmlValuePin>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlValueSpecification>, scriptValueToQSet<QUmlValueSpecification>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlValueSpecification>, scriptValueToQList<QUmlValueSpecification>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlValueSpecificationAction>, scriptValueToQSet<QUmlValueSpecificationAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlValueSpecificationAction>, scriptValueToQList<QUmlValueSpecificationAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlVariable>, scriptValueToQSet<QUmlVariable>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlVariable>, scriptValueToQList<QUmlVariable>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlVariableAction>, scriptValueToQSet<QUmlVariableAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlVariableAction>, scriptValueToQList<QUmlVariableAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlVertex>, scriptValueToQSet<QUmlVertex>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlVertex>, scriptValueToQList<QUmlVertex>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlWriteLinkAction>, scriptValueToQSet<QUmlWriteLinkAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlWriteLinkAction>, scriptValueToQList<QUmlWriteLinkAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlWriteStructuralFeatureAction>, scriptValueToQSet<QUmlWriteStructuralFeatureAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlWriteStructuralFeatureAction>, scriptValueToQList<QUmlWriteStructuralFeatureAction>); - qScriptRegisterMetaType(scriptEngine, qSetToScriptValue<QUmlWriteVariableAction>, scriptValueToQSet<QUmlWriteVariableAction>); - qScriptRegisterMetaType(scriptEngine, qListToScriptValue<QUmlWriteVariableAction>, scriptValueToQList<QUmlWriteVariableAction>); - } } QT_END_NAMESPACE diff --git a/src/plugins/metamodels/uml/qumlmetamodelplugin.cpp b/src/plugins/metamodels/uml/qumlmetamodelplugin.cpp index b17d50ac..c310b2b6 100644 --- a/src/plugins/metamodels/uml/qumlmetamodelplugin.cpp +++ b/src/plugins/metamodels/uml/qumlmetamodelplugin.cpp @@ -42,6 +42,8 @@ #include "qumlmetamodel.h" +#include <QtUml/QtUml> + QUmlMetaModelPlugin::QUmlMetaModelPlugin(QObject *parent) : QMetaModelPlugin(parent) { @@ -52,3 +54,204 @@ void QUmlMetaModelPlugin::initMetaModel(QScriptEngine *scriptEngine) QUmlMetaModel::init(scriptEngine); } +QModelingObject *QUmlMetaModelPlugin::createModelingObject(QString type) +{ + if (type == "QUmlAbstraction") return new QUmlAbstraction; + else if (type == "QUmlAcceptCallAction") return new QUmlAcceptCallAction; + else if (type == "QUmlAcceptEventAction") return new QUmlAcceptEventAction; + else if (type == "QUmlActionExecutionSpecification") return new QUmlActionExecutionSpecification; + else if (type == "QUmlActionInputPin") return new QUmlActionInputPin; + else if (type == "QUmlActivityFinalNode") return new QUmlActivityFinalNode; + else if (type == "QUmlActivity") return new QUmlActivity; + else if (type == "QUmlActivityParameterNode") return new QUmlActivityParameterNode; + else if (type == "QUmlActivityPartition") return new QUmlActivityPartition; + else if (type == "QUmlActor") return new QUmlActor; + else if (type == "QUmlAddStructuralFeatureValueAction") return new QUmlAddStructuralFeatureValueAction; + else if (type == "QUmlAddVariableValueAction") return new QUmlAddVariableValueAction; + else if (type == "QUmlAnyReceiveEvent") return new QUmlAnyReceiveEvent; + else if (type == "QUmlArtifact") return new QUmlArtifact; + else if (type == "QUmlAssociationClass") return new QUmlAssociationClass; + else if (type == "QUmlAssociation") return new QUmlAssociation; + else if (type == "QUmlBehaviorExecutionSpecification") return new QUmlBehaviorExecutionSpecification; + else if (type == "QUmlBroadcastSignalAction") return new QUmlBroadcastSignalAction; + else if (type == "QUmlCallBehaviorAction") return new QUmlCallBehaviorAction; + else if (type == "QUmlCallEvent") return new QUmlCallEvent; + else if (type == "QUmlCallOperationAction") return new QUmlCallOperationAction; + else if (type == "QUmlCentralBufferNode") return new QUmlCentralBufferNode; + else if (type == "QUmlChangeEvent") return new QUmlChangeEvent; + else if (type == "QUmlClass") return new QUmlClass; + else if (type == "QUmlClassifierTemplateParameter") return new QUmlClassifierTemplateParameter; + else if (type == "QUmlClause") return new QUmlClause; + else if (type == "QUmlClearAssociationAction") return new QUmlClearAssociationAction; + else if (type == "QUmlClearStructuralFeatureAction") return new QUmlClearStructuralFeatureAction; + else if (type == "QUmlClearVariableAction") return new QUmlClearVariableAction; + else if (type == "QUmlCollaboration") return new QUmlCollaboration; + else if (type == "QUmlCollaborationUse") return new QUmlCollaborationUse; + else if (type == "QUmlCombinedFragment") return new QUmlCombinedFragment; + else if (type == "QUmlComment") return new QUmlComment; + else if (type == "QUmlCommunicationPath") return new QUmlCommunicationPath; + else if (type == "QUmlComponent") return new QUmlComponent; + else if (type == "QUmlComponentRealization") return new QUmlComponentRealization; + else if (type == "QUmlConditionalNode") return new QUmlConditionalNode; + else if (type == "QUmlConnectableElementTemplateParameter") return new QUmlConnectableElementTemplateParameter; + else if (type == "QUmlConnectionPointReference") return new QUmlConnectionPointReference; + else if (type == "QUmlConnectorEnd") return new QUmlConnectorEnd; + else if (type == "QUmlConnector") return new QUmlConnector; + else if (type == "QUmlConsiderIgnoreFragment") return new QUmlConsiderIgnoreFragment; + else if (type == "QUmlConstraint") return new QUmlConstraint; + else if (type == "QUmlContinuation") return new QUmlContinuation; + else if (type == "QUmlControlFlow") return new QUmlControlFlow; + else if (type == "QUmlCreateLinkAction") return new QUmlCreateLinkAction; + else if (type == "QUmlCreateLinkObjectAction") return new QUmlCreateLinkObjectAction; + else if (type == "QUmlCreateObjectAction") return new QUmlCreateObjectAction; + else if (type == "QUmlDataStoreNode") return new QUmlDataStoreNode; + else if (type == "QUmlDataType") return new QUmlDataType; + else if (type == "QUmlDecisionNode") return new QUmlDecisionNode; + else if (type == "QUmlDependency") return new QUmlDependency; + else if (type == "QUmlDeployment") return new QUmlDeployment; + else if (type == "QUmlDeploymentSpecification") return new QUmlDeploymentSpecification; + else if (type == "QUmlDestroyLinkAction") return new QUmlDestroyLinkAction; + else if (type == "QUmlDestroyObjectAction") return new QUmlDestroyObjectAction; + else if (type == "QUmlDestructionOccurrenceSpecification") return new QUmlDestructionOccurrenceSpecification; + else if (type == "QUmlDevice") return new QUmlDevice; + else if (type == "QUmlDurationConstraint") return new QUmlDurationConstraint; + else if (type == "QUmlDuration") return new QUmlDuration; + else if (type == "QUmlDurationInterval") return new QUmlDurationInterval; + else if (type == "QUmlDurationObservation") return new QUmlDurationObservation; + else if (type == "QUmlElementImport") return new QUmlElementImport; + else if (type == "QUmlEnumeration") return new QUmlEnumeration; + else if (type == "QUmlEnumerationLiteral") return new QUmlEnumerationLiteral; + else if (type == "QUmlExceptionHandler") return new QUmlExceptionHandler; + else if (type == "QUmlExecutionEnvironment") return new QUmlExecutionEnvironment; + else if (type == "QUmlExecutionOccurrenceSpecification") return new QUmlExecutionOccurrenceSpecification; + else if (type == "QUmlExpansionNode") return new QUmlExpansionNode; + else if (type == "QUmlExpansionRegion") return new QUmlExpansionRegion; + else if (type == "QUmlExpression") return new QUmlExpression; + else if (type == "QUmlExtend") return new QUmlExtend; + else if (type == "QUmlExtensionEnd") return new QUmlExtensionEnd; + else if (type == "QUmlExtension") return new QUmlExtension; + else if (type == "QUmlExtensionPoint") return new QUmlExtensionPoint; + else if (type == "QUmlFinalState") return new QUmlFinalState; + else if (type == "QUmlFlowFinalNode") return new QUmlFlowFinalNode; + else if (type == "QUmlForkNode") return new QUmlForkNode; + else if (type == "QUmlFunctionBehavior") return new QUmlFunctionBehavior; + else if (type == "QUmlGate") return new QUmlGate; + else if (type == "QUmlGeneralization") return new QUmlGeneralization; + else if (type == "QUmlGeneralizationSet") return new QUmlGeneralizationSet; + else if (type == "QUmlGeneralOrdering") return new QUmlGeneralOrdering; + else if (type == "QUmlImage") return new QUmlImage; + else if (type == "QUmlInclude") return new QUmlInclude; + else if (type == "QUmlInformationFlow") return new QUmlInformationFlow; + else if (type == "QUmlInformationItem") return new QUmlInformationItem; + else if (type == "QUmlInitialNode") return new QUmlInitialNode; + else if (type == "QUmlInputPin") return new QUmlInputPin; + else if (type == "QUmlInstanceSpecification") return new QUmlInstanceSpecification; + else if (type == "QUmlInstanceValue") return new QUmlInstanceValue; + else if (type == "QUmlInteractionConstraint") return new QUmlInteractionConstraint; + else if (type == "QUmlInteraction") return new QUmlInteraction; + else if (type == "QUmlInteractionOperand") return new QUmlInteractionOperand; + else if (type == "QUmlInteractionUse") return new QUmlInteractionUse; + else if (type == "QUmlInterface") return new QUmlInterface; + else if (type == "QUmlInterfaceRealization") return new QUmlInterfaceRealization; + else if (type == "QUmlInterruptibleActivityRegion") return new QUmlInterruptibleActivityRegion; + else if (type == "QUmlIntervalConstraint") return new QUmlIntervalConstraint; + else if (type == "QUmlInterval") return new QUmlInterval; + else if (type == "QUmlJoinNode") return new QUmlJoinNode; + else if (type == "QUmlLifeline") return new QUmlLifeline; + else if (type == "QUmlLinkEndCreationData") return new QUmlLinkEndCreationData; + else if (type == "QUmlLinkEndData") return new QUmlLinkEndData; + else if (type == "QUmlLinkEndDestructionData") return new QUmlLinkEndDestructionData; + else if (type == "QUmlLiteralBoolean") return new QUmlLiteralBoolean; + else if (type == "QUmlLiteralInteger") return new QUmlLiteralInteger; + else if (type == "QUmlLiteralNull") return new QUmlLiteralNull; + else if (type == "QUmlLiteralReal") return new QUmlLiteralReal; + else if (type == "QUmlLiteralString") return new QUmlLiteralString; + else if (type == "QUmlLiteralUnlimitedNatural") return new QUmlLiteralUnlimitedNatural; + else if (type == "QUmlLoopNode") return new QUmlLoopNode; + else if (type == "QUmlManifestation") return new QUmlManifestation; + else if (type == "QUmlMergeNode") return new QUmlMergeNode; + else if (type == "QUmlMessage") return new QUmlMessage; + else if (type == "QUmlMessageOccurrenceSpecification") return new QUmlMessageOccurrenceSpecification; + else if (type == "QUmlModel") return new QUmlModel; + else if (type == "QUmlNode") return new QUmlNode; + else if (type == "QUmlObjectFlow") return new QUmlObjectFlow; + else if (type == "QUmlOccurrenceSpecification") return new QUmlOccurrenceSpecification; + else if (type == "QUmlOpaqueAction") return new QUmlOpaqueAction; + else if (type == "QUmlOpaqueBehavior") return new QUmlOpaqueBehavior; + else if (type == "QUmlOpaqueExpression") return new QUmlOpaqueExpression; + else if (type == "QUmlOperation") return new QUmlOperation; + else if (type == "QUmlOperationTemplateParameter") return new QUmlOperationTemplateParameter; + else if (type == "QUmlOutputPin") return new QUmlOutputPin; + else if (type == "QUmlPackage") return new QUmlPackage; + else if (type == "QUmlPackageImport") return new QUmlPackageImport; + else if (type == "QUmlPackageMerge") return new QUmlPackageMerge; + else if (type == "QUmlParameter") return new QUmlParameter; + else if (type == "QUmlParameterSet") return new QUmlParameterSet; + else if (type == "QUmlPartDecomposition") return new QUmlPartDecomposition; + else if (type == "QUmlPort") return new QUmlPort; + else if (type == "QUmlPrimitiveType") return new QUmlPrimitiveType; + else if (type == "QUmlProfileApplication") return new QUmlProfileApplication; + else if (type == "QUmlProfile") return new QUmlProfile; + else if (type == "QUmlProperty") return new QUmlProperty; + else if (type == "QUmlProtocolConformance") return new QUmlProtocolConformance; + else if (type == "QUmlProtocolStateMachine") return new QUmlProtocolStateMachine; + else if (type == "QUmlProtocolTransition") return new QUmlProtocolTransition; + else if (type == "QUmlPseudostate") return new QUmlPseudostate; + else if (type == "QUmlQualifierValue") return new QUmlQualifierValue; + else if (type == "QUmlRaiseExceptionAction") return new QUmlRaiseExceptionAction; + else if (type == "QUmlReadExtentAction") return new QUmlReadExtentAction; + else if (type == "QUmlReadIsClassifiedObjectAction") return new QUmlReadIsClassifiedObjectAction; + else if (type == "QUmlReadLinkAction") return new QUmlReadLinkAction; + else if (type == "QUmlReadLinkObjectEndAction") return new QUmlReadLinkObjectEndAction; + else if (type == "QUmlReadLinkObjectEndQualifierAction") return new QUmlReadLinkObjectEndQualifierAction; + else if (type == "QUmlReadSelfAction") return new QUmlReadSelfAction; + else if (type == "QUmlReadStructuralFeatureAction") return new QUmlReadStructuralFeatureAction; + else if (type == "QUmlReadVariableAction") return new QUmlReadVariableAction; + else if (type == "QUmlRealization") return new QUmlRealization; + else if (type == "QUmlReception") return new QUmlReception; + else if (type == "QUmlReclassifyObjectAction") return new QUmlReclassifyObjectAction; + else if (type == "QUmlRedefinableTemplateSignature") return new QUmlRedefinableTemplateSignature; + else if (type == "QUmlReduceAction") return new QUmlReduceAction; + else if (type == "QUmlRegion") return new QUmlRegion; + else if (type == "QUmlRemoveStructuralFeatureValueAction") return new QUmlRemoveStructuralFeatureValueAction; + else if (type == "QUmlRemoveVariableValueAction") return new QUmlRemoveVariableValueAction; + else if (type == "QUmlReplyAction") return new QUmlReplyAction; + else if (type == "QUmlSendObjectAction") return new QUmlSendObjectAction; + else if (type == "QUmlSendSignalAction") return new QUmlSendSignalAction; + else if (type == "QUmlSequenceNode") return new QUmlSequenceNode; + else if (type == "QUmlSignalEvent") return new QUmlSignalEvent; + else if (type == "QUmlSignal") return new QUmlSignal; + else if (type == "QUmlSlot") return new QUmlSlot; + else if (type == "QUmlStartClassifierBehaviorAction") return new QUmlStartClassifierBehaviorAction; + else if (type == "QUmlStartObjectBehaviorAction") return new QUmlStartObjectBehaviorAction; + else if (type == "QUmlState") return new QUmlState; + else if (type == "QUmlStateInvariant") return new QUmlStateInvariant; + else if (type == "QUmlStateMachine") return new QUmlStateMachine; + else if (type == "QUmlStereotype") return new QUmlStereotype; + else if (type == "QUmlStringExpression") return new QUmlStringExpression; + else if (type == "QUmlStructuredActivityNode") return new QUmlStructuredActivityNode; + else if (type == "QUmlSubstitution") return new QUmlSubstitution; + else if (type == "QUmlTemplateBinding") return new QUmlTemplateBinding; + else if (type == "QUmlTemplateParameter") return new QUmlTemplateParameter; + else if (type == "QUmlTemplateParameterSubstitution") return new QUmlTemplateParameterSubstitution; + else if (type == "QUmlTemplateSignature") return new QUmlTemplateSignature; + else if (type == "QUmlTestIdentityAction") return new QUmlTestIdentityAction; + else if (type == "QUmlTimeConstraint") return new QUmlTimeConstraint; + else if (type == "QUmlTimeEvent") return new QUmlTimeEvent; + else if (type == "QUmlTimeExpression") return new QUmlTimeExpression; + else if (type == "QUmlTimeInterval") return new QUmlTimeInterval; + else if (type == "QUmlTimeObservation") return new QUmlTimeObservation; + else if (type == "QUmlTransition") return new QUmlTransition; + else if (type == "QUmlTrigger") return new QUmlTrigger; + else if (type == "QUmlUnmarshallAction") return new QUmlUnmarshallAction; + else if (type == "QUmlUsage") return new QUmlUsage; + else if (type == "QUmlUseCase") return new QUmlUseCase; + else if (type == "QUmlValuePin") return new QUmlValuePin; + else if (type == "QUmlValueSpecificationAction") return new QUmlValueSpecificationAction; + else if (type == "QUmlVariable") return new QUmlVariable; + Q_ASSERT_X(true, + "QUmlMetaModelPlugin::createModelingObject", + QStringLiteral("QUmlMetaModelPlugin does not know how to create instances of '%1' type !").arg(type).toLatin1()); + return 0; +} + diff --git a/src/plugins/metamodels/uml/qumlmetamodelplugin.h b/src/plugins/metamodels/uml/qumlmetamodelplugin.h index e4403da6..4587fd1a 100644 --- a/src/plugins/metamodels/uml/qumlmetamodelplugin.h +++ b/src/plugins/metamodels/uml/qumlmetamodelplugin.h @@ -41,7 +41,10 @@ #ifndef QUMLMETAMODELPLUGIN_H #define QUMLMETAMODELPLUGIN_H -#include <QtWrappedObjects/QMetaModelPlugin> +#include <QtModeling/QtModelingGlobal> +#include <QtModeling/QMetaModelPlugin> + +class QModelingObject; class QUmlMetaModelPlugin : public QMetaModelPlugin { @@ -51,7 +54,8 @@ class QUmlMetaModelPlugin : public QMetaModelPlugin public: QUmlMetaModelPlugin(QObject *parent = 0); - void initMetaModel(QScriptEngine *scriptEngine = 0); + virtual void initMetaModel(QScriptEngine *scriptEngine = 0); + virtual QModelingObject *createModelingObject(QString type); }; #endif // QUMLMETAMODELPLUGIN_H diff --git a/src/src.pro b/src/src.pro index 1ae13047..f18fb851 100644 --- a/src/src.pro +++ b/src/src.pro @@ -1,8 +1,8 @@ TEMPLATE = subdirs CONFIG += ordered -SUBDIRS = modeling wrappedobjects -#qtHaveModule(widgets): SUBDIRS += wrappedobjectswidgets +SUBDIRS = modeling +#qtHaveModule(widgets): SUBDIRS += modelingwidgets #qtHaveModule(qml): SUBDIRS += mof uml duse saduseprofile plugins -qtHaveModule(qml): SUBDIRS += mof uml duse saduseprofile +qtHaveModule(qml): SUBDIRS += uml plugins #qtHaveModule(quick): SUBDIRS += imports diff --git a/src/uml/qobjects/qumlclassobject.cpp b/src/uml/qobjects/qumlclassobject.cpp index fe25aa0b..0d6bdff8 100644 --- a/src/uml/qobjects/qumlclassobject.cpp +++ b/src/uml/qobjects/qumlclassobject.cpp @@ -132,7 +132,10 @@ QString QUmlClassObject::name() const QObject *QUmlClassObject::nameExpression() const { - return qmodelingobjectproperty_cast<QUmlClass *>(this)->nameExpression()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlClass *>(this)->nameExpression()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlClass *>(this)->nameExpression()->asQObject(); } QObject *QUmlClassObject::namespace_() const @@ -198,8 +201,12 @@ const QSet<QObject *> QUmlClassObject::packageImport() const QObject *QUmlClassObject::owningTemplateParameter() const { - return qmodelingobjectproperty_cast<QUmlClass *>(this)->owningTemplateParameter()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlClass *>(this)->owningTemplateParameter()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlClass *>(this)->owningTemplateParameter()->asQObject(); } + // OWNED ATTRIBUTES [PackageableElement] QtUml::VisibilityKind QUmlClassObject::visibility() const @@ -296,7 +303,10 @@ bool QUmlClassObject::isFinalSpecialization() const QObject *QUmlClassObject::ownedTemplateSignature() const { - return qmodelingobjectproperty_cast<QUmlClass *>(this)->ownedTemplateSignature()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlClass *>(this)->ownedTemplateSignature()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlClass *>(this)->ownedTemplateSignature()->asQObject(); } const QSet<QObject *> QUmlClassObject::ownedUseCase() const @@ -325,7 +335,10 @@ const QSet<QObject *> QUmlClassObject::redefinedClassifier() const QObject *QUmlClassObject::representation() const { - return qmodelingobjectproperty_cast<QUmlClass *>(this)->representation()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlClass *>(this)->representation()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlClass *>(this)->representation()->asQObject(); } const QSet<QObject *> QUmlClassObject::substitution() const @@ -338,7 +351,10 @@ const QSet<QObject *> QUmlClassObject::substitution() const QObject *QUmlClassObject::templateParameter() const { - return qmodelingobjectproperty_cast<QUmlClass *>(this)->templateParameter()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlClass *>(this)->templateParameter()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlClass *>(this)->templateParameter()->asQObject(); } const QSet<QObject *> QUmlClassObject::useCase() const @@ -389,7 +405,10 @@ const QSet<QObject *> QUmlClassObject::ownedPort() const QObject *QUmlClassObject::classifierBehavior() const { - return qmodelingobjectproperty_cast<QUmlClass *>(this)->classifierBehavior()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlClass *>(this)->classifierBehavior()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlClass *>(this)->classifierBehavior()->asQObject(); } const QSet<QObject *> QUmlClassObject::interfaceRealization() const diff --git a/src/uml/qobjects/qumlenumerationliteralobject.cpp b/src/uml/qobjects/qumlenumerationliteralobject.cpp index 107145f7..8d6c1d8e 100644 --- a/src/uml/qobjects/qumlenumerationliteralobject.cpp +++ b/src/uml/qobjects/qumlenumerationliteralobject.cpp @@ -112,7 +112,10 @@ QString QUmlEnumerationLiteralObject::name() const QObject *QUmlEnumerationLiteralObject::nameExpression() const { - return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->nameExpression()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->nameExpression()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->nameExpression()->asQObject(); } QObject *QUmlEnumerationLiteralObject::namespace_() const @@ -124,16 +127,23 @@ QString QUmlEnumerationLiteralObject::qualifiedName() const { return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->qualifiedName(); } + // OWNED ATTRIBUTES [ParameterableElement] QObject *QUmlEnumerationLiteralObject::owningTemplateParameter() const { - return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->owningTemplateParameter()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->owningTemplateParameter()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->owningTemplateParameter()->asQObject(); } QObject *QUmlEnumerationLiteralObject::templateParameter() const { - return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->templateParameter()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->templateParameter()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->templateParameter()->asQObject(); } // OWNED ATTRIBUTES [PackageableElement] @@ -173,14 +183,20 @@ const QSet<QObject *> QUmlEnumerationLiteralObject::slot_() const QObject *QUmlEnumerationLiteralObject::specification() const { - return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->specification()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->specification()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->specification()->asQObject(); } // OWNED ATTRIBUTES [EnumerationLiteral] QObject *QUmlEnumerationLiteralObject::classifier() const { - return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->classifier()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->classifier()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->classifier()->asQObject(); } QObject *QUmlEnumerationLiteralObject::enumeration() const diff --git a/src/uml/qobjects/qumlenumerationobject.cpp b/src/uml/qobjects/qumlenumerationobject.cpp index 7f51fbd5..2fadd4d0 100644 --- a/src/uml/qobjects/qumlenumerationobject.cpp +++ b/src/uml/qobjects/qumlenumerationobject.cpp @@ -126,12 +126,18 @@ QString QUmlEnumerationObject::name() const QObject *QUmlEnumerationObject::nameExpression() const { - return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->nameExpression()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->nameExpression()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->nameExpression()->asQObject(); } QObject *QUmlEnumerationObject::namespace_() const { - return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->namespace_()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->namespace_()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->namespace_()->asQObject(); } QString QUmlEnumerationObject::qualifiedName() const @@ -192,8 +198,12 @@ const QSet<QObject *> QUmlEnumerationObject::packageImport() const QObject *QUmlEnumerationObject::owningTemplateParameter() const { - return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->owningTemplateParameter()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->owningTemplateParameter()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->owningTemplateParameter()->asQObject(); } + // OWNED ATTRIBUTES [PackageableElement] QtUml::VisibilityKind QUmlEnumerationObject::visibility() const @@ -205,7 +215,10 @@ QtUml::VisibilityKind QUmlEnumerationObject::visibility() const QObject *QUmlEnumerationObject::package() const { - return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->package()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->package()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->package()->asQObject(); } // OWNED ATTRIBUTES [RedefinableElement] @@ -303,7 +316,10 @@ bool QUmlEnumerationObject::isFinalSpecialization() const QObject *QUmlEnumerationObject::ownedTemplateSignature() const { - return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->ownedTemplateSignature()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->ownedTemplateSignature()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->ownedTemplateSignature()->asQObject(); } const QSet<QObject *> QUmlEnumerationObject::ownedUseCase() const @@ -332,7 +348,10 @@ const QSet<QObject *> QUmlEnumerationObject::redefinedClassifier() const QObject *QUmlEnumerationObject::representation() const { - return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->representation()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->representation()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->representation()->asQObject(); } const QSet<QObject *> QUmlEnumerationObject::substitution() const @@ -345,7 +364,10 @@ const QSet<QObject *> QUmlEnumerationObject::substitution() const QObject *QUmlEnumerationObject::templateParameter() const { - return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->templateParameter()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->templateParameter()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->templateParameter()->asQObject(); } const QSet<QObject *> QUmlEnumerationObject::useCase() const @@ -621,7 +643,8 @@ void QUmlEnumerationObject::setQualifiedName(QString qualifiedName) { qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->setQualifiedName(qualifiedName); } - // SLOTS FOR OWNED ATTRIBUTES [Namespace] + +// SLOTS FOR OWNED ATTRIBUTES [Namespace] void QUmlEnumerationObject::addElementImport(QObject *elementImport) { diff --git a/src/uml/qobjects/qumlpackageobject.cpp b/src/uml/qobjects/qumlpackageobject.cpp index 63ae7727..65bfb09f 100644 --- a/src/uml/qobjects/qumlpackageobject.cpp +++ b/src/uml/qobjects/qumlpackageobject.cpp @@ -96,7 +96,10 @@ const QSet<QObject *> QUmlPackageObject::ownedElement() const QObject *QUmlPackageObject::owner() const { - return qmodelingobjectproperty_cast<QUmlPackage *>(this)->owner()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlPackage *>(this)->owner()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlPackage *>(this)->owner()->asQObject(); } // OWNED ATTRIBUTES [NamedElement] @@ -116,18 +119,25 @@ QString QUmlPackageObject::name() const QObject *QUmlPackageObject::nameExpression() const { - return qmodelingobjectproperty_cast<QUmlPackage *>(this)->nameExpression()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlPackage *>(this)->nameExpression()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlPackage *>(this)->nameExpression()->asQObject(); } QObject *QUmlPackageObject::namespace_() const { - return qmodelingobjectproperty_cast<QUmlPackage *>(this)->namespace_()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlPackage *>(this)->namespace_()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlPackage *>(this)->namespace_()->asQObject(); } QString QUmlPackageObject::qualifiedName() const { return qmodelingobjectproperty_cast<QUmlPackage *>(this)->qualifiedName(); } + // OWNED ATTRIBUTES [Namespace] const QSet<QObject *> QUmlPackageObject::elementImport() const @@ -182,12 +192,18 @@ const QSet<QObject *> QUmlPackageObject::packageImport() const QObject *QUmlPackageObject::owningTemplateParameter() const { - return qmodelingobjectproperty_cast<QUmlPackage *>(this)->owningTemplateParameter()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlPackage *>(this)->owningTemplateParameter()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlPackage *>(this)->owningTemplateParameter()->asQObject(); } QObject *QUmlPackageObject::templateParameter() const { - return qmodelingobjectproperty_cast<QUmlPackage *>(this)->templateParameter()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlPackage *>(this)->templateParameter()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlPackage *>(this)->templateParameter()->asQObject(); } // OWNED ATTRIBUTES [PackageableElement] @@ -201,7 +217,10 @@ QtUml::VisibilityKind QUmlPackageObject::visibility() const QObject *QUmlPackageObject::ownedTemplateSignature() const { - return qmodelingobjectproperty_cast<QUmlPackage *>(this)->ownedTemplateSignature()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlPackage *>(this)->ownedTemplateSignature()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlPackage *>(this)->ownedTemplateSignature()->asQObject(); } const QSet<QObject *> QUmlPackageObject::templateBinding() const @@ -229,7 +248,10 @@ const QSet<QObject *> QUmlPackageObject::nestedPackage() const QObject *QUmlPackageObject::nestingPackage() const { - return qmodelingobjectproperty_cast<QUmlPackage *>(this)->nestingPackage()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlPackage *>(this)->nestingPackage()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlPackage *>(this)->nestingPackage()->asQObject(); } const QSet<QObject *> QUmlPackageObject::ownedStereotype() const @@ -382,7 +404,10 @@ QSet<QObject *> QUmlPackageObject::allApplicableStereotypes() const QObject *QUmlPackageObject::containingProfile() const { - return qmodelingobjectproperty_cast<QUmlPackage *>(this)->containingProfile()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlPackage *>(this)->containingProfile()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlPackage *>(this)->containingProfile()->asQObject(); } bool QUmlPackageObject::makesVisible(QObject *el) const diff --git a/src/uml/qobjects/qumlprimitivetypeobject.cpp b/src/uml/qobjects/qumlprimitivetypeobject.cpp index 76d49e7c..ecfd208c 100644 --- a/src/uml/qobjects/qumlprimitivetypeobject.cpp +++ b/src/uml/qobjects/qumlprimitivetypeobject.cpp @@ -125,12 +125,18 @@ QString QUmlPrimitiveTypeObject::name() const QObject *QUmlPrimitiveTypeObject::nameExpression() const { - return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->nameExpression()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->nameExpression()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->nameExpression()->asQObject(); } QObject *QUmlPrimitiveTypeObject::namespace_() const { - return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->namespace_()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->namespace_()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->namespace_()->asQObject(); } QString QUmlPrimitiveTypeObject::qualifiedName() const @@ -191,7 +197,10 @@ const QSet<QObject *> QUmlPrimitiveTypeObject::packageImport() const QObject *QUmlPrimitiveTypeObject::owningTemplateParameter() const { - return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->owningTemplateParameter()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->owningTemplateParameter()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->owningTemplateParameter()->asQObject(); } // OWNED ATTRIBUTES [PackageableElement] @@ -302,7 +311,10 @@ bool QUmlPrimitiveTypeObject::isFinalSpecialization() const QObject *QUmlPrimitiveTypeObject::ownedTemplateSignature() const { - return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->ownedTemplateSignature()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->ownedTemplateSignature()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->ownedTemplateSignature()->asQObject(); } const QSet<QObject *> QUmlPrimitiveTypeObject::ownedUseCase() const @@ -331,7 +343,10 @@ const QSet<QObject *> QUmlPrimitiveTypeObject::redefinedClassifier() const QObject *QUmlPrimitiveTypeObject::representation() const { - return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->representation()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->representation()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->representation()->asQObject(); } const QSet<QObject *> QUmlPrimitiveTypeObject::substitution() const @@ -344,7 +359,10 @@ const QSet<QObject *> QUmlPrimitiveTypeObject::substitution() const QObject *QUmlPrimitiveTypeObject::templateParameter() const { - return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->templateParameter()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->templateParameter()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->templateParameter()->asQObject(); } const QSet<QObject *> QUmlPrimitiveTypeObject::useCase() const diff --git a/src/uml/qobjects/qumlpropertyobject.cpp b/src/uml/qobjects/qumlpropertyobject.cpp index 505f769a..22bdbc45 100644 --- a/src/uml/qobjects/qumlpropertyobject.cpp +++ b/src/uml/qobjects/qumlpropertyobject.cpp @@ -119,7 +119,10 @@ QString QUmlPropertyObject::name() const QObject *QUmlPropertyObject::nameExpression() const { - return qmodelingobjectproperty_cast<QUmlProperty *>(this)->nameExpression()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlProperty *>(this)->nameExpression()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlProperty *>(this)->nameExpression()->asQObject(); } QObject *QUmlPropertyObject::namespace_() const @@ -163,7 +166,10 @@ int QUmlPropertyObject::lower() const QObject *QUmlPropertyObject::lowerValue() const { - return qmodelingobjectproperty_cast<QUmlProperty *>(this)->lowerValue()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlProperty *>(this)->lowerValue()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlProperty *>(this)->lowerValue()->asQObject(); } int QUmlPropertyObject::upper() const @@ -173,7 +179,10 @@ int QUmlPropertyObject::upper() const QObject *QUmlPropertyObject::upperValue() const { - return qmodelingobjectproperty_cast<QUmlProperty *>(this)->upperValue()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlProperty *>(this)->upperValue()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlProperty *>(this)->upperValue()->asQObject(); } // OWNED ATTRIBUTES [RedefinableElement] @@ -218,7 +227,10 @@ bool QUmlPropertyObject::isStatic() const QObject *QUmlPropertyObject::owningTemplateParameter() const { - return qmodelingobjectproperty_cast<QUmlProperty *>(this)->owningTemplateParameter()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlProperty *>(this)->owningTemplateParameter()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlProperty *>(this)->owningTemplateParameter()->asQObject(); } // OWNED ATTRIBUTES [ConnectableElement] @@ -232,7 +244,10 @@ const QList<QObject *> QUmlPropertyObject::end() const QObject *QUmlPropertyObject::templateParameter() const { - return qmodelingobjectproperty_cast<QUmlProperty *>(this)->templateParameter()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlProperty *>(this)->templateParameter()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlProperty *>(this)->templateParameter()->asQObject(); } // OWNED ATTRIBUTES [DeploymentTarget] @@ -262,22 +277,34 @@ QtUml::AggregationKind QUmlPropertyObject::aggregation() const QObject *QUmlPropertyObject::association() const { - return qmodelingobjectproperty_cast<QUmlProperty *>(this)->association()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlProperty *>(this)->association()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlProperty *>(this)->association()->asQObject(); } QObject *QUmlPropertyObject::associationEnd() const { - return qmodelingobjectproperty_cast<QUmlProperty *>(this)->associationEnd()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlProperty *>(this)->associationEnd()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlProperty *>(this)->associationEnd()->asQObject(); } QObject *QUmlPropertyObject::class_() const { - return qmodelingobjectproperty_cast<QUmlProperty *>(this)->class_()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlProperty *>(this)->class_()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlProperty *>(this)->class_()->asQObject(); } QObject *QUmlPropertyObject::datatype() const { - return qmodelingobjectproperty_cast<QUmlProperty *>(this)->datatype()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlProperty *>(this)->datatype()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlProperty *>(this)->datatype()->asQObject(); } QString QUmlPropertyObject::default_() const @@ -287,12 +314,18 @@ QString QUmlPropertyObject::default_() const QObject *QUmlPropertyObject::defaultValue() const { - return qmodelingobjectproperty_cast<QUmlProperty *>(this)->defaultValue()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlProperty *>(this)->defaultValue()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlProperty *>(this)->defaultValue()->asQObject(); } QObject *QUmlPropertyObject::interface_() const { - return qmodelingobjectproperty_cast<QUmlProperty *>(this)->interface_()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlProperty *>(this)->interface_()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlProperty *>(this)->interface_()->asQObject(); } bool QUmlPropertyObject::isComposite() const @@ -322,12 +355,18 @@ bool QUmlPropertyObject::isReadOnly() const QObject *QUmlPropertyObject::opposite() const { - return qmodelingobjectproperty_cast<QUmlProperty *>(this)->opposite()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlProperty *>(this)->opposite()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlProperty *>(this)->opposite()->asQObject(); } QObject *QUmlPropertyObject::owningAssociation() const { - return qmodelingobjectproperty_cast<QUmlProperty *>(this)->owningAssociation()->asQObject(); + if (!qmodelingobjectproperty_cast<QUmlProperty *>(this)->owningAssociation()) + return 0; + else + return qmodelingobjectproperty_cast<QUmlProperty *>(this)->owningAssociation()->asQObject(); } const QList<QObject *> QUmlPropertyObject::qualifier() const diff --git a/src/uml/qumlelement.cpp b/src/uml/qumlelement.cpp index b8c87228..97138e84 100644 --- a/src/uml/qumlelement.cpp +++ b/src/uml/qumlelement.cpp @@ -156,7 +156,7 @@ void QUmlElement::setOwner(QUmlElement *owner) if (_owner != owner) { _owner = owner; - if (owner->asQObject() && this->asQObject()) + if (owner && owner->asQObject() && this->asQObject()) QObject::connect(owner->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setOwner())); } } @@ -168,9 +168,9 @@ void QUmlElement::setOwner(QUmlElement *owner) */ QSet<QUmlElement *> QUmlElement::allOwnedElements() const { - qWarning("UmlElement::allOwnedElements(): to be implemented (operation)"); - - return QSet<QUmlElement *> (); + QSet<QUmlElement *> allOwnedElements_; + allOwnedElements(allOwnedElements_); + return allOwnedElements_; } /*! @@ -178,9 +178,7 @@ QSet<QUmlElement *> QUmlElement::allOwnedElements() const */ bool QUmlElement::mustBeOwned() const { - qWarning("UmlElement::mustBeOwned(): to be implemented (operation)"); - - return bool (); + return true; } void QUmlElement::setPropertyData() @@ -205,3 +203,10 @@ void QUmlElement::setPropertyData() } +void QUmlElement::allOwnedElements(QSet<QUmlElement *> &allOwnedElements_) const +{ + allOwnedElements_.unite(_ownedElement); + foreach (QUmlElement *element, _ownedElement) + element->allOwnedElements(allOwnedElements_); +} + diff --git a/src/uml/qumlelement.h b/src/uml/qumlelement.h index 762a2cac..347c6069 100644 --- a/src/uml/qumlelement.h +++ b/src/uml/qumlelement.h @@ -83,6 +83,9 @@ protected: QUmlElement *_owner; virtual void setPropertyData(); + +private: + void allOwnedElements(QSet<QUmlElement *> &allOwnedElements_) const; }; QT_END_NAMESPACE diff --git a/src/uml/qumlenumerationliteral.cpp b/src/uml/qumlenumerationliteral.cpp index ee4dc459..c1799a49 100644 --- a/src/uml/qumlenumerationliteral.cpp +++ b/src/uml/qumlenumerationliteral.cpp @@ -151,7 +151,7 @@ void QUmlEnumerationLiteral::setEnumeration(QUmlEnumeration *enumeration) // Adjust subsetted properties _enumeration = enumeration; - if (enumeration->asQObject() && this->asQObject()) + if (enumeration && enumeration->asQObject() && this->asQObject()) QObject::connect(enumeration->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setEnumeration())); // Adjust subsetted properties diff --git a/src/uml/qumlgeneralization.cpp b/src/uml/qumlgeneralization.cpp index 7a72cfb0..e19baecd 100644 --- a/src/uml/qumlgeneralization.cpp +++ b/src/uml/qumlgeneralization.cpp @@ -107,7 +107,7 @@ void QUmlGeneralization::setGeneral(QUmlClassifier *general) removeTarget(_general); _general = general; - if (general->asQObject() && this->asQObject()) + if (general && general->asQObject() && this->asQObject()) QObject::connect(general->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setGeneral())); // Adjust subsetted properties @@ -195,7 +195,7 @@ void QUmlGeneralization::setSpecific(QUmlClassifier *specific) removeSource(_specific); _specific = specific; - if (specific->asQObject() && this->asQObject()) + if (specific && specific->asQObject() && this->asQObject()) QObject::connect(specific->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSpecific())); // Adjust subsetted properties diff --git a/src/uml/qumlnamedelement.cpp b/src/uml/qumlnamedelement.cpp index e522d8e1..12bf177d 100644 --- a/src/uml/qumlnamedelement.cpp +++ b/src/uml/qumlnamedelement.cpp @@ -187,7 +187,7 @@ void QUmlNamedElement::setNamespace(QUmlNamespace *namespace_) // Adjust subsetted properties _namespace_ = namespace_; - if (namespace_->asQObject() && this->asQObject()) + if (namespace_ && namespace_->asQObject() && this->asQObject()) QObject::connect(namespace_->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setNamespace())); // Adjust subsetted properties @@ -202,9 +202,16 @@ QString QUmlNamedElement::qualifiedName() const { // This is a read-only derived property - qWarning("UmlNamedElement::qualifiedName(): to be implemented (this is a derived property)"); - - return QString(); + if (_name.isEmpty()) return QString(); + QString qualifiedName_(_name); + QList<QUmlNamespace *> allNamespaces_ = allNamespaces(); + QString separator_ = separator(); + foreach (QUmlNamespace *namespace_, allNamespaces_) { + if (namespace_->name().isEmpty()) + return QString(); + qualifiedName_.prepend(separator_).prepend(namespace_->name()); + } + return qualifiedName_; } void QUmlNamedElement::setQualifiedName(QString qualifiedName) @@ -245,9 +252,18 @@ void QUmlNamedElement::setVisibility(QtUml::VisibilityKind visibility) */ QList<QUmlNamespace *> QUmlNamedElement::allNamespaces() const { - qWarning("UmlNamedElement::allNamespaces(): to be implemented (operation)"); - - return QList<QUmlNamespace *> (); + if (!_namespace_) { + return QList<QUmlNamespace *>(); + } + else { + QList<QUmlNamespace *> allNamespaces_; + QUmlNamespace *namespace_ = this->namespace_(); + while (namespace_) { + allNamespaces_.append(namespace_); + namespace_ = namespace_->namespace_(); + } + return allNamespaces_; + } } /*! @@ -277,9 +293,7 @@ bool QUmlNamedElement::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace */ QString QUmlNamedElement::separator() const { - qWarning("UmlNamedElement::separator(): to be implemented (operation)"); - - return QString (); + return QStringLiteral("::"); } void QUmlNamedElement::setPropertyData() diff --git a/src/uml/qumlnamespace.cpp b/src/uml/qumlnamespace.cpp index 22a327cc..c1a09d8b 100644 --- a/src/uml/qumlnamespace.cpp +++ b/src/uml/qumlnamespace.cpp @@ -144,9 +144,13 @@ const QSet<QUmlPackageableElement *> QUmlNamespace::importedMember() const { // This is a read-only derived association end - qWarning("UmlNamespace::importedMember(): to be implemented (this is a derived association end)"); - - return QSet<QUmlPackageableElement *>(); + QSet<QUmlPackageableElement *> importedMembers_; + foreach (QUmlElementImport *elementImport, _elementImport) + importedMembers_.insert(elementImport->importedElement()); + foreach (QUmlPackageImport *packageImport, _packageImport) + if (packageImport->importedPackage()) + importedMembers_.unite(packageImport->importedPackage()->packagedElement()); + return importedMembers_; } void QUmlNamespace::addImportedMember(QUmlPackageableElement *importedMember) diff --git a/src/uml/qumlpackage.cpp b/src/uml/qumlpackage.cpp index 8e6758b0..b150c350 100644 --- a/src/uml/qumlpackage.cpp +++ b/src/uml/qumlpackage.cpp @@ -149,23 +149,23 @@ const QSet<QUmlPackage *> QUmlPackage::nestedPackage() const { // This is a read-write derived association end - qWarning("UmlPackage::nestedPackage(): to be implemented (this is a derived association end)"); - - return QSet<QUmlPackage *>(); + QSet<QUmlPackage *> nestedPackages_; + foreach (QUmlPackageableElement *packageableElement, _packagedElement) + if (QUmlPackage *package = dynamic_cast<QUmlPackage *>(packageableElement)) + nestedPackages_.insert(package); + return nestedPackages_; } void QUmlPackage::addNestedPackage(QUmlPackage *nestedPackage) { // This is a read-write derived association end - qWarning("UmlPackage::nestedPackage(): to be implemented (this is a derived association end)"); - Q_UNUSED(nestedPackage); - - if (false /* <derivedexclusion-criteria> */) { - // <derived-code> + if (!_packagedElement.contains(dynamic_cast<QUmlPackageableElement *>(nestedPackage))) { + // Adjust subsetted property(ies) + (dynamic_cast<QUmlPackage *>(this))->addPackagedElement(dynamic_cast<QUmlPackageableElement *>(nestedPackage)); - // Adjust subsetted properties - addPackagedElement(nestedPackage); + // Adjust opposite property + nestedPackage->setNestingPackage(this); } } @@ -173,14 +173,12 @@ void QUmlPackage::removeNestedPackage(QUmlPackage *nestedPackage) { // This is a read-write derived association end - qWarning("UmlPackage::nestedPackage(): to be implemented (this is a derived association end)"); - Q_UNUSED(nestedPackage); + if (_packagedElement.contains(dynamic_cast<QUmlPackageableElement *>(nestedPackage))) { + // Adjust subsetted property(ies) + (dynamic_cast<QUmlPackage *>(this))->removePackagedElement(dynamic_cast<QUmlPackageableElement *>(nestedPackage)); - if (false /* <derivedexclusion-criteria> */) { - // <derived-code> - - // Adjust subsetted properties - removePackagedElement(nestedPackage); + // Adjust opposite property + nestedPackage->setNestingPackage(0); } } @@ -212,9 +210,11 @@ const QSet<QUmlStereotype *> QUmlPackage::ownedStereotype() const { // This is a read-only derived association end - qWarning("UmlPackage::ownedStereotype(): to be implemented (this is a derived association end)"); - - return QSet<QUmlStereotype *>(); + QSet<QUmlStereotype *> ownedStereotypes_; + foreach (QUmlPackageableElement *packageableElement, _packagedElement) + if (QUmlStereotype *stereotype = dynamic_cast<QUmlStereotype *>(packageableElement)) + ownedStereotypes_.insert(stereotype); + return ownedStereotypes_; } void QUmlPackage::addOwnedStereotype(QUmlStereotype *ownedStereotype) @@ -254,28 +254,23 @@ const QSet<QUmlType *> QUmlPackage::ownedType() const { // This is a read-write derived association end - qWarning("UmlPackage::ownedType(): to be implemented (this is a derived association end)"); - - return QSet<QUmlType *>(); + QSet<QUmlType *> ownedTypes_; + foreach (QUmlPackageableElement *packageableElement, _packagedElement) + if (QUmlType *type = dynamic_cast<QUmlType *>(packageableElement)) + ownedTypes_.insert(type); + return ownedTypes_; } void QUmlPackage::addOwnedType(QUmlType *ownedType) { // This is a read-write derived association end - qWarning("UmlPackage::ownedType(): to be implemented (this is a derived association end)"); - Q_UNUSED(ownedType); - - if (false /* <derivedexclusion-criteria> */) { - // <derived-code> - - // Adjust subsetted properties - addPackagedElement(ownedType); + if (!_packagedElement.contains(ownedType)) { + // Adjust subsetted property(ies) + (dynamic_cast<QUmlPackage *>(this))->addPackagedElement(dynamic_cast<QUmlPackageableElement *>(ownedType)); - // Adjust opposite properties - if (ownedType) { - ownedType->setPackage(this); - } + // Adjust opposite property + ownedType->setPackage(this); } } @@ -283,19 +278,12 @@ void QUmlPackage::removeOwnedType(QUmlType *ownedType) { // This is a read-write derived association end - qWarning("UmlPackage::ownedType(): to be implemented (this is a derived association end)"); - Q_UNUSED(ownedType); + if (_packagedElement.contains(ownedType)) { + // Adjust subsetted property(ies) + (dynamic_cast<QUmlPackage *>(this))->removePackagedElement(dynamic_cast<QUmlPackageableElement *>(ownedType)); - if (false /* <derivedexclusion-criteria> */) { - // <derived-code> - - // Adjust subsetted properties - removePackagedElement(ownedType); - - // Adjust opposite properties - if (ownedType) { - ownedType->setPackage(0); - } + // Adjust opposite property + ownedType->setPackage(0); } } diff --git a/src/uml/qumlproperty.cpp b/src/uml/qumlproperty.cpp index a1e9e34a..ee055207 100644 --- a/src/uml/qumlproperty.cpp +++ b/src/uml/qumlproperty.cpp @@ -222,7 +222,7 @@ void QUmlProperty::setAssociationEnd(QUmlProperty *associationEnd) } /*! - References the Class that owns the Property.References the Class that owns the Property. + References the Class that owns the Property.References the Class that owns the Property. */ QUmlClass *QUmlProperty::class_() const { @@ -239,7 +239,7 @@ void QUmlProperty::setClass(QUmlClass *class_) // Adjust subsetted properties _class_ = class_; - if (class_->asQObject() && this->asQObject()) + if (class_ && class_->asQObject() && this->asQObject()) QObject::connect(class_->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setClass())); // Adjust subsetted properties diff --git a/src/uml/qumltype.cpp b/src/uml/qumltype.cpp index 37fa0aff..3cc9e08b 100644 --- a/src/uml/qumltype.cpp +++ b/src/uml/qumltype.cpp @@ -104,7 +104,7 @@ void QUmlType::setPackage(QUmlPackage *package) if (_package != package) { _package = package; - if (package->asQObject() && this->asQObject()) + if (package && package->asQObject() && this->asQObject()) QObject::connect(package->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setPackage())); } } diff --git a/src/wrappedobjectswidgets/doc/qtwrappedobjectswidgets.qdocconf b/src/wrappedobjectswidgets/doc/qtwrappedobjectswidgets.qdocconf deleted file mode 100644 index 58638975..00000000 --- a/src/wrappedobjectswidgets/doc/qtwrappedobjectswidgets.qdocconf +++ /dev/null @@ -1,41 +0,0 @@ -include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) - -project = QtWrappedObjectsWidgets -description = Qt WrappedObjectsWidgets Reference Documentation -url = http://qt-project.org/doc/qtwrappedobjectswidgets -version = 5.0.0 - -examplesinstallpath = wrappedobjectswidgets - -qhp.projects = QtWrappedObjectsWidgets - -qhp.QtWrappedObjectsWidgets.file = qtwrappedobjectswidgets.qhp -qhp.QtWrappedObjectsWidgets.namespace = org.qt-project.qtwrappedobjectswidgets.500 -qhp.QtWrappedObjectsWidgets.virtualFolder = qtwrappedobjectswidgets -qhp.QtWrappedObjectsWidgets.indexTitle = Qt WrappedObjectsWidgets -qhp.QtWrappedObjectsWidgets.indexRoot = - -qhp.QtWrappedObjectsWidgets.filterAttributes = qtwrappedobjectswidgets 5.0.0 qtrefdoc -qhp.QtWrappedObjectsWidgets.customFilters.Qt.name = QtWrappedObjectsWidgets 5.0.0 -qhp.QtWrappedObjectsWidgets.customFilters.Qt.filterAttributes = qtwrappedobjectswidgets 5.0.0 - -qhp.QtWrappedObjectsWidgets.subprojects = classes -qhp.QtWrappedObjectsWidgets.subprojects.classes.title = C++ Classes -qhp.QtWrappedObjectsWidgets.subprojects.classes.indexTitle = Qt WrappedObjectsWidgets C++ Classes -qhp.QtWrappedObjectsWidgets.subprojects.classes.selectors = class fake:headerfile -qhp.QtWrappedObjectsWidgets.subprojects.classes.sortPages = true -tagfile = ../../../doc/qtwrappedobjectswidgets/qtwrappedobjectswidgets.tags - -depends += qtcore wrappedobjects qtdoc - -headerdirs += .. - -sourcedirs += .. \ - ../../../examples/wrappedobjectswidgets/doc/src - -exampledirs += ../../../examples/wrappedobjectswidgets \ - ../ \ - snippets - -imagedirs += images \ - ../../../examples/wrappedobjectswidgets/doc/images diff --git a/src/wrappedobjectswidgets/doc/snippets/code/doc_src_qtwrappedobjects.pro b/src/wrappedobjectswidgets/doc/snippets/code/doc_src_qtwrappedobjects.pro deleted file mode 100644 index dda264e2..00000000 --- a/src/wrappedobjectswidgets/doc/snippets/code/doc_src_qtwrappedobjects.pro +++ /dev/null @@ -1,3 +0,0 @@ -#! [0] -QT += wrappedobjectswidgets -#! [0] diff --git a/src/wrappedobjectswidgets/qwrappedobjectmodel.cpp b/src/wrappedobjectswidgets/qwrappedobjectmodel.cpp deleted file mode 100644 index 8c4a9a76..00000000 --- a/src/wrappedobjectswidgets/qwrappedobjectmodel.cpp +++ /dev/null @@ -1,211 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> -** Contact: http://www.qt-project.org/legal -** -** This file is part of the QtWrappedObjectsWidgets module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, 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, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include "qwrappedobjectmodel.h" -#include "qwrappedobjectmodel_p.h" - -#include <QtGui/QFont> -#include <QtWidgets/QApplication> - -#include <QtWrappedObjects/QWrappedObject> - -QT_BEGIN_NAMESPACE - -QWrappedObjectModelPrivate::QWrappedObjectModelPrivate() -{ -} - -QWrappedObjectModel::QWrappedObjectModel(QObject *parent) : - QAbstractItemModel(*new QWrappedObjectModelPrivate, parent) -{ -} - -void QWrappedObjectModel::addWrappedObject(QWrappedObject *wrappedObject) -{ - Q_D(QWrappedObjectModel); - - if (wrappedObject && !d->wrappedObjects.contains(wrappedObject)) { - beginResetModel(); - d->wrappedObjects.append(wrappedObject); - endResetModel(); - } -} - -QList<QWrappedObject *> QWrappedObjectModel::wrappedObjects() const -{ - Q_D(const QWrappedObjectModel); - - return d->wrappedObjects; -} - -QModelIndex QWrappedObjectModel::index(int row, int column, const QModelIndex &parent) const -{ - Q_D(const QWrappedObjectModel); - - if (d->wrappedObjects.isEmpty() || row < 0 || column < 0 || column >= 2 || (parent.isValid() && parent.column() != 0)) - return QModelIndex(); - - if (!parent.isValid()) - return createIndex(row, column, static_cast<void *>(qTopLevelWrapper(d->wrappedObjects.at(row)))); - - QWrappedObject *wrappedObject = static_cast<QWrappedObject *>(parent.internalPointer()); - if (!wrappedObject) - return QModelIndex(); - - return createIndex(row, column, static_cast<void *>(wrappedObject->children().at(row))); -} - -QModelIndex QWrappedObjectModel::parent(const QModelIndex &child) const -{ - Q_D(const QWrappedObjectModel); - - QWrappedObject *wrappedObject = static_cast<QWrappedObject *>(child.internalPointer()); - if (d->wrappedObjects.isEmpty() || !child.isValid() || !wrappedObject) - return QModelIndex(); - - QWrappedObject *parentWrappedObject = qTopLevelWrapper(dynamic_cast<QWrappedObject *>(wrappedObject->parent())); - if (!parentWrappedObject) - return QModelIndex(); - - QWrappedObject *grandParentWrappedObject = qTopLevelWrapper(dynamic_cast<QWrappedObject *>(parentWrappedObject->parent())); - if (!grandParentWrappedObject) - return createIndex(0, 0, parentWrappedObject); - - return createIndex(grandParentWrappedObject->children().indexOf(parentWrappedObject), 0, static_cast<void *>(parentWrappedObject)); -} - -int QWrappedObjectModel::rowCount(const QModelIndex &parent) const -{ - Q_D(const QWrappedObjectModel); - - if (d->wrappedObjects.isEmpty() || (parent.isValid() && parent.column() != 0)) - return 0; - - if (parent.row() == -1) - return d->wrappedObjects.count(); - - QWrappedObject *wrappedObject = qTopLevelWrapper(static_cast<QWrappedObject *>(parent.internalPointer())); - if (!wrappedObject) - return 0; - - return wrappedObject->children().size(); -} - -int QWrappedObjectModel::columnCount(const QModelIndex &parent) const -{ - Q_D(const QWrappedObjectModel); - - return (d->wrappedObjects.isEmpty() || (parent.isValid() && parent.column() != 0)) ? 0:2; -} - -QVariant QWrappedObjectModel::data(const QModelIndex &index, int role) const -{ - Q_D(const QWrappedObjectModel); - - if (d->wrappedObjects.isEmpty() || index.column() < 0 || index.column() >= 2) - return QVariant(); - switch (role) { - case Qt::DisplayRole: - case Qt::EditRole: { - QWrappedObject *wrappedObject = static_cast<QWrappedObject *>(index.internalPointer()); - QString elementRole = QString::fromLatin1(""); - if (wrappedObject->role() == QWrappedObject::ImportedElementRole) - elementRole = QString::fromLatin1(" (imported element)"); - else if (wrappedObject->role() == QWrappedObject::ImportedPackageRole) - elementRole = QString::fromLatin1(" (imported package)"); - else if (wrappedObject->role() == QWrappedObject::AppliedProfileRole) - elementRole = QString::fromLatin1(" (applied profile)"); - return index.column() == 0 ? qTopLevelWrapper(wrappedObject)->objectName()+elementRole:QString::fromLatin1(qTopLevelWrapper(wrappedObject)->metaObject()->className()); - } - case Qt::FontRole: { - QFont font = QApplication::font(); - QWrappedObject *wrappedObject = static_cast<QWrappedObject *>(index.internalPointer()); - if (index.parent().row() == -1 && wrappedObject->role() == QWrappedObject::ModelElementRole) - font.setBold(true); - return font; - } - case Qt::UserRole: { - return qVariantFromValue(static_cast<QWrappedObject *>(index.internalPointer())); - } - } - return QVariant(); -} - -bool QWrappedObjectModel::setData(const QModelIndex &index, const QVariant &value, int role) -{ - return QAbstractItemModel::setData(index, value, role); -} - -QVariant QWrappedObjectModel::headerData(int section, Qt::Orientation orientation, int role) const -{ - if ((section == 0 || section == 1) && orientation == Qt::Horizontal && role == Qt::DisplayRole) - return QString::fromLatin1(section == 0 ? "Object":"Class"); - return QVariant(); -} - -Qt::ItemFlags QWrappedObjectModel::flags(const QModelIndex &index) const -{ - return QAbstractItemModel::flags(index); -} - -void QWrappedObjectModel::updateIndex(const QModelIndex &index) -{ - if (!index.isValid()) { - beginResetModel(); - //emit layoutChanged(); - endResetModel(); - } - else - emit dataChanged(index, index, QVector<int>() << Qt::DisplayRole); -} - -void QWrappedObjectModel::clear() -{ - Q_D(QWrappedObjectModel); - - foreach (QWrappedObject *object, d->wrappedObjects) - delete object; - d->wrappedObjects.clear(); -} - -#include "moc_qwrappedobjectmodel.cpp" - -QT_END_NAMESPACE - diff --git a/src/wrappedobjectswidgets/qwrappedobjectview.cpp b/src/wrappedobjectswidgets/qwrappedobjectview.cpp deleted file mode 100644 index 626d7d33..00000000 --- a/src/wrappedobjectswidgets/qwrappedobjectview.cpp +++ /dev/null @@ -1,303 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> -** Contact: http://www.qt-project.org/legal -** -** This file is part of the QtWrappedObjectsWidgets module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, 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, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include "qwrappedobjectview.h" -#include "qwrappedobjectview_p.h" -#include "qwrappedobjectmodel.h" - -#include <QtWrappedObjects/QWrappedObject> -#include <QtWrappedObjects/QMetaWrappedObject> - -#include <QtCore/QRegularExpression> - -#include <QtWidgets/QMenu> -#include <QtWidgets/QTreeView> -#include <QtWidgets/QVBoxLayout> -#include <QtWidgets/QMessageBox> - -QT_BEGIN_NAMESPACE - -QWrappedObjectViewPrivate::QWrappedObjectViewPrivate() : - treeView(new QTreeView) -{ -} - -void QWrappedObjectViewPrivate::populateContextMenu(QMenu &menu, QWrappedObject *element) -{ - Q_Q(QWrappedObjectView); - - const QMetaWrappedObject *metaWrappedObject = element->metaWrappedObject(); - int propertyCount = metaWrappedObject->propertyCount(); - for (int i = 0; i < propertyCount; ++i) { - QString propertyName = QString::fromLatin1(metaWrappedObject->property(i).metaProperty.name()); - QString propertyType = QString::fromLatin1(metaWrappedObject->property(i).metaProperty.typeName()); - QString modifiedPropertyName = QString(propertyName.left(1).toUpper()+propertyName.mid(1)).remove(QRegularExpression(QString::fromLatin1("s$"))).replace(QRegularExpression(QString::fromLatin1("ie$")), QString::fromLatin1("y")).replace(QRegularExpression(QString::fromLatin1("se$")), QString::fromLatin1("s")).replace(QRegularExpression(QString::fromLatin1("ice$")), QString::fromLatin1("ex")).replace(QRegularExpression(QString::fromLatin1("ce$")), QString::fromLatin1("x")).remove(QRegularExpression(QString::fromLatin1("_$"))); - QString methodSignature; - QString actionText; - if (propertyType.contains(QString::fromLatin1("QList")) || propertyType.contains(QString::fromLatin1("QSet")) || propertyType.endsWith(QString::fromLatin1("*"))) { - if (propertyType.contains(QString::fromLatin1("QList")) || propertyType.contains(QString::fromLatin1("QSet"))) { - propertyType = propertyType.remove(QString::fromLatin1("QList<")).remove(QString::fromLatin1("QSet<")).remove(QString::fromLatin1(">")); - QString unqualifiedPropertyType = propertyType; - methodSignature = QString::fromLatin1("add%1(%2)").arg(modifiedPropertyName).arg(unqualifiedPropertyType.remove(QRegularExpression(QString::fromLatin1("^.*::")))); - actionText = QObject::tr("Add %1").arg(modifiedPropertyName); - } - else if (propertyType.endsWith(QString::fromLatin1("*"))) { - QString unqualifiedPropertyType = propertyType; - methodSignature = QString::fromLatin1("set%1(%2)").arg(modifiedPropertyName).arg(unqualifiedPropertyType.remove(QRegularExpression(QString::fromLatin1("^.*::")))); - actionText = QObject::tr("Set %1").arg(modifiedPropertyName); - } - int metaMethodIndex; - if ((metaMethodIndex = element->metaObject()->indexOfMethod(methodSignature.toLatin1())) != -1 && !visitedAddMethods.contains(actionText)) { - QAction *action = new QAction(actionText, q); - visitedAddMethods[actionText] = QPair<QObject *, QMetaMethod>(element, element->metaObject()->method(metaMethodIndex)); - action->setData(propertyType); - QObject::connect(action, &QAction::triggered, q, &QWrappedObjectView::handleAddMethod); - menu.addAction(action); - } - } - } - if (element->parent()) { - menu.addSeparator(); - QAction *action = new QAction(QObject::tr("&Delete"), q); - action->setIcon(QIcon::fromTheme(QString::fromLatin1("edit-delete"))); - QObject::connect(action, &QAction::triggered, q, &QWrappedObjectView::deleteObject); - menu.addAction(action); - } - menu.addSeparator(); - QAction *action = new QAction(QObject::tr("&Add to view"), q); - QObject::connect(action, &QAction::triggered, q, &QWrappedObjectView::addElementToView); - menu.addAction(action); -} - -QWrappedObjectView::QWrappedObjectView(QWidget *parent, Qt::WindowFlags f) : - QWidget(*new QWrappedObjectViewPrivate, parent, f) -{ - Q_D(QWrappedObjectView); - - d->treeView->setEditTriggers(QAbstractItemView::AllEditTriggers); - d->treeView->setAlternatingRowColors(true); - QPalette modelPallete = d->treeView->palette(); - modelPallete.setColor(QPalette::Active, QPalette::Base, QColor(255, 255, 255)); - modelPallete.setColor(QPalette::Inactive, QPalette::Base, QColor(255, 255, 255)); - modelPallete.setColor(QPalette::Active, QPalette::AlternateBase, QColor(248, 247, 246)); - modelPallete.setColor(QPalette::Inactive, QPalette::AlternateBase, QColor(248, 247, 246)); - d->treeView->setPalette(modelPallete); - d->treeView->setUniformRowHeights(true); - - QVBoxLayout *layout = new QVBoxLayout(this); - layout->setSpacing(0); - layout->setContentsMargins(0, 0, 0, 0); - layout->addWidget(d->treeView); -} - -void QWrappedObjectView::setModel(QAbstractItemModel *model) -{ - Q_D(QWrappedObjectView); - - if (d->treeView->model()) - disconnect(d->treeView->model(), 0, this, 0); - if (d->treeView->selectionModel()) - disconnect(d->treeView->selectionModel(), 0, this, 0); - d->treeView->setModel(model); - if (model) { - connect(model, &QAbstractItemModel::modelReset, this, &QWrappedObjectView::modelReset); - connect(model, &QAbstractItemModel::rowsInserted, this, &QWrappedObjectView::rowsInserted); - connect(d->treeView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &QWrappedObjectView::selectionChanged); - } -} - -void QWrappedObjectView::updateSelected() -{ - Q_D(QWrappedObjectView); - - (dynamic_cast<QWrappedObjectModel *>(d->treeView->model()))->updateIndex(d->treeView->selectionModel()->selectedIndexes().first()); - // FIX ME - QModelIndex index = d->treeView->selectionModel()->selectedIndexes().first(); - d->treeView->setCurrentIndex(d->treeView->model()->index(0, 0)); - d->treeView->setCurrentIndex(index); -} - -void QWrappedObjectView::contextMenuEvent(QContextMenuEvent *event) -{ - Q_D(QWrappedObjectView); - - QMenu menu(this); - QWrappedObject *element = qvariant_cast<QWrappedObject *>(d->treeView->currentIndex().data(Qt::UserRole)); - d->visitedAddMethods.clear(); - d->populateContextMenu(menu, element); - menu.exec(event->globalPos()); -} - -void QWrappedObjectView::handleAddMethod() -{ - Q_D(QWrappedObjectView); - - QAction *action = qobject_cast<QAction *>(sender()); - if (action) { - QObject *element = d->visitedAddMethods[action->text()].first; - QMetaMethod metaMethod = d->visitedAddMethods[action->text()].second; - QString elementType = action->data().toString(); - int type; - if ((type = QMetaType::type(elementType.toLatin1())) != QMetaType::UnknownType) { - const QMetaObject *metaObject = QMetaType::metaObjectForType(type); - if (metaObject) { - QObject *addedElement = metaObject->newInstance(); - if (addedElement) { - addedElement->setObjectName(QString::fromLatin1("Unamed %1").arg(elementType.remove(QString::fromLatin1("*")))); - metaMethod.invoke(element, ::Q_ARG(QObject *, addedElement)); - } - } - } - } - QWrappedObjectModel *wrappedObjectModel = dynamic_cast<QWrappedObjectModel *>(d->treeView->model()); - wrappedObjectModel->updateIndex(QModelIndex()); -} - -void QWrappedObjectView::addElementToView() -{ - Q_D(QWrappedObjectView); - - emit addToView(qvariant_cast<QWrappedObject *>(d->treeView->selectionModel()->selectedIndexes().first().data(Qt::UserRole))); -} - -void QWrappedObjectView::deleteObject() -{ - Q_D(QWrappedObjectView); - - QWrappedObject *usedObject = qvariant_cast<QWrappedObject *>(d->treeView->selectionModel()->selection().indexes().first().data(Qt::UserRole)); - - if (QMessageBox::question(this, tr("Delete element"), tr("Are you sure you want to delete '%1' element' ?").arg(qTopLevelWrapper(usedObject)->objectName())) == QMessageBox::Yes) { - QWrappedObject *container = qvariant_cast<QWrappedObject *>(d->treeView->model()->index(0, 0, QModelIndex()).data(Qt::UserRole)); - removeObjectUse(container, usedObject); - QWrappedObjectModel *wrappedObjectModel = dynamic_cast<QWrappedObjectModel *>(d->treeView->model()); - wrappedObjectModel->updateIndex(QModelIndex()); - d->treeView->setCurrentIndex(wrappedObjectModel->index(0, 0)); - emit wrappedObjectChanged(qvariant_cast<QWrappedObject *>(wrappedObjectModel->index(0, 0).data(Qt::UserRole))); - d->treeView->expandAll(); - d->treeView->resizeColumnToContents(0); - d->treeView->resizeColumnToContents(1); - usedObject->deleteLater(); - } -} - -void QWrappedObjectView::modelReset() -{ - Q_D(QWrappedObjectView); - - d->treeView->setCurrentIndex(d->treeView->model()->index(0, 0)); - d->treeView->expandAll(); - d->treeView->resizeColumnToContents(0); - d->treeView->resizeColumnToContents(1); -} - -void QWrappedObjectView::rowsInserted(const QModelIndex &parent, int first) -{ - Q_D(QWrappedObjectView); - - d->treeView->setCurrentIndex(d->treeView->model()->index(first, 0, parent)); -} - -void QWrappedObjectView::selectionChanged(const QItemSelection &selected) -{ - emit wrappedObjectChanged(qvariant_cast<QWrappedObject *>(selected.indexes().first().data(Qt::UserRole)), selected.indexes().first()); -} - -void QWrappedObjectView::removeObjectUse(QWrappedObject *container, QWrappedObject *usedObject) -{ - const QMetaWrappedObject *metaWrappedObject = container->metaWrappedObject(); - int propertyCount = metaWrappedObject->propertyCount(); - for (int i = 0; i < propertyCount; ++i) { - QMetaProperty metaProperty = metaWrappedObject->property(i).metaProperty; - QWrappedObject *propertyWrappedObject = metaWrappedObject->property(i).propertyWrappedObject; - QString propertyName = QString::fromLatin1(metaProperty.name()); - QString modifiedPropertyName = QString(propertyName.left(1).toUpper()+propertyName.mid(1)).remove(QRegularExpression(QString::fromLatin1("s$"))).replace(QRegularExpression(QString::fromLatin1("ie$")), QString::fromLatin1("y")).replace(QRegularExpression(QString::fromLatin1("se$")), QString::fromLatin1("s")).replace(QRegularExpression(QString::fromLatin1("ice$")), QString::fromLatin1("ex")).replace(QRegularExpression(QString::fromLatin1("ce$")), QString::fromLatin1("x")).remove(QRegularExpression(QString::fromLatin1("_$"))); - QString typeName = QString::fromLatin1(metaProperty.typeName()); - QVariant variant = metaProperty.read(propertyWrappedObject); - QString methodSignature; - int metaMethodIndex; - if (typeName.endsWith('*') && qvariant_cast<QWrappedObject *>(variant)) { - QWrappedObject *object = qvariant_cast<QWrappedObject *>(variant); - if (object == usedObject) { - methodSignature = QString::fromLatin1("set%1(%2)").arg(modifiedPropertyName).arg(typeName.split(QString::fromLatin1("::")).last()); - if (!methodSignature.isEmpty() && (metaMethodIndex = container->metaObject()->indexOfMethod(methodSignature.toLatin1())) != -1) { - container->metaObject()->method(metaMethodIndex).invoke(container, ::Q_ARG(QObject *, 0)); - } - } - else if (QWrappedObject::propertyData(QString::fromLatin1(metaWrappedObject->property(i).propertyMetaObject->className()), metaWrappedObject->property(i).metaProperty, QtWrappedObjects::AggregationRole).toString() == QString::fromLatin1("composite")) - removeObjectUse(object, usedObject); - } - else if (typeName.contains(QString::fromLatin1("QSet")) && variant.isValid()) { - QSet<QWrappedObject *> elements = *(static_cast<QSet<QWrappedObject *> *>(variant.data())); - if (elements.size() > 0) { - foreach (QWrappedObject *object, elements) { - if (object == usedObject) { - typeName = typeName.remove(QString::fromLatin1("QSet<")).remove(QString::fromLatin1(">")); - methodSignature = QString::fromLatin1("remove%1(%2)").arg(modifiedPropertyName).arg(typeName.split(QString::fromLatin1("::")).last()); - if (!methodSignature.isEmpty() && (metaMethodIndex = container->metaObject()->indexOfMethod(methodSignature.toLatin1())) != -1) { - container->metaObject()->method(metaMethodIndex).invoke(container, ::Q_ARG(QObject *, usedObject)); - } - } - else if (QWrappedObject::propertyData(QString::fromLatin1(metaWrappedObject->property(i).propertyMetaObject->className()), metaWrappedObject->property(i).metaProperty, QtWrappedObjects::AggregationRole).toString() == QString::fromLatin1("composite")) - removeObjectUse(object, usedObject); } - } - } - else if (typeName.contains(QString::fromLatin1("QList")) && variant.isValid()) { - QList<QWrappedObject *> elements = *(static_cast<QList<QWrappedObject *> *>(variant.data())); - if (elements.size() > 0) { - foreach (QWrappedObject *object, elements) { - if (object == usedObject) { - typeName = typeName.remove(QString::fromLatin1("QList<")).remove(QString::fromLatin1(">")); - methodSignature = QString::fromLatin1("remove%1(%2)").arg(modifiedPropertyName).arg(typeName.split(QString::fromLatin1("::")).last()); - if (!methodSignature.isEmpty() && (metaMethodIndex = container->metaObject()->indexOfMethod(methodSignature.toLatin1())) != -1) { - container->metaObject()->method(metaMethodIndex).invoke(container, ::Q_ARG(QObject *, usedObject)); - } - } - else if (QWrappedObject::propertyData(QString::fromLatin1(metaWrappedObject->property(i).propertyMetaObject->className()), metaWrappedObject->property(i).metaProperty, QtWrappedObjects::AggregationRole).toString() == QString::fromLatin1("composite")) - removeObjectUse(object, usedObject); - } - } - } - } -} - -#include "moc_qwrappedobjectview.cpp" - -QT_END_NAMESPACE - diff --git a/src/wrappedobjectswidgets/wrappedobjectswidgets.pro b/src/wrappedobjectswidgets/wrappedobjectswidgets.pro deleted file mode 100644 index f259262c..00000000 --- a/src/wrappedobjectswidgets/wrappedobjectswidgets.pro +++ /dev/null @@ -1,37 +0,0 @@ -load(qt_build_config) - -TARGET = QtWrappedObjectsWidgets -QT = core-private widgets-private wrappedobjects - -QMAKE_DOCS = $$PWD/doc/qtwrappedobjectswidgets.qdocconf - -load(qt_module) - -PUBLIC_HEADERS += \ - qwrappedobjectview.h \ - qwrappedobjectmodel.h \ - qtwrappedobjectswidgetsglobal.h \ - qwrappedobjectpropertymodel.h \ - qwrappedobjectpropertyeditor.h \ - qwrappedobjectpropertyfiltermodel.h \ - -PRIVATE_HEADERS += \ - qwrappedobjectview_p.h \ - qwrappedobjectmodel_p.h \ - qwrappedobjectpropertymodel_p.h \ - qwrappedobjectpropertyeditor_p.h \ - internal/propertyeditoritemdelegate_p.h \ - internal/filterwidget_p.h \ - internal/propertyeditor_p.h - -SOURCES += \ - qwrappedobjectview.cpp \ - qwrappedobjectmodel.cpp \ - qwrappedobjectpropertymodel.cpp \ - qwrappedobjectpropertyeditor.cpp \ - qwrappedobjectpropertyfiltermodel.cpp \ - internal/filterwidget.cpp \ - internal/propertyeditor.cpp \ - internal/propertyeditoritemdelegate.cpp - -HEADERS += $$PUBLIC_HEADERS $$PRIVATE_HEADERS diff --git a/sync.profile b/sync.profile index 45e37396..66b498d7 100644 --- a/sync.profile +++ b/sync.profile @@ -1,7 +1,6 @@ %modules = ( # path to module name map "QtModeling" => "$basedir/src/modeling", - "QtWrappedObjects" => "$basedir/src/wrappedobjects", - "QtWrappedObjectsWidgets" => "$basedir/src/wrappedobjectswidgets", + "QtModelingWidgets" => "$basedir/src/modelingwidgets", "QtMof" => "$basedir/src/mof", "QtUml" => "$basedir/src/uml", "QtDuse" => "$basedir/src/duse", @@ -15,11 +14,8 @@ "qtmodelingversion.h" => "QtModelingVersion", "qtmodelingglobal.h" => "QtModelingGlobal", "qtmodelingnamespace.h" => "QtModelingNamespace", - "qtwrappedobjectsversion.h" => "QtWrappedObjectsVersion", - "qtwrappedobjectsglobal.h" => "QtWrappedObjectsGlobal", - "qtwrappedobjectsnamespace.h" => "QtWrappedObjectsNamespace", - "qtwrappedobjectswidgetsversion.h" => "QtWrappedObjectsWidgetsVersion", - "qtwrappedobjectswidgetsglobal.h" => "QtWrappedObjectsWidgetsGlobal", + "qtmodelingwidgetsversion.h" => "QtModelingWidgetsVersion", + "qtmodelingwidgetsglobal.h" => "QtModelingWidgetsGlobal", "qtmofversion.h" => "QtMofVersion", "qtmofglobal.h" => "QtMofGlobal", "qtmofnamespace.h" => "QtMofNamespace", @@ -36,8 +32,7 @@ %modulepris = ( "QtModeling" => "$basedir/modules/qtmodeling.pri", - "QtWrappedObjects" => "$basedir/modules/qtwrappedobjects.pri", - "QtWrappedObjectsWidgets" => "$basedir/modules/qtwrappedobjectswidgets.pri", + "QtModelingWidgets" => "$basedir/modules/qtmodelingwidgets.pri", "QtMof" => "$basedir/modules/qtmof.pri", "QtUml" => "$basedir/modules/qtuml.pri", "QtDuse" => "$basedir/modules/qtduse.pri", |