diff options
author | Sandro S. Andrade <sandroandrade@kde.org> | 2013-11-25 16:23:47 -0300 |
---|---|---|
committer | Sandro S. Andrade <sandroandrade@kde.org> | 2013-11-25 20:28:24 +0100 |
commit | dcaf2e6be08d1b0b208e4b31b93696139ade9239 (patch) | |
tree | 54fe3495b38a0ee15f445750da3847b06fd3089e /examples/uml/duse-mt/src | |
parent | 0b3fd47adafef4ea58ac3431ecd55bb06fd6f4e6 (diff) |
Add some improvements in design space explorer
Change-Id: Ia17232a395a6e6a7c5683fb725c37e4330d84b7a
Reviewed-by: Sandro S. Andrade <sandroandrade@kde.org>
Diffstat (limited to 'examples/uml/duse-mt/src')
5 files changed, 34 insertions, 8 deletions
diff --git a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorer.pro b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorer.pro index ac665d9c..6ec32b40 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 script uml duse saduseprofile-private +QT += widgets quick modeling modelingwidgets script uml duse saduseprofile-private 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 7727bdce..d6b214e7 100644 --- a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp +++ b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp @@ -63,6 +63,9 @@ #include <QtModeling/QXmiReader> #include <QtModeling/QModelingElement> +#include <QtModelingWidgets/QModelingObjectView> +#include <QtModelingWidgets/QModelingObjectModel> + #include <QtUml/QUmlModel> #include <QtUml/QUmlProfile> #include <QtUml/QUmlOpaqueExpression> @@ -121,8 +124,11 @@ DesignSpaceExplorerPlugin::DesignSpaceExplorerPlugin(QObject *parent) : _currentDesignSpaceLocationQuickView(new QQuickView), _metricsQuickView(new QQuickView), _designSpaceExplorer(new QTableWidget), + _currentDesignSpaceLocationView(new QModelingObjectView), + _currentDesignSpaceLocationModel(new QModelingObjectModel), _newDuseDesignDialog(new NewDuseDesignDialog) { + _currentDesignSpaceLocationView->setModel(_currentDesignSpaceLocationModel); } DesignSpaceExplorerPlugin::~DesignSpaceExplorerPlugin() @@ -146,6 +152,8 @@ bool DesignSpaceExplorerPlugin::initialize(DuSE::ICore *core) core->uiController()->addDockWidget(Qt::LeftDockWidgetArea, tr("Quality Metrics"), QWidget::createWindowContainer(_metricsQuickView)); + core->uiController()->addDockWidget(Qt::LeftDockWidgetArea, tr("Current Location Inspector"), _currentDesignSpaceLocationView); + _designSpaceExplorer->setAlternatingRowColors(true); _designSpaceExplorer->horizontalHeader()->setStretchLastSection(true); _designSpaceExplorer->verticalHeader()->setVisible(false); @@ -299,3 +307,20 @@ void DesignSpaceExplorerPlugin::openDuseDesign() { } +void DesignSpaceExplorerPlugin::designSpaceChanged() +{ +// qDeleteAll(_currentDesignSpaceLocation); + QXmiReader reader; + QFile inputModel(_newDuseDesignDialog->_inputModelFileName); + if (!inputModel.open(QFile::ReadOnly | QFile::Text)) { + QMessageBox::critical(0, tr("Create new DuSE design"), tr("Cannot read file %1").arg(_newDuseDesignDialog->_inputModelFileName)); + return; + } + _currentDesignSpaceLocation = reader.readFile(&inputModel); + QList<QModelingObject *> currentModelObjects; + foreach (QModelingElement *element, _currentDesignSpaceLocation) + currentModelObjects << element->asQModelingObject(); + + _currentDesignSpaceLocationModel->setModelingObjects(currentModelObjects); +} + diff --git a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.h b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.h index 190d862b..8fcee654 100644 --- a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.h +++ b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.h @@ -52,6 +52,9 @@ class QTableWidget; class QModelingElement; +class QModelingObjectModel; +class QModelingObjectView; + namespace Duse { class ICore; } @@ -70,6 +73,7 @@ public: private Q_SLOTS: void newDuseDesign(); void openDuseDesign(); + void designSpaceChanged(); private: DuSE::ICore *_core; @@ -77,9 +81,12 @@ private: QQuickView *_currentDesignSpaceLocationQuickView; QQuickView *_metricsQuickView; QTableWidget *_designSpaceExplorer; + QModelingObjectView *_currentDesignSpaceLocationView; + QModelingObjectModel *_currentDesignSpaceLocationModel; NewDuseDesignDialog *_newDuseDesignDialog; QList<QModelingElement *> _duseInstance; + QList<QModelingElement *> _currentDesignSpaceLocation; QScriptEngine _engine; diff --git a/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.cpp b/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.cpp index 58ea358b..51b21c80 100644 --- a/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.cpp +++ b/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.cpp @@ -85,7 +85,7 @@ bool ModelInspectorPlugin::initialize(DuSE::ICore *core) connect(_modelingObjectView, &QModelingObjectView::modelingObjectChanged, _propertyModel, &QModelingObjectPropertyModel::setModelingObject); connect(_modelingObjectView, SIGNAL(modelingObjectChanged(QModelingObject*)), core->uiController(), SIGNAL(currentModelingObjectChanged(QModelingObject*))); connect(_propertyModel, &QModelingObjectPropertyModel::indexChanged, _modelingObjectModel, &QModelingObjectModel::updateIndex); - connect(core->uiController(), SIGNAL(updateCurrentModelingObject()), this, SLOT(updateCurrentModelingObject())); + connect(core->uiController(), SIGNAL(updateCurrentModelingObject()), _modelingObjectView, SLOT(updateSelected())); connect(_modelingObjectView, SIGNAL(addToView(QObject*,QQuickItem*)), core->uiController(), SIGNAL(addToView(QObject*,QQuickItem*))); return true; @@ -96,8 +96,3 @@ void ModelInspectorPlugin::populateOutputIssues() _outputIssues->setModel(new QStringListModel(DuSE::ICore::self()->projectController()->errorStrings())); } -void ModelInspectorPlugin::updateCurrentModelingObject() -{ - _modelingObjectView->updateSelected(); -} - diff --git a/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.h b/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.h index 7e4b5cff..2ba1eae6 100644 --- a/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.h +++ b/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.h @@ -62,7 +62,6 @@ public: private Q_SLOTS: void populateOutputIssues(); - void updateCurrentModelingObject(); private: QModelingObjectView *_modelingObjectView; |