summaryrefslogtreecommitdiffstats
path: root/examples/uml
diff options
context:
space:
mode:
authorSandro S. Andrade <sandroandrade@kde.org>2013-11-27 23:51:59 -0300
committerSandro S. Andrade <sandroandrade@kde.org>2013-11-28 03:47:47 +0100
commitb6be3e89f6511aa44e9dc5124e7db7a0ec145654 (patch)
tree22f9863e4afcfac0d8497fc47e136d3dd413e8a9 /examples/uml
parent55c12a210e2738944ff60e4c9c36f647497f241d (diff)
Add major improvements in DuSE-MT basic workflow
Change-Id: Ib2da2cd01e98e4e3ed6d51057228e2dae854cb60 Reviewed-by: Sandro S. Andrade <sandroandrade@kde.org>
Diffstat (limited to 'examples/uml')
-rw-r--r--examples/uml/duse-mt/src/app/shell/plugincontroller.cpp3
-rw-r--r--examples/uml/duse-mt/src/libs/duseinterfaces/iplugin.h2
-rw-r--r--examples/uml/duse-mt/src/plugins/architecturerecoverycore/architecturerecoverycoreplugin.cpp5
-rw-r--r--examples/uml/duse-mt/src/plugins/architecturerecoverycore/architecturerecoverycoreplugin.h2
-rw-r--r--examples/uml/duse-mt/src/plugins/concretesyntaxview/concretesyntaxviewplugin.cpp15
-rw-r--r--examples/uml/duse-mt/src/plugins/concretesyntaxview/concretesyntaxviewplugin.h3
-rw-r--r--examples/uml/duse-mt/src/plugins/designoptimizer/designoptimizerplugin.cpp4
-rw-r--r--examples/uml/duse-mt/src/plugins/designoptimizer/designoptimizerplugin.h2
-rw-r--r--examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp65
-rw-r--r--examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.h10
-rw-r--r--examples/uml/duse-mt/src/plugins/gccxmlarchitecturerecoverybackend/gccxmlarchitecturerecoverybackendplugin.cpp4
-rw-r--r--examples/uml/duse-mt/src/plugins/gccxmlarchitecturerecoverybackend/gccxmlarchitecturerecoverybackendplugin.h2
-rw-r--r--examples/uml/duse-mt/src/plugins/javascriptconsole/javascriptconsole.ui6
-rw-r--r--examples/uml/duse-mt/src/plugins/javascriptconsole/javascriptconsoleplugin.cpp49
-rw-r--r--examples/uml/duse-mt/src/plugins/javascriptconsole/javascriptconsoleplugin.h7
-rw-r--r--examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.cpp24
-rw-r--r--examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.h2
-rw-r--r--examples/uml/duse-mt/src/plugins/umlconcretesyntax/duseplugin/umlconcretesyntaxplugin.cpp3
-rw-r--r--examples/uml/duse-mt/src/plugins/umlconcretesyntax/duseplugin/umlconcretesyntaxplugin.h2
-rw-r--r--examples/uml/duse-mt/src/plugins/welcomedashboard/welcomedashboardplugin.cpp4
-rw-r--r--examples/uml/duse-mt/src/plugins/welcomedashboard/welcomedashboardplugin.h2
21 files changed, 131 insertions, 85 deletions
diff --git a/examples/uml/duse-mt/src/app/shell/plugincontroller.cpp b/examples/uml/duse-mt/src/app/shell/plugincontroller.cpp
index abfba092..e67141cf 100644
--- a/examples/uml/duse-mt/src/app/shell/plugincontroller.cpp
+++ b/examples/uml/duse-mt/src/app/shell/plugincontroller.cpp
@@ -113,7 +113,6 @@ bool PluginController::initialize()
}
// Initialize DuSE-MT plugins
- ICore *core = ICore::self();
IPlugin *dusePlugin;
int previousPluginListSize = 0;
while (pluginList.size() != previousPluginListSize) {
@@ -131,7 +130,7 @@ bool PluginController::initialize()
}
}
if (loadedDependencies == dependencyCount) {
- if (dusePlugin->initialize(core)) {
+ if (dusePlugin->initialize()) {
_dusemtPlugins << dusePlugin;
pluginList.removeAll(plugin);
}
diff --git a/examples/uml/duse-mt/src/libs/duseinterfaces/iplugin.h b/examples/uml/duse-mt/src/libs/duseinterfaces/iplugin.h
index b4fa794d..136271e1 100644
--- a/examples/uml/duse-mt/src/libs/duseinterfaces/iplugin.h
+++ b/examples/uml/duse-mt/src/libs/duseinterfaces/iplugin.h
@@ -58,7 +58,7 @@ public:
IPlugin(QObject *parent = 0);
virtual ~IPlugin();
- virtual bool initialize(ICore *core) = 0;
+ virtual bool initialize() = 0;
};
}
diff --git a/examples/uml/duse-mt/src/plugins/architecturerecoverycore/architecturerecoverycoreplugin.cpp b/examples/uml/duse-mt/src/plugins/architecturerecoverycore/architecturerecoverycoreplugin.cpp
index 54f7995c..f3aa5cbe 100644
--- a/examples/uml/duse-mt/src/plugins/architecturerecoverycore/architecturerecoverycoreplugin.cpp
+++ b/examples/uml/duse-mt/src/plugins/architecturerecoverycore/architecturerecoverycoreplugin.cpp
@@ -50,10 +50,9 @@ ArchitectureRecoveryCorePlugin::ArchitectureRecoveryCorePlugin(QObject *parent)
{
}
-bool ArchitectureRecoveryCorePlugin::initialize(DuSE::ICore *core)
+bool ArchitectureRecoveryCorePlugin::initialize()
{
- Q_UNUSED(core);
- qDebug() << core->pluginController()->pluginsByType<IArchitectureRecoveryBackend *>();
+ qDebug() << DuSE::ICore::self()->pluginController()->pluginsByType<IArchitectureRecoveryBackend *>();
return true;
}
diff --git a/examples/uml/duse-mt/src/plugins/architecturerecoverycore/architecturerecoverycoreplugin.h b/examples/uml/duse-mt/src/plugins/architecturerecoverycore/architecturerecoverycoreplugin.h
index 141d45d8..e5ff7aae 100644
--- a/examples/uml/duse-mt/src/plugins/architecturerecoverycore/architecturerecoverycoreplugin.h
+++ b/examples/uml/duse-mt/src/plugins/architecturerecoverycore/architecturerecoverycoreplugin.h
@@ -51,7 +51,7 @@ class ArchitectureRecoveryCorePlugin : public DuSE::IPlugin
public:
ArchitectureRecoveryCorePlugin(QObject *parent = 0);
- virtual bool initialize(DuSE::ICore *core);
+ virtual bool initialize();
};
#endif // ARCHITECTURERECOVERYCOREPLUGIN
diff --git a/examples/uml/duse-mt/src/plugins/concretesyntaxview/concretesyntaxviewplugin.cpp b/examples/uml/duse-mt/src/plugins/concretesyntaxview/concretesyntaxviewplugin.cpp
index 6f0a76ab..ff8ca7f0 100644
--- a/examples/uml/duse-mt/src/plugins/concretesyntaxview/concretesyntaxviewplugin.cpp
+++ b/examples/uml/duse-mt/src/plugins/concretesyntaxview/concretesyntaxviewplugin.cpp
@@ -41,6 +41,7 @@
#include "concretesyntaxviewplugin.h"
#include <duseinterfaces/iuicontroller.h>
+#include <duseinterfaces/iprojectcontroller.h>
#include <QtQuick/QQuickView>
#include <QtQuick/QQuickItem>
@@ -60,17 +61,23 @@ ConcreteSyntaxViewPlugin::ConcreteSyntaxViewPlugin(QObject *parent) :
{
}
-bool ConcreteSyntaxViewPlugin::initialize(DuSE::ICore *core)
+bool ConcreteSyntaxViewPlugin::initialize()
{
- _concreteSyntaxQuickView->setSource(QUrl("qrc:/concretesyntaxview/concretesyntaxview.qml"));
_concreteSyntaxQuickView->setResizeMode(QQuickView::SizeRootObjectToView);
+ DuSE::ICore::self()->uiController()->addCentralWidgetTab(QWidget::createWindowContainer(_concreteSyntaxQuickView), "Concrete Syntax");
+ initializeQuickView();
- core->uiController()->addCentralWidgetTab(QWidget::createWindowContainer(_concreteSyntaxQuickView), "Concrete Syntax");
- connect(core->uiController(), &DuSE::IUiController::addToView, this, &ConcreteSyntaxViewPlugin::addToView);
+ connect(DuSE::ICore::self()->uiController(), &DuSE::IUiController::addToView, this, &ConcreteSyntaxViewPlugin::addToView);
+ connect(DuSE::ICore::self()->projectController(), SIGNAL(modelAboutToBeClosed(QList<QModelingObject *>)), this, SLOT(initializeQuickView()));
return true;
}
+void ConcreteSyntaxViewPlugin::initializeQuickView()
+{
+ _concreteSyntaxQuickView->setSource(QUrl("qrc:/concretesyntaxview/concretesyntaxview.qml"));
+}
+
void ConcreteSyntaxViewPlugin::addToView(QObject *selectedModelingObject, QQuickItem *parent)
{
QQmlContext *context = new QQmlContext(_concreteSyntaxQuickView->engine()->rootContext());
diff --git a/examples/uml/duse-mt/src/plugins/concretesyntaxview/concretesyntaxviewplugin.h b/examples/uml/duse-mt/src/plugins/concretesyntaxview/concretesyntaxviewplugin.h
index d4f27464..d0b72354 100644
--- a/examples/uml/duse-mt/src/plugins/concretesyntaxview/concretesyntaxviewplugin.h
+++ b/examples/uml/duse-mt/src/plugins/concretesyntaxview/concretesyntaxviewplugin.h
@@ -54,9 +54,10 @@ class ConcreteSyntaxViewPlugin : public DuSE::IPlugin
public:
ConcreteSyntaxViewPlugin(QObject *parent = 0);
- virtual bool initialize(DuSE::ICore *core);
+ virtual bool initialize();
private Q_SLOTS:
+ void initializeQuickView();
void addToView(QObject *selectedModelingObject, QQuickItem *parent = 0);
private:
diff --git a/examples/uml/duse-mt/src/plugins/designoptimizer/designoptimizerplugin.cpp b/examples/uml/duse-mt/src/plugins/designoptimizer/designoptimizerplugin.cpp
index abd0a803..597b51c1 100644
--- a/examples/uml/duse-mt/src/plugins/designoptimizer/designoptimizerplugin.cpp
+++ b/examples/uml/duse-mt/src/plugins/designoptimizer/designoptimizerplugin.cpp
@@ -52,12 +52,12 @@ DesignOptimizerPlugin::DesignOptimizerPlugin(QObject *parent) :
{
}
-bool DesignOptimizerPlugin::initialize(DuSE::ICore *core)
+bool DesignOptimizerPlugin::initialize()
{
_paretoFrontQuickView->setSource(QUrl("qrc:/designoptimizer/paretofront.qml"));
_paretoFrontQuickView->setResizeMode(QQuickView::SizeRootObjectToView);
- core->uiController()->addCentralWidgetTab(QWidget::createWindowContainer(_paretoFrontQuickView), "Pareto Front");
+ DuSE::ICore::self()->uiController()->addCentralWidgetTab(QWidget::createWindowContainer(_paretoFrontQuickView), "Pareto Front");
return true;
}
diff --git a/examples/uml/duse-mt/src/plugins/designoptimizer/designoptimizerplugin.h b/examples/uml/duse-mt/src/plugins/designoptimizer/designoptimizerplugin.h
index 15053cf9..19d26ad8 100644
--- a/examples/uml/duse-mt/src/plugins/designoptimizer/designoptimizerplugin.h
+++ b/examples/uml/duse-mt/src/plugins/designoptimizer/designoptimizerplugin.h
@@ -53,7 +53,7 @@ class DesignOptimizerPlugin : public DuSE::IPlugin
public:
DesignOptimizerPlugin(QObject *parent = 0);
- virtual bool initialize(DuSE::ICore *core);
+ virtual bool initialize();
private:
QQuickView *_paretoFrontQuickView;
diff --git a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp
index f1fd43bc..52330511 100644
--- a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp
+++ b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp
@@ -125,7 +125,8 @@ DesignSpaceExplorerPlugin::DesignSpaceExplorerPlugin(QObject *parent) :
_designSpaceExplorer(new QTableWidget),
_currentDesignSpaceLocationView(new QModelingObjectView),
_currentDesignSpaceLocationQtModel(new QModelingObjectModel),
- _newDuseDesignDialog(new NewDuseDesignDialog)
+ _newDuseDesignDialog(new NewDuseDesignDialog),
+ _engine(0)
{
_currentDesignSpaceLocationView->setModel(_currentDesignSpaceLocationQtModel);
}
@@ -133,29 +134,29 @@ DesignSpaceExplorerPlugin::DesignSpaceExplorerPlugin(QObject *parent) :
DesignSpaceExplorerPlugin::~DesignSpaceExplorerPlugin()
{
delete _newDuseDesignDialog;
+ delete _engine;
}
Q_SCRIPT_DECLARE_QMETAOBJECT(QSADuseProfileProcessComponentObject, QSADuseProfileProcessComponent *);
-bool DesignSpaceExplorerPlugin::initialize(DuSE::ICore *core)
+bool DesignSpaceExplorerPlugin::initialize()
{
- _core = core;
-
_currentDesignSpaceLocationQuickView->setSource(QUrl("qrc:/designspaceexplorer/currentdesignspacelocation.qml"));
_currentDesignSpaceLocationQuickView->setResizeMode(QQuickView::SizeRootObjectToView);
- core->uiController()->addCentralWidgetTab(QWidget::createWindowContainer(_currentDesignSpaceLocationQuickView), "Current Design Space Location");
+ DuSE::ICore::self()->uiController()->addCentralWidgetTab(QWidget::createWindowContainer(_currentDesignSpaceLocationQuickView), "Current Design Space Location");
_metricsQuickView->setSource(QUrl("qrc:/designspaceexplorer/qualitymetrics/qualitymetrics.qml"));
_metricsQuickView->setResizeMode(QQuickView::SizeRootObjectToView);
- core->uiController()->addDockWidget(Qt::LeftDockWidgetArea, tr("Quality Metrics"), QWidget::createWindowContainer(_metricsQuickView));
+ DuSE::ICore::self()->uiController()->addDockWidget(Qt::LeftDockWidgetArea, tr("Quality Metrics"), QWidget::createWindowContainer(_metricsQuickView));
- core->uiController()->addDockWidget(Qt::LeftDockWidgetArea, tr("Current Location Inspector"), _currentDesignSpaceLocationView);
+ DuSE::ICore::self()->uiController()->addDockWidget(Qt::LeftDockWidgetArea, tr("Current Location Inspector"), _currentDesignSpaceLocationView);
_designSpaceExplorer->setAlternatingRowColors(true);
_designSpaceExplorer->horizontalHeader()->setStretchLastSection(true);
_designSpaceExplorer->verticalHeader()->setVisible(false);
+ _designSpaceExplorer->setRowCount(0);
_designSpaceExplorer->setColumnCount(3);
_designSpaceExplorer->setHorizontalHeaderItem(0, new QTableWidgetItem(tr("Design Dimension")));
_designSpaceExplorer->setHorizontalHeaderItem(1, new QTableWidgetItem(tr("Dimension Instance Target")));
@@ -164,7 +165,7 @@ bool DesignSpaceExplorerPlugin::initialize(DuSE::ICore *core)
_designSpaceExplorer->resizeColumnToContents(1);
_designSpaceExplorer->resizeColumnToContents(2);
- core->uiController()->addDockWidget(Qt::RightDockWidgetArea, "Design Space Explorer", _designSpaceExplorer);
+ DuSE::ICore::self()->uiController()->addDockWidget(Qt::RightDockWidgetArea, "Design Space Explorer", _designSpaceExplorer);
QString iconThemeName;
@@ -181,7 +182,7 @@ bool DesignSpaceExplorerPlugin::initialize(DuSE::ICore *core)
}
_actionFileNewDuseDesign->setIcon(icon8);
connect(_actionFileNewDuseDesign, &QAction::triggered, this, &DesignSpaceExplorerPlugin::newDuseDesign);
- core->uiController()->addAction(_actionFileNewDuseDesign, "menu_File");
+ DuSE::ICore::self()->uiController()->addAction(_actionFileNewDuseDesign, "menu_File");
QAction *_actionFileOpenDuseDesign = new QAction(0);
_actionFileOpenDuseDesign->setText(QApplication::translate("MainWindow", "Open DuSE Design ...", 0));
@@ -196,14 +197,37 @@ bool DesignSpaceExplorerPlugin::initialize(DuSE::ICore *core)
}
_actionFileOpenDuseDesign->setIcon(icon9);
connect(_actionFileOpenDuseDesign, &QAction::triggered, this, &DesignSpaceExplorerPlugin::openDuseDesign);
- core->uiController()->addAction(_actionFileOpenDuseDesign, "menu_File");
+ DuSE::ICore::self()->uiController()->addAction(_actionFileOpenDuseDesign, "menu_File");
- qScriptRegisterMetaType(&_engine, qSetToScriptValue<QObject>, scriptValueToQSet<QObject>);
- qScriptRegisterMetaType(&_engine, qListToScriptValue<QObject>, scriptValueToQList<QObject>);
+ connect(DuSE::ICore::self()->projectController(), SIGNAL(modelOpened(QList<QModelingObject*>)), this, SLOT(initializeEngine(QList<QModelingObject*>)));
+ connect(DuSE::ICore::self()->projectController(), SIGNAL(modelAboutToBeClosed(QList<QModelingObject*>)), this, SLOT(destroyEngine()));
+ connect(DuSE::ICore::self()->projectController(), SIGNAL(modelClosed()), _currentDesignSpaceLocationQtModel, SLOT(clear()));
+ connect(DuSE::ICore::self()->projectController(), SIGNAL(modelClosed()), this, SLOT(resetDesignSpaceExplorer()));
return true;
}
+void DesignSpaceExplorerPlugin::initializeEngine(QList<QModelingObject *> modelingObjects)
+{
+ Q_UNUSED(modelingObjects);
+ _engine = new QScriptEngine;
+ qScriptRegisterMetaType(_engine, qSetToScriptValue<QObject>, scriptValueToQSet<QObject>);
+ qScriptRegisterMetaType(_engine, qListToScriptValue<QObject>, scriptValueToQList<QObject>);
+ currentDesignSpaceLocationChanged();
+}
+
+void DesignSpaceExplorerPlugin::destroyEngine()
+{
+ delete _engine;
+ _engine = 0;
+}
+
+void DesignSpaceExplorerPlugin::resetDesignSpaceExplorer()
+{
+ _designSpaceExplorer->setRowCount(0);
+ _designSpaceExplorer->clearContents();
+}
+
void DesignSpaceExplorerPlugin::newDuseDesign()
{
do {
@@ -224,13 +248,14 @@ void DesignSpaceExplorerPlugin::newDuseDesign()
return;
}
- if (!_core->projectController()->openModel(_newDuseDesignDialog->_inputModelFileName)) {
+ DuSE::ICore::self()->projectController()->closeModel();
+ if (!DuSE::ICore::self()->projectController()->openModel(_newDuseDesignDialog->_inputModelFileName)) {
QMessageBox::critical(0, tr("Create new DuSE design"), QStringLiteral("Error loading input file %1 !").arg(_newDuseDesignDialog->_inputModelFileName));
return;
}
bool found = false;
- QUmlModel *package = dynamic_cast<QUmlModel *>(_core->projectController()->currentModelElements().first());
+ QUmlModel *package = dynamic_cast<QUmlModel *>(DuSE::ICore::self()->projectController()->currentModelElements().first());
QDuseDesignSpace *designSpace = dynamic_cast<QDuseDesignSpace *>(_duseInstance.first());
foreach (QUmlProfileApplication *profileApplication, package->profileApplications()) {
if (profileApplication->appliedProfile()->name() == designSpace->requiredProfile()) {
@@ -244,14 +269,14 @@ void DesignSpaceExplorerPlugin::newDuseDesign()
return;
}
- QScriptValue array = _engine.newArray();
- foreach (QObject *modelingObject, _core->projectController()->currentModelObjects())
- array.property(QString::fromLatin1("push")).call(array, QScriptValueList() << _engine.newQObject(modelingObject));
- _engine.globalObject().setProperty("input", array);
+ QScriptValue array = _engine->newArray();
+ foreach (QObject *modelingObject, DuSE::ICore::self()->projectController()->currentModelObjects())
+ array.property(QString::fromLatin1("push")).call(array, QScriptValueList() << _engine->newQObject(modelingObject));
+ _engine->globalObject().setProperty("input", array);
foreach (QDuseDesignDimension *designDimension, designSpace->designDimensions()) {
foreach (const QString &body, designDimension->instanceSelectionRule()->bodies()) {
- QScriptValue value = _engine.evaluate(body);
+ QScriptValue value = _engine->evaluate(body);
if (value.toVariant().canConvert(QMetaType::type("QVariantList"))) {
foreach (const QVariant &variant, value.toVariant().value<QVariantList>()) {
if (variant.canConvert(QMetaType::type("QObject*"))) {
@@ -315,7 +340,7 @@ void DesignSpaceExplorerPlugin::currentDesignSpaceLocationChanged()
for (int i = 0; i < rowCount; ++i)
_currentDesignSpaceLocation[_designSpaceExplorer->item(i, 1)->text()][qmodelingelementproperty_cast<QDuseDesignDimension *>(designSpaceObject->findChild<QModelingObject *>(_designSpaceExplorer->item(i, 0)->text()))] = qmodelingelementproperty_cast<QDuseVariationPoint *>(designSpaceObject->findChild<QModelingObject *>((dynamic_cast<QComboBox *>(_designSpaceExplorer->cellWidget(i, 2)))->currentText()));
- foreach (QModelingElement *element, _core->projectController()->currentModelElements())
+ foreach (QModelingElement *element, DuSE::ICore::self()->projectController()->currentModelElements())
_currentDesignSpaceLocationMofModel << element->clone();
QList<QModelingObject *> currentModelObjects;
diff --git a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.h b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.h
index f9602ca4..87542736 100644
--- a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.h
+++ b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.h
@@ -50,6 +50,7 @@ class NewDuseDesignDialog;
class QQuickView;
class QTableWidget;
+class QModelingObject;
class QModelingElement;
class QModelingObjectModel;
@@ -71,16 +72,17 @@ public:
DesignSpaceExplorerPlugin(QObject *parent = 0);
virtual ~DesignSpaceExplorerPlugin();
- virtual bool initialize(DuSE::ICore *core);
+ virtual bool initialize();
private Q_SLOTS:
+ void initializeEngine(QList<QModelingObject *> modelingObjects);
+ void destroyEngine();
+ void resetDesignSpaceExplorer();
void newDuseDesign();
void openDuseDesign();
void currentDesignSpaceLocationChanged();
private:
- DuSE::ICore *_core;
-
QQuickView *_currentDesignSpaceLocationQuickView;
QQuickView *_metricsQuickView;
QTableWidget *_designSpaceExplorer;
@@ -92,7 +94,7 @@ private:
QList<QModelingElement *> _currentDesignSpaceLocationMofModel;
QHash<QString, QHash<QDuseDesignDimension *, QDuseVariationPoint *> > _currentDesignSpaceLocation;
- QScriptEngine _engine;
+ QScriptEngine *_engine;
void populateDesignSpaceExplorer();
};
diff --git a/examples/uml/duse-mt/src/plugins/gccxmlarchitecturerecoverybackend/gccxmlarchitecturerecoverybackendplugin.cpp b/examples/uml/duse-mt/src/plugins/gccxmlarchitecturerecoverybackend/gccxmlarchitecturerecoverybackendplugin.cpp
index e70d218b..06c89d33 100644
--- a/examples/uml/duse-mt/src/plugins/gccxmlarchitecturerecoverybackend/gccxmlarchitecturerecoverybackendplugin.cpp
+++ b/examples/uml/duse-mt/src/plugins/gccxmlarchitecturerecoverybackend/gccxmlarchitecturerecoverybackendplugin.cpp
@@ -53,11 +53,11 @@ GccXmlArchitectureRecoveryBackendPlugin::GccXmlArchitectureRecoveryBackendPlugin
{
}
-bool GccXmlArchitectureRecoveryBackendPlugin::initialize(DuSE::ICore *core)
+bool GccXmlArchitectureRecoveryBackendPlugin::initialize()
{
QAction *newArchitectureRecoveryProcessAction = new QAction(QIcon(), tr("New architecture recovery process"), this);
connect(newArchitectureRecoveryProcessAction, SIGNAL(triggered()), this, SLOT(newArchitectureRecoveryProcess()));
- core->uiController()->addAction(newArchitectureRecoveryProcessAction, tr("menu_File"));
+ DuSE::ICore::self()->uiController()->addAction(newArchitectureRecoveryProcessAction, tr("menu_File"));
return true;
}
diff --git a/examples/uml/duse-mt/src/plugins/gccxmlarchitecturerecoverybackend/gccxmlarchitecturerecoverybackendplugin.h b/examples/uml/duse-mt/src/plugins/gccxmlarchitecturerecoverybackend/gccxmlarchitecturerecoverybackendplugin.h
index db3409ea..1fffe753 100644
--- a/examples/uml/duse-mt/src/plugins/gccxmlarchitecturerecoverybackend/gccxmlarchitecturerecoverybackendplugin.h
+++ b/examples/uml/duse-mt/src/plugins/gccxmlarchitecturerecoverybackend/gccxmlarchitecturerecoverybackendplugin.h
@@ -58,7 +58,7 @@ class GccXmlArchitectureRecoveryBackendPlugin : public DuSE::IPlugin, public IAr
public:
GccXmlArchitectureRecoveryBackendPlugin(QObject *parent = 0);
- virtual bool initialize(DuSE::ICore *core);
+ virtual bool initialize();
void setRootProjectDir(const QDir &rootProjectDir);
diff --git a/examples/uml/duse-mt/src/plugins/javascriptconsole/javascriptconsole.ui b/examples/uml/duse-mt/src/plugins/javascriptconsole/javascriptconsole.ui
index 11a0798c..6a1de49c 100644
--- a/examples/uml/duse-mt/src/plugins/javascriptconsole/javascriptconsole.ui
+++ b/examples/uml/duse-mt/src/plugins/javascriptconsole/javascriptconsole.ui
@@ -25,6 +25,9 @@
</item>
<item row="1" column="0">
<widget class="QPushButton" name="psbJSEvaluate">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
<property name="text">
<string>&amp;Evaluate</string>
</property>
@@ -41,9 +44,6 @@
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QTextEdit" name="txeJavaScriptEvaluation">
- <property name="enabled">
- <bool>true</bool>
- </property>
<property name="readOnly">
<bool>true</bool>
</property>
diff --git a/examples/uml/duse-mt/src/plugins/javascriptconsole/javascriptconsoleplugin.cpp b/examples/uml/duse-mt/src/plugins/javascriptconsole/javascriptconsoleplugin.cpp
index 828ccc60..5c5b239e 100644
--- a/examples/uml/duse-mt/src/plugins/javascriptconsole/javascriptconsoleplugin.cpp
+++ b/examples/uml/duse-mt/src/plugins/javascriptconsole/javascriptconsoleplugin.cpp
@@ -97,68 +97,81 @@ void scriptValueToQList(const QScriptValue &obj, QList<T *> &elements)
JavaScriptConsolePlugin::JavaScriptConsolePlugin(QObject *parent) :
DuSE::IPlugin(parent),
_javaScriptConsole(new Ui::JavaScriptConsole),
- _codeCompletionView(new QListView)
+ _codeCompletionView(new QListView),
+ _engine(0)
{
}
JavaScriptConsolePlugin::~JavaScriptConsolePlugin()
{
delete _javaScriptConsole;
+ delete _engine;
}
-bool JavaScriptConsolePlugin::initialize(DuSE::ICore *core)
+bool JavaScriptConsolePlugin::initialize()
{
QWidget *javaScriptConsoleWidget = new QWidget;
_javaScriptConsole->setupUi(javaScriptConsoleWidget);
- core->uiController()->addDockWidget(Qt::BottomDockWidgetArea, tr("JavaScript Console"), javaScriptConsoleWidget);
+ DuSE::ICore::self()->uiController()->addDockWidget(Qt::BottomDockWidgetArea, tr("JavaScript Console"), javaScriptConsoleWidget);
_javaScriptConsole->txeJavaScript->installEventFilter(this);
_codeCompletionView->installEventFilter(this);
- _javaScriptConsole->txeJavaScript->setText("self");
-
_codeCompletionView->setParent(_javaScriptConsole->txeJavaScript);
_codeCompletionView->hide();
connect(_javaScriptConsole->psbJSEvaluate, &QPushButton::clicked, this, &JavaScriptConsolePlugin::evaluate);
- connect(_javaScriptConsole->psbJSEvaluate, SIGNAL(clicked()), core->uiController(), SIGNAL(updateCurrentModelingObject()));
- connect(core->uiController(), &DuSE::IUiController::currentModelingObjectChanged, this, &JavaScriptConsolePlugin::setSelfProperty);
- connect(core->projectController(), SIGNAL(modelOpened(QList<QModelingObject*>)), this, SLOT(setRootAndInputProperties(QList<QModelingObject*>)));
+ connect(_javaScriptConsole->psbJSEvaluate, SIGNAL(clicked()), DuSE::ICore::self()->uiController(), SIGNAL(updateCurrentModelingObject()));
- qScriptRegisterMetaType(&_engine, qSetToScriptValue<QObject>, scriptValueToQSet<QObject>);
- qScriptRegisterMetaType(&_engine, qListToScriptValue<QObject>, scriptValueToQList<QObject>);
+ connect(DuSE::ICore::self()->uiController(), &DuSE::IUiController::currentModelingObjectChanged, this, &JavaScriptConsolePlugin::setSelfProperty);
+ connect(DuSE::ICore::self()->projectController(), SIGNAL(modelOpened(QList<QModelingObject*>)), this, SLOT(initializeEngine(QList<QModelingObject*>)));
+ connect(DuSE::ICore::self()->projectController(), SIGNAL(modelAboutToBeClosed(QList<QModelingObject*>)), this, SLOT(destroyEngine()));
return true;
}
void JavaScriptConsolePlugin::setSelfProperty(QModelingObject *modelingObject)
{
- _engine.globalObject().setProperty("self", _engine.newQObject(modelingObject));
+ _engine->globalObject().setProperty("self", _engine->newQObject(modelingObject));
}
-void JavaScriptConsolePlugin::setRootAndInputProperties(QList<QModelingObject *> modelingObjects)
+void JavaScriptConsolePlugin::initializeEngine(QList<QModelingObject *> modelingObjects)
{
if (modelingObjects.size() == 0)
return;
+ _engine = new QScriptEngine;
+ qScriptRegisterMetaType(_engine, qSetToScriptValue<QObject>, scriptValueToQSet<QObject>);
+ qScriptRegisterMetaType(_engine, qListToScriptValue<QObject>, scriptValueToQList<QObject>);
+
QModelingObject *modelingObject = modelingObjects.at(0);
- _engine.globalObject().setProperty(modelingObject->objectName(), _engine.newQObject(modelingObject));
+ _engine->globalObject().setProperty(modelingObject->objectName(), _engine->newQObject(modelingObject));
- QScriptValue array = _engine.newArray();
+ QScriptValue array = _engine->newArray();
foreach (QModelingObject *modelingObject, modelingObjects)
- array.property(QString::fromLatin1("push")).call(array, QScriptValueList() << _engine.newQObject(modelingObject));
- _engine.globalObject().setProperty("input", array);
+ array.property(QString::fromLatin1("push")).call(array, QScriptValueList() << _engine->newQObject(modelingObject));
+ _engine->globalObject().setProperty("input", array);
_javaScriptConsole->txeJavaScript->setText("self");
+ _javaScriptConsole->psbJSEvaluate->setEnabled(true);
QTimer::singleShot(0, this, SLOT(evaluate()));
}
+void JavaScriptConsolePlugin::destroyEngine()
+{
+ delete _engine;
+ _engine = 0;
+ _javaScriptConsole->txeJavaScript->clear();
+ _javaScriptConsole->txeJavaScriptEvaluation->clear();
+ _javaScriptConsole->psbJSEvaluate->setEnabled(false);
+}
+
bool JavaScriptConsolePlugin::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::KeyPress && obj == _javaScriptConsole->txeJavaScript) {
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
if (keyEvent->key() == 46) {
- QModelingObject *modelingObject = dynamic_cast<QModelingObject *>(_engine.evaluate(_javaScriptConsole->txeJavaScript->toPlainText()).toQObject());
+ QModelingObject *modelingObject = dynamic_cast<QModelingObject *>(_engine->evaluate(_javaScriptConsole->txeJavaScript->toPlainText()).toQObject());
if (modelingObject) {
const QMetaObject *metaObject = modelingObject->metaObject();
int propertyCount = metaObject->propertyCount();
@@ -197,5 +210,5 @@ bool JavaScriptConsolePlugin::eventFilter(QObject *obj, QEvent *event)
void JavaScriptConsolePlugin::evaluate()
{
- _javaScriptConsole->txeJavaScriptEvaluation->setText(_engine.evaluate(_javaScriptConsole->txeJavaScript->toPlainText()).toString());
+ _javaScriptConsole->txeJavaScriptEvaluation->setText(_engine->evaluate(_javaScriptConsole->txeJavaScript->toPlainText()).toString());
}
diff --git a/examples/uml/duse-mt/src/plugins/javascriptconsole/javascriptconsoleplugin.h b/examples/uml/duse-mt/src/plugins/javascriptconsole/javascriptconsoleplugin.h
index 5e2d60b5..36742f15 100644
--- a/examples/uml/duse-mt/src/plugins/javascriptconsole/javascriptconsoleplugin.h
+++ b/examples/uml/duse-mt/src/plugins/javascriptconsole/javascriptconsoleplugin.h
@@ -67,14 +67,15 @@ public:
JavaScriptConsolePlugin(QObject *parent = 0);
virtual ~JavaScriptConsolePlugin();
- virtual bool initialize(DuSE::ICore *core);
+ virtual bool initialize();
protected:
bool eventFilter(QObject *obj, QEvent *event);
public Q_SLOTS:
void setSelfProperty(QModelingObject *modelingObject);
- void setRootAndInputProperties(QList<QModelingObject *> modelingObjects);
+ void initializeEngine(QList<QModelingObject *> modelingObjects);
+ void destroyEngine();
private Q_SLOTS:
void evaluate();
@@ -82,7 +83,7 @@ private Q_SLOTS:
private:
Ui::JavaScriptConsole *_javaScriptConsole;
QListView *_codeCompletionView;
- QScriptEngine _engine;
+ QScriptEngine *_engine;
};
#endif // JAVASCRIPTCONSOLEPLUGIN_H
diff --git a/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.cpp b/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.cpp
index 9adec971..86428a75 100644
--- a/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.cpp
+++ b/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.cpp
@@ -80,25 +80,25 @@ ModelInspectorPlugin::~ModelInspectorPlugin()
delete _outputIssues;
}
-bool ModelInspectorPlugin::initialize(DuSE::ICore *core)
+bool ModelInspectorPlugin::initialize()
{
- core->uiController()->addDockWidget(Qt::LeftDockWidgetArea, tr("Model Inspector"), _modelingObjectView);
- core->uiController()->addDockWidget(Qt::RightDockWidgetArea, tr("Property Editor"), _propertyEditor);
- core->uiController()->addDockWidget(Qt::BottomDockWidgetArea, tr("Issues"), _outputIssues);
+ DuSE::ICore::self()->uiController()->addDockWidget(Qt::LeftDockWidgetArea, tr("Model Inspector"), _modelingObjectView);
+ DuSE::ICore::self()->uiController()->addDockWidget(Qt::RightDockWidgetArea, tr("Property Editor"), _propertyEditor);
+ DuSE::ICore::self()->uiController()->addDockWidget(Qt::BottomDockWidgetArea, tr("Issues"), _outputIssues);
- connect(core->projectController(), SIGNAL(modelOpened(QList<QModelingObject*>)), _modelingObjectModel, SLOT(setModelingObjects(QList<QModelingObject*>)));
- connect(core->projectController(), SIGNAL(modelOpened(QList<QModelingObject*>)), this, SLOT(populateOutputIssues()));
+ connect(DuSE::ICore::self()->projectController(), SIGNAL(modelOpened(QList<QModelingObject*>)), _modelingObjectModel, SLOT(setModelingObjects(QList<QModelingObject*>)));
+ connect(DuSE::ICore::self()->projectController(), SIGNAL(modelOpened(QList<QModelingObject*>)), this, SLOT(populateOutputIssues()));
- connect(core->projectController(), SIGNAL(modelClosed()), _modelingObjectModel, SLOT(clear()));
- connect(core->projectController(), SIGNAL(modelClosed()), _propertyModel, SLOT(clear()));
- connect(core->projectController(), SIGNAL(modelClosed()), this, SLOT(populateOutputIssues()));
+ connect(DuSE::ICore::self()->projectController(), SIGNAL(modelClosed()), _modelingObjectModel, SLOT(clear()));
+ connect(DuSE::ICore::self()->projectController(), SIGNAL(modelClosed()), _propertyModel, SLOT(clear()));
+ connect(DuSE::ICore::self()->projectController(), SIGNAL(modelClosed()), this, SLOT(populateOutputIssues()));
connect(_modelingObjectView, &QModelingObjectView::modelingObjectChanged, _propertyModel, &QModelingObjectPropertyModel::setModelingObject);
- connect(_modelingObjectView, SIGNAL(modelingObjectChanged(QModelingObject*)), core->uiController(), SIGNAL(currentModelingObjectChanged(QModelingObject*)));
+ connect(_modelingObjectView, SIGNAL(modelingObjectChanged(QModelingObject*)), DuSE::ICore::self()->uiController(), SIGNAL(currentModelingObjectChanged(QModelingObject*)));
connect(_propertyModel, &QModelingObjectPropertyModel::indexChanged, _modelingObjectModel, &QModelingObjectModel::updateIndex);
- connect(core->uiController(), SIGNAL(updateCurrentModelingObject()), _modelingObjectView, SLOT(updateSelected()));
- connect(_modelingObjectView, SIGNAL(addToView(QObject*,QQuickItem*)), core->uiController(), SIGNAL(addToView(QObject*,QQuickItem*)));
+ connect(DuSE::ICore::self()->uiController(), SIGNAL(updateCurrentModelingObject()), _modelingObjectView, SLOT(updateSelected()));
+ connect(_modelingObjectView, SIGNAL(addToView(QObject*,QQuickItem*)), DuSE::ICore::self()->uiController(), SIGNAL(addToView(QObject*,QQuickItem*)));
return true;
}
diff --git a/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.h b/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.h
index 4cabb9b1..17f76b21 100644
--- a/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.h
+++ b/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.h
@@ -59,7 +59,7 @@ public:
ModelInspectorPlugin(QObject *parent = 0);
virtual ~ModelInspectorPlugin();
- virtual bool initialize(DuSE::ICore *core);
+ virtual bool initialize();
private Q_SLOTS:
void populateOutputIssues();
diff --git a/examples/uml/duse-mt/src/plugins/umlconcretesyntax/duseplugin/umlconcretesyntaxplugin.cpp b/examples/uml/duse-mt/src/plugins/umlconcretesyntax/duseplugin/umlconcretesyntaxplugin.cpp
index 783e1b46..8541196b 100644
--- a/examples/uml/duse-mt/src/plugins/umlconcretesyntax/duseplugin/umlconcretesyntaxplugin.cpp
+++ b/examples/uml/duse-mt/src/plugins/umlconcretesyntax/duseplugin/umlconcretesyntaxplugin.cpp
@@ -45,9 +45,8 @@ UmlConcreteSyntaxPlugin::UmlConcreteSyntaxPlugin(QObject *parent) :
{
}
-bool UmlConcreteSyntaxPlugin::initialize(DuSE::ICore *core)
+bool UmlConcreteSyntaxPlugin::initialize()
{
- Q_UNUSED(core);
return true;
}
diff --git a/examples/uml/duse-mt/src/plugins/umlconcretesyntax/duseplugin/umlconcretesyntaxplugin.h b/examples/uml/duse-mt/src/plugins/umlconcretesyntax/duseplugin/umlconcretesyntaxplugin.h
index 0c243822..44662f8d 100644
--- a/examples/uml/duse-mt/src/plugins/umlconcretesyntax/duseplugin/umlconcretesyntaxplugin.h
+++ b/examples/uml/duse-mt/src/plugins/umlconcretesyntax/duseplugin/umlconcretesyntaxplugin.h
@@ -51,7 +51,7 @@ class UmlConcreteSyntaxPlugin : public DuSE::IPlugin
public:
UmlConcreteSyntaxPlugin(QObject *parent = 0);
- virtual bool initialize(DuSE::ICore *core);
+ virtual bool initialize();
};
#endif // UMLCONCRETESYNTAXPLUGIN_H
diff --git a/examples/uml/duse-mt/src/plugins/welcomedashboard/welcomedashboardplugin.cpp b/examples/uml/duse-mt/src/plugins/welcomedashboard/welcomedashboardplugin.cpp
index 69a63575..12704bc7 100644
--- a/examples/uml/duse-mt/src/plugins/welcomedashboard/welcomedashboardplugin.cpp
+++ b/examples/uml/duse-mt/src/plugins/welcomedashboard/welcomedashboardplugin.cpp
@@ -52,12 +52,12 @@ WelcomeDashboardPlugin::WelcomeDashboardPlugin(QObject *parent) :
{
}
-bool WelcomeDashboardPlugin::initialize(DuSE::ICore *core)
+bool WelcomeDashboardPlugin::initialize()
{
_welcomeQuickView->setSource(QUrl("qrc:/welcomedashboard/welcomedashboard.qml"));
_welcomeQuickView->setResizeMode(QQuickView::SizeRootObjectToView);
- core->uiController()->addCentralWidgetTab(QWidget::createWindowContainer(_welcomeQuickView), "Welcome", 0);
+ DuSE::ICore::self()->uiController()->addCentralWidgetTab(QWidget::createWindowContainer(_welcomeQuickView), "Welcome", 0);
return true;
}
diff --git a/examples/uml/duse-mt/src/plugins/welcomedashboard/welcomedashboardplugin.h b/examples/uml/duse-mt/src/plugins/welcomedashboard/welcomedashboardplugin.h
index 96fb4a62..98095f56 100644
--- a/examples/uml/duse-mt/src/plugins/welcomedashboard/welcomedashboardplugin.h
+++ b/examples/uml/duse-mt/src/plugins/welcomedashboard/welcomedashboardplugin.h
@@ -53,7 +53,7 @@ class WelcomeDashboardPlugin : public DuSE::IPlugin
public:
WelcomeDashboardPlugin(QObject *parent = 0);
- virtual bool initialize(DuSE::ICore *core);
+ virtual bool initialize();
private:
QQuickView *_welcomeQuickView;