diff options
author | Sandro S. Andrade <sandroandrade@kde.org> | 2013-12-05 20:10:46 -0300 |
---|---|---|
committer | Sandro S. Andrade <sandroandrade@kde.org> | 2013-12-06 00:15:32 +0100 |
commit | 846d95ff6dc145677d4ffa58e57b8fb37bdac0a8 (patch) | |
tree | 49db45d02119a15a1f23727ef7e253e55cc540c3 /examples/uml | |
parent | 14e3c25fb6299f101b8ac06ff527de397d054b19 (diff) |
Add creation of added element when navigating through design spaces
Change-Id: I42b4704e9ccfe9ae161883e80e402ad615c467ee
Reviewed-by: Sandro S. Andrade <sandroandrade@kde.org>
Diffstat (limited to 'examples/uml')
-rw-r--r-- | examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorer.pro | 2 | ||||
-rw-r--r-- | examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp | 18 |
2 files changed, 11 insertions, 9 deletions
diff --git a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorer.pro b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorer.pro index 6ec32b40..56f99df5 100644 --- a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorer.pro +++ b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorer.pro @@ -4,7 +4,7 @@ # #------------------------------------------------- -QT += widgets quick modeling modelingwidgets script uml duse saduseprofile-private +QT += widgets quick modeling modelingwidgets script uml duse include(../../duse-mt-plugin.pri) diff --git a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp index e631a202..01c966f6 100644 --- a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp +++ b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp @@ -41,12 +41,12 @@ #include "designspaceexplorerplugin.h" #include <duseinterfaces/iuicontroller.h> +#include <duseinterfaces/iplugincontroller.h> #include <duseinterfaces/iprojectcontroller.h> #include <QtQuick/QQuickView> #include <QtWidgets/QAction> -#include <QtWidgets/QWidget> #include <QtWidgets/QComboBox> #include <QtWidgets/QMessageBox> #include <QtWidgets/QHeaderView> @@ -58,7 +58,7 @@ #include <QtScript/QScriptValueIterator> #include <QtModeling/QXmiReader> -#include <QtModeling/QModelingElement> +#include <QtModeling/QMetaModelPlugin> #include <QtModelingWidgets/QModelingObjectView> #include <QtModelingWidgets/QModelingObjectModel> @@ -73,9 +73,6 @@ #include <QtDuse/QDuseDesignDimension> #include <QtDuse/QDuseDesignDimensionInstance> -#include <QtSADuseProfile/QSADuseProfileProcessComponent> -#include "private/qsaduseprofileprocesscomponentobject_p.h" - #include "newdusedesigndialog.h" #include <QDebug> @@ -137,8 +134,6 @@ DesignSpaceExplorerPlugin::~DesignSpaceExplorerPlugin() delete _engine; } -Q_SCRIPT_DECLARE_QMETAOBJECT(QSADuseProfileProcessComponentObject, QSADuseProfileProcessComponent *); - bool DesignSpaceExplorerPlugin::initialize() { _currentDesignSpaceLocationQuickView->setSource(QUrl("qrc:/designspaceexplorer/currentdesignspacelocation.qml")); @@ -357,11 +352,18 @@ void DesignSpaceExplorerPlugin::currentDesignSpaceLocationChanged() currentModelObjects << element->asQModelingObject(); QDuseDesignSpace *designSpace = dynamic_cast<QDuseDesignSpace *>(_duseInstance.first()); + QUmlModel *topModel = dynamic_cast<QUmlModel *>(_currentDesignSpaceLocationMofModel.first()); foreach (QDuseDesignDimension *designDimension, designSpace->designDimensions()) foreach (QDuseDesignDimensionInstance *designDimensionInstance, designDimension->designDimensionInstances()) { QDuseVariationPoint *variationPoint = _currentDesignSpaceLocation[designDimensionInstance->targetInstance()->asQModelingObject()->objectName()][designDimension]; - foreach (QModelingElement *addedElement, variationPoint->addedElements()) + foreach (QModelingElement *addedElement, variationPoint->addedElements()) { + QObject *modelingObject = addedElement->asQModelingObject(); + QMetaModelPlugin *plugin = DuSE::ICore::self()->pluginController()->metamodelPlugins()[modelingObject->property("namespaceUri").toString()]; + QModelingElement *newAddedElement = plugin->createModelingElement(modelingObject->property("factoryType").toString()); + newAddedElement->asQModelingObject()->setObjectName(QStringLiteral("%1-%2").arg(designDimensionInstance->targetInstance()->asQModelingObject()->objectName()).arg(modelingObject->property("factoryType").toString())); + topModel->addPackagedElement(dynamic_cast<QUmlPackageableElement *>(newAddedElement)); qDebug() << "Added" << addedElement->asQModelingObject()->objectName(); + } } _currentDesignSpaceLocationQtModel->setModelingObjects(currentModelObjects); |