From 3bd2473eac144f90e4dc34f17ad7847e9006a168 Mon Sep 17 00:00:00 2001 From: mpa Date: Tue, 31 Jan 2017 12:48:59 +0300 Subject: [PATCH] Return deleted code. --- src/genericgui/GenericGui.cxx | 1 + src/runtime/StudyNodes.cxx | 2 +- src/salomegui/Yacsgui.cxx | 10 ++--- src/salomegui/Yacsgui.hxx | 2 +- src/salomeloader/samples/testvisu20.xml | 2 +- src/salomewrap/SalomeWrap_Module.cxx | 7 ++++ src/salomewrap/SalomeWrap_Module.hxx | 3 ++ src/salomewrap/SuitWrapper.cxx | 54 +++++++++++++++++++++++++ src/salomewrap/SuitWrapper.hxx | 2 + 9 files changed, 75 insertions(+), 8 deletions(-) diff --git a/src/genericgui/GenericGui.cxx b/src/genericgui/GenericGui.cxx index bca1cd3ef..cd53c2774 100644 --- a/src/genericgui/GenericGui.cxx +++ b/src/genericgui/GenericGui.cxx @@ -1089,6 +1089,7 @@ void GenericGui::createContext(YACS::ENGINE::Proc* proc, GraphicsView* gView = new GraphicsView(viewWindow); gView->setScene(scene); gView->setViewportUpdateMode(QGraphicsView::FullViewportUpdate); + _wrapper->AssociateViewToWindow(gView, viewWindow); context->setScene(scene); context->setView(gView); context->setWindow(viewWindow); diff --git a/src/runtime/StudyNodes.cxx b/src/runtime/StudyNodes.cxx index 6067003b6..77bc09a05 100644 --- a/src/runtime/StudyNodes.cxx +++ b/src/runtime/StudyNodes.cxx @@ -252,7 +252,7 @@ void StudyOutNode::execute() // save in file if ref is given if(_ref != "") { - myStudy->SaveAs(_ref.c_str(), false); + myStudy->SaveAs(_ref.c_str(), false, false); } DEBTRACE("+++++++ end StudyOutNode::execute +++++++++++" ); } diff --git a/src/salomegui/Yacsgui.cxx b/src/salomegui/Yacsgui.cxx index 904d70909..c457d5da8 100644 --- a/src/salomegui/Yacsgui.cxx +++ b/src/salomegui/Yacsgui.cxx @@ -65,7 +65,7 @@ Yacsgui::Yacsgui() : _wrapper = 0; _genericGui = 0; _selectFromTree = false; - _studyContextMap = 0; + _studyContext = 0; } Yacsgui::~Yacsgui() @@ -109,7 +109,7 @@ void Yacsgui::initialize( CAM_Application* app ) _genericGui->createActions(); _genericGui->createMenus(); _genericGui->createTools(); - _studyContextMap = QtGuiContext::getQtCurrent(); + _studyContext = QtGuiContext::getQtCurrent(); // VSR 23/10/2014: note that this is not a good way to create SComponent from this point // as initialize() method can be potentially called when there's no yet open study; @@ -205,8 +205,8 @@ bool Yacsgui::deactivateModule( SUIT_Study* theStudy ) setToolShown( false ); _genericGui->showDockWidgets(false); QtGuiContext *context = QtGuiContext::getQtCurrent(); - _studyContextMap = context; - DEBTRACE("_studyContextMap " << theStudy << " " << context); + _studyContext = context; + DEBTRACE("_studyContext " << theStudy << " " << context); return SalomeApp_Module::deactivateModule( theStudy ); } @@ -278,7 +278,7 @@ void Yacsgui::onWindowActivated( SUIT_ViewWindow* svw) YASSERT(_genericGui); _genericGui->switchContext(viewWindow); - _studyContextMap = QtGuiContext::getQtCurrent(); + _studyContext = QtGuiContext::getQtCurrent(); if (_selectFromTree) return; SalomeWrap_DataModel *model = dynamic_cast(dataModel()); diff --git a/src/salomegui/Yacsgui.hxx b/src/salomegui/Yacsgui.hxx index b3e22cf0e..27dc99d36 100644 --- a/src/salomegui/Yacsgui.hxx +++ b/src/salomegui/Yacsgui.hxx @@ -80,7 +80,7 @@ protected: bool _selectFromTree; Yacsgui_Resource* _myresource; SUIT_ViewWindow* _currentSVW; - YACS::HMI::QtGuiContext* _studyContextMap; + YACS::HMI::QtGuiContext* _studyContext; }; #endif diff --git a/src/salomeloader/samples/testvisu20.xml b/src/salomeloader/samples/testvisu20.xml index 9532414f5..f8f658566 100644 --- a/src/salomeloader/samples/testvisu20.xml +++ b/src/salomeloader/samples/testvisu20.xml @@ -112,7 +112,7 @@ - + diff --git a/src/salomewrap/SalomeWrap_Module.cxx b/src/salomewrap/SalomeWrap_Module.cxx index 955e417c2..f98a59c79 100644 --- a/src/salomewrap/SalomeWrap_Module.cxx +++ b/src/salomewrap/SalomeWrap_Module.cxx @@ -71,6 +71,13 @@ QxScene_ViewWindow* SalomeWrap_Module::getNewWindow(QGraphicsScene *scene) return aView; } +void SalomeWrap_Module::AssociateViewToWindow(QGraphicsView* gView, + QxScene_ViewWindow* viewWindow) +{ + viewWindow->setSceneView(gView); + viewWindow->setCentralWidget(gView); +} + QDockWidget* SalomeWrap_Module::objectBrowser() { if ( !getApp()->objectBrowser() ) return 0; diff --git a/src/salomewrap/SalomeWrap_Module.hxx b/src/salomewrap/SalomeWrap_Module.hxx index 302de575e..9ad35365a 100644 --- a/src/salomewrap/SalomeWrap_Module.hxx +++ b/src/salomewrap/SalomeWrap_Module.hxx @@ -45,6 +45,9 @@ public: QxScene_ViewWindow* getNewWindow(QGraphicsScene *scene); + void AssociateViewToWindow(QGraphicsView* gView, + QxScene_ViewWindow* viewWindow); + QDockWidget* objectBrowser(); QAction* wCreateAction(const int id, diff --git a/src/salomewrap/SuitWrapper.cxx b/src/salomewrap/SuitWrapper.cxx index 7d0177130..453326a12 100644 --- a/src/salomewrap/SuitWrapper.cxx +++ b/src/salomewrap/SuitWrapper.cxx @@ -60,6 +60,60 @@ QWidget* SuitWrapper::getNewWindow(QGraphicsScene *scene) return module->getNewWindow(scene); } +/*! + * return studyId used in context delete when study is closed. + */ +void SuitWrapper::AssociateViewToWindow(QGraphicsView* gView, QWidget* viewWindow) +{ + SalomeWrap_Module* module = dynamic_cast(_wrapped); + QxScene_ViewWindow *svw = dynamic_cast(viewWindow); + YASSERT(svw); + module->AssociateViewToWindow(gView, svw); + WrapGraphicsView* wgv = dynamic_cast(gView); + YASSERT(wgv); + QObject::disconnect(svw->toolMgr()->action(QxScene_ViewWindow::FitAllId), + SIGNAL(triggered(bool)), + svw, SLOT(onViewFitAll())); + QObject::connect(svw->toolMgr()->action(QxScene_ViewWindow::FitAllId), + SIGNAL(triggered(bool)), + wgv, SLOT(onViewFitAll())); + + QObject::disconnect(svw->toolMgr()->action(QxScene_ViewWindow::FitRectId), + SIGNAL(triggered(bool)), + svw, SLOT(onViewFitArea())); + QObject::connect(svw->toolMgr()->action(QxScene_ViewWindow::FitRectId), + SIGNAL(triggered(bool)), + wgv, SLOT(onViewFitArea())); + + QObject::disconnect(svw->toolMgr()->action(QxScene_ViewWindow::ZoomId), + SIGNAL(triggered(bool)), + svw, SLOT(onViewZoom())); + QObject::connect(svw->toolMgr()->action(QxScene_ViewWindow::ZoomId), + SIGNAL(triggered(bool)), + wgv, SLOT(onViewZoom())); + + QObject::disconnect(svw->toolMgr()->action(QxScene_ViewWindow::PanId), + SIGNAL(triggered(bool)), + svw, SLOT(onViewPan())); + QObject::connect(svw->toolMgr()->action(QxScene_ViewWindow::PanId), + SIGNAL(triggered(bool)), + wgv, SLOT(onViewPan())); + + QObject::disconnect(svw->toolMgr()->action(QxScene_ViewWindow::GlobalPanId), + SIGNAL(triggered(bool)), + svw, SLOT(onViewGlobalPan())); + QObject::connect(svw->toolMgr()->action(QxScene_ViewWindow::GlobalPanId), + SIGNAL(triggered(bool)), + wgv, SLOT(onViewGlobalPan())); + + QObject::disconnect(svw->toolMgr()->action(QxScene_ViewWindow::ResetId), + SIGNAL(triggered(bool)), + svw, SLOT(onViewReset())); + QObject::connect(svw->toolMgr()->action(QxScene_ViewWindow::ResetId), + SIGNAL(triggered(bool)), + wgv, SLOT(onViewReset())); +} + QDockWidget* SuitWrapper::objectBrowser() { SalomeWrap_Module* module = dynamic_cast(_wrapped); diff --git a/src/salomewrap/SuitWrapper.hxx b/src/salomewrap/SuitWrapper.hxx index 9ce3234f5..5135f2b85 100644 --- a/src/salomewrap/SuitWrapper.hxx +++ b/src/salomewrap/SuitWrapper.hxx @@ -47,6 +47,8 @@ namespace YACS virtual ~SuitWrapper(); QWidget* getNewWindow(QGraphicsScene *scene); + void AssociateViewToWindow(QGraphicsView* gView, QWidget* viewWindow); + QDockWidget* objectBrowser(); QAction* createAction(const int id, -- 2.39.2