diff --git a/src/plugins/editing/MappingView/CMakeLists.txt b/src/plugins/editing/MappingView/CMakeLists.txt index 3afaef01b9..bec60f4ca2 100644 --- a/src/plugins/editing/MappingView/CMakeLists.txt +++ b/src/plugins/editing/MappingView/CMakeLists.txt @@ -15,10 +15,9 @@ add_plugin(MappingView src/mappingviewplugin.cpp src/mappingviewwidget.cpp src/mappingviewzincwidget.cpp - UIS - src/mappingviewwidget.ui PLUGINS Core CellMLSupport ZincWidget + Qwt ) diff --git a/src/plugins/editing/MappingView/i18n/MappingView_fr.ts b/src/plugins/editing/MappingView/i18n/MappingView_fr.ts index e523f29369..0dd22500d5 100644 --- a/src/plugins/editing/MappingView/i18n/MappingView_fr.ts +++ b/src/plugins/editing/MappingView/i18n/MappingView_fr.ts @@ -1,17 +1,6 @@ - - MappingViewWidget - - Node: - - - - Variable: - - - OpenCOR::MappingView::MappingViewPlugin diff --git a/src/plugins/editing/MappingView/src/mappingvieweditingwidget.cpp b/src/plugins/editing/MappingView/src/mappingvieweditingwidget.cpp index 0a542bb3de..7024a7c9f9 100644 --- a/src/plugins/editing/MappingView/src/mappingvieweditingwidget.cpp +++ b/src/plugins/editing/MappingView/src/mappingvieweditingwidget.cpp @@ -29,10 +29,6 @@ along with this program. If not, see . //============================================================================== -#include "ui_mappingviewwidget.h" - -//============================================================================== - #include #include diff --git a/src/plugins/editing/MappingView/src/mappingviewwidget.cpp b/src/plugins/editing/MappingView/src/mappingviewwidget.cpp index 931fa55ca2..a1c0155340 100644 --- a/src/plugins/editing/MappingView/src/mappingviewwidget.cpp +++ b/src/plugins/editing/MappingView/src/mappingviewwidget.cpp @@ -28,12 +28,9 @@ along with this program. If not, see . //============================================================================== -#include "ui_mappingviewwidget.h" - -//============================================================================== - -#include #include +#include +#include //============================================================================== @@ -52,14 +49,52 @@ namespace MappingView { //============================================================================== MappingViewWidget::MappingViewWidget(QWidget *pParent) : - Core::SplitterWidget(pParent), - mAxesFontPointSize(0), - mGui(new Ui::MappingViewWidget) + Core::SplitterWidget(pParent) { - // Set up the GUI + // Set our orientation + + setOrientation(Qt::Vertical); + + //create and add toolbar + + mToolBarWidget = new Core::ToolBarWidget(); + + QRect availableGeometry = qApp->primaryScreen()->availableGeometry(); + + mDelayWidget = new QwtWheel(mToolBarWidget); + + mDelayWidget->setBorderWidth(0); + mDelayWidget->setFixedSize(int(0.07*availableGeometry.width()), + mDelayWidget->height()/2); + mDelayWidget->setFocusPolicy(Qt::NoFocus); + mDelayWidget->setRange(0.0, 100.0); + mDelayWidget->setWheelBorderWidth(0); + + mDelayWidget->setValue(MappingViewZincWidget::nodeSizeOrigin); + + mToolBarWidget->addWidget(mDelayWidget); + + addWidget(mToolBarWidget); + + //create and add informative labels + + QLabel *nodeLabel = new QLabel("Node:",this); + addWidget(nodeLabel); + + mNodeValue = new QLabel(this); + addWidget(mNodeValue); - mGui->setupUi(this); + QLabel *variableLabel = new QLabel("Variable:",this); + addWidget(variableLabel); + + mVariableValue = new QLabel(this); + addWidget(mVariableValue); + + //create and add the variable tree: + + mVariableTree = new QTreeView(this); + addWidget(mVariableTree); // Keep track of our movement /* @@ -72,23 +107,19 @@ MappingViewWidget::MappingViewWidget(QWidget *pParent) : //TODO mMeshFileName = "/home/tuareg/Documents/OpenCOR/opencor/meshes/circulation.exnode"; - // Create and add a Zinc widget + // add a Zinc widget mMappingViewZincWidget = new MappingViewZincWidget(this, mMeshFileName); - //TODO move to mappingviewzincwidget and you know how it works - connect(mMappingViewZincWidget, &MappingViewZincWidget::devicePixelRatioChanged, - this, &MappingViewWidget::devicePixelRatioChanged); - connect(mMappingViewZincWidget, &MappingViewZincWidget::nodeSelection, this, &MappingViewWidget::nodeSelection); + connect(mDelayWidget, &QwtWheel::valueChanged, + mMappingViewZincWidget, &MappingViewZincWidget::setNodeSizes ); - mGui->layout->addWidget(mMappingViewZincWidget); + addWidget(mMappingViewZincWidget); //mToolBarWidget = new Core::ToolBarWidget(); - - } //============================================================================== @@ -120,14 +151,14 @@ void MappingViewWidget::initialize(const QString &pFileName) if (mEditingWidget == nullptr) { // No editing widget exists for the given file, so create one - mEditingWidget = new MappingViewEditingWidget(pFileName, "../opencor/meshes/circulation.exnode",this); + mEditingWidget = new MappingViewEditingWidget(pFileName, mMeshFileName,this); mEditingWidgets.insert(pFileName, mEditingWidget); } //mListWidgetVariables->setModel(mEditingWidget->listViewModelVariables()); //TODO set only when charging the plugin ? //mGui->outputList->setModel(mEditingWidget->listViewModelOutput()); - mGui->variableTree->setModel(mEditingWidget->getTreeViewModel()); + mVariableTree->setModel(mEditingWidget->getTreeViewModel()); } //============================================================================== @@ -203,30 +234,14 @@ void MappingViewWidget::fileRenamed(const QString &pOldFileName, const QString & //============================================================================== -void MappingViewWidget::devicePixelRatioChanged(const int &pDevicePixelRatio) -{ - Q_UNUSED(pDevicePixelRatio); - //TODO to confirm - // Update our scene using the given devide pixel ratio - /* - OpenCMISS::Zinc::Scene scene = mZincContext->getDefaultRegion().getScene(); - - scene.beginChange(); - scene.createGraphicsPoints().getGraphicspointattributes().getFont().setPointSize(pDevicePixelRatio*mAxesFontPointSize); - scene.endChange(); - */ -} - -//============================================================================== - void MappingViewWidget::nodeSelection(int pId) { if (pId==-1) { - mGui->nodeValue->setText(""); - mGui->variableValue->setText(""); + mNodeValue->setText(""); + mVariableValue->setText(""); } else { - mGui->nodeValue->setNum(pId); - mGui->variableValue->setText(mEditingWidget->getVariableOfNode(pId)); + mNodeValue->setNum(pId); + mVariableValue->setText(mEditingWidget->getVariableOfNode(pId)); } } diff --git a/src/plugins/editing/MappingView/src/mappingviewwidget.h b/src/plugins/editing/MappingView/src/mappingviewwidget.h index 95f8ab89d4..1b25649989 100644 --- a/src/plugins/editing/MappingView/src/mappingviewwidget.h +++ b/src/plugins/editing/MappingView/src/mappingviewwidget.h @@ -36,12 +36,14 @@ along with this program. If not, see . #include #include #include +#include +#include //============================================================================== -namespace Ui { - class MappingViewWidget; -} // namespace Ui +#include "qwtbegin.h" + #include "qwt_wheel.h" +#include "qwtend.h" //============================================================================== @@ -85,14 +87,16 @@ class MappingViewWidget : public Core::SplitterWidget bool saveFile(const QString &pOldFileName, const QString &pNewFileName); - int mAxesFontPointSize; - private: - Ui::MappingViewWidget *mGui; + + QwtWheel *mDelayWidget; Core::ToolBarWidget *mToolBarWidget; MappingViewZincWidget *mMappingViewZincWidget; + QLabel *mNodeValue; + QLabel *mVariableValue; + QTreeView *mVariableTree; QListWidget *mListWidgetVariables; QListWidget *mListWidgetOutput; @@ -103,10 +107,8 @@ class MappingViewWidget : public Core::SplitterWidget QString mMeshFileName; private slots: - void devicePixelRatioChanged(const int &pDevicePixelRatio); void nodeSelection(int pId); - }; //============================================================================== diff --git a/src/plugins/editing/MappingView/src/mappingviewwidget.ui b/src/plugins/editing/MappingView/src/mappingviewwidget.ui deleted file mode 100644 index 7c956c4872..0000000000 --- a/src/plugins/editing/MappingView/src/mappingviewwidget.ui +++ /dev/null @@ -1,61 +0,0 @@ - - - MappingViewWidget - - - - 0 - 0 - 681 - 315 - - - - - - - - - - - - - Node: - - - - - - - - - - - - - - Variable: - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/plugins/editing/MappingView/src/mappingviewzincwidget.cpp b/src/plugins/editing/MappingView/src/mappingviewzincwidget.cpp index a69be082dc..48570eb586 100644 --- a/src/plugins/editing/MappingView/src/mappingviewzincwidget.cpp +++ b/src/plugins/editing/MappingView/src/mappingviewzincwidget.cpp @@ -57,7 +57,8 @@ namespace MappingView { MappingViewZincWidget::MappingViewZincWidget(QWidget *pParent, const QString &pMainFileName) : ZincWidget::ZincWidget(pParent), mMainFileName(pMainFileName), - mAuxFileName(pMainFileName) + mAuxFileName(pMainFileName), + mNodeSize(nodeSizeOrigin) { // Keep track of our current scene viewer's description //TODO usefull ? @@ -162,8 +163,6 @@ void MappingViewZincWidget::initializeGL() // Size of our green spheres - mNodeSize = 20.; - OpenCMISS::Zinc::Graphicspointattributes pointAttr = nodePoints.getGraphicspointattributes(); pointAttr.setBaseSize(1, &mNodeSize); @@ -188,7 +187,7 @@ void MappingViewZincWidget::mouseMoveEvent(QMouseEvent *pEvent) void MappingViewZincWidget::mousePressEvent(QMouseEvent *pEvent) { ZincWidget::mousePressEvent(pEvent); - mouse_pos_click = pEvent->pos(); + mMousePosClick = pEvent->pos(); } //============================================================================== @@ -197,7 +196,7 @@ void MappingViewZincWidget::mouseReleaseEvent(QMouseEvent *pEvent) { ZincWidget::mouseReleaseEvent(pEvent); - if (mouse_pos_click==pEvent->pos()) { + if (mMousePosClick==pEvent->pos()) { click(pEvent); } } @@ -214,10 +213,10 @@ void MappingViewZincWidget::wheelEvent(QWheelEvent *pEvent) void MappingViewZincWidget::click(QMouseEvent *pEvent) { mScenePicker->setSceneviewerRectangle(mSceneViewer, OpenCMISS::Zinc::SCENECOORDINATESYSTEM_WINDOW_PIXEL_TOP_LEFT, - pEvent->x() - size_selection, - pEvent->y() - size_selection, - pEvent->x() + size_selection, - pEvent->y() + size_selection); + pEvent->x() - mSizeSelection, + pEvent->y() - mSizeSelection, + pEvent->x() + mSizeSelection, + pEvent->y() + mSizeSelection); OpenCMISS::Zinc::Node node = mScenePicker->getNearestNode(); int id = node.getIdentifier(); @@ -258,6 +257,12 @@ void MappingViewZincWidget::click(QMouseEvent *pEvent) //============================================================================== +void MappingViewZincWidget::setNodeSizes(int pSize) { + mNodeSize = pSize; + //TODO + initializeGL(); +} + } // namespace ZincWidget } // namespace OpenCOR diff --git a/src/plugins/editing/MappingView/src/mappingviewzincwidget.h b/src/plugins/editing/MappingView/src/mappingviewzincwidget.h index 402463cafe..6e179d93ca 100644 --- a/src/plugins/editing/MappingView/src/mappingviewzincwidget.h +++ b/src/plugins/editing/MappingView/src/mappingviewzincwidget.h @@ -55,6 +55,8 @@ class MappingViewZincWidget : public ZincWidget::ZincWidget ~MappingViewZincWidget() override; + static constexpr double nodeSizeOrigin = 20.; + protected: void initializeGL() override; @@ -68,7 +70,7 @@ class MappingViewZincWidget : public ZincWidget::ZincWidget QString mMainFileName; QString mAuxFileName; - QPoint mouse_pos_click; + QPoint mMousePosClick; double mNodeSize; @@ -76,7 +78,7 @@ class MappingViewZincWidget : public ZincWidget::ZincWidget //size of the square drawn around the mouse for selections //TODO improve this, should depend on the number of pixel at screen - int size_selection = 2; + int mSizeSelection = 2; OpenCMISS::Zinc::Fieldmodule mFieldModule; OpenCMISS::Zinc::Context *mZincContext; @@ -86,6 +88,9 @@ class MappingViewZincWidget : public ZincWidget::ZincWidget void click(QMouseEvent *pEvent); +public slots: + void setNodeSizes(int pSize); + signals: void nodeSelection(int pId);