X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPVViewer%2FPVViewer_ViewWindow.cxx;h=a724de9b834b30ed894b4cbaf04cba054a404f3d;hb=342901087e2bc8524dd9e6220c7f50c63e379c25;hp=bdb1edfa08ad740e511704621ab6f1b53de0b148;hpb=73360495025aaf52997b98eaeb85e6cabe1b300f;p=modules%2Fgui.git diff --git a/src/PVViewer/PVViewer_ViewWindow.cxx b/src/PVViewer/PVViewer_ViewWindow.cxx index bdb1edfa0..a724de9b8 100644 --- a/src/PVViewer/PVViewer_ViewWindow.cxx +++ b/src/PVViewer/PVViewer_ViewWindow.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2010-2014 CEA/DEN, EDF R&D +// Copyright (C) 2014-2022 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -16,22 +16,23 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// File : PVViewer_ViewWindow.cxx -// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) -// +// Author : Adrien Bruneton (CEA) #include "PVViewer_ViewWindow.h" -#include "PVViewer_ViewManager.h" +#include "PVViewer_Core.h" #include "PVViewer_ViewModel.h" #include "PVViewer_GUIElements.h" +#include "PVViewer_ViewManager.h" -#include -#include -#include -#include +#include "SUIT_ViewManager.h" +#include "SUIT_ResourceMgr.h" +#include "SUIT_Session.h" +#include "SUIT_Desktop.h" +#include "SUIT_Application.h" #include #include +#include "pqActiveObjects.h" /*! \class PVViewer_ViewWindow @@ -46,19 +47,26 @@ PVViewer_ViewWindow::PVViewer_ViewWindow( SUIT_Desktop* theDesktop, PVViewer_Viewer* theModel ) : SUIT_ViewWindow( theDesktop ), myPVMgr( 0 ) { + myDesktop = theDesktop; myModel = theModel; setViewManager(myModel->getViewManager()); + // This may improve synchronization between PV3DViewer and PVViewer + // but this make the PVViewer not active when ParaVIS is launched, + // which results in a new RenderView being created when a dataset is displayed. + // So we comment it for now. + //pqActiveObjects::instance().setActiveView(nullptr); myPVMgr = qobject_cast(pqApplicationCore::instance()->manager("MULTIVIEW_WIDGET")); if (myPVMgr) { + SUIT_Application* app = SUIT_Session::session()->activeApplication(); + if ( app ) + app->addPostRoutine(&PVViewer_ViewWindow::removePVMgr); myPVMgr->setParent( this ); // This is mandatory, see setParent() method in Qt 4 documentation myPVMgr->show(); setCentralWidget( myPVMgr ); - - // Finish ParaView set up: behaviors, connection and configurations. - PVViewer_ViewManager::ParaviewInitBehaviors(true, theDesktop); - PVViewer_ViewManager::ConnectToExternalPVServer(theDesktop); - PVViewer_ViewManager::ParaviewLoadConfigurations(); + // Hide toolbars + PVViewer_GUIElements * pvge = PVViewer_GUIElements::GetInstance(myDesktop); + pvge->setToolBarVisible(false); } else qDebug("No multiViewManager defined"); } @@ -72,6 +80,9 @@ PVViewer_ViewWindow::PVViewer_ViewWindow( SUIT_Desktop* theDesktop, PVViewer_Vie PVViewer_ViewWindow::~PVViewer_ViewWindow() { if ( myPVMgr ) { + // Hide toolbars + PVViewer_GUIElements * pvge = PVViewer_GUIElements::GetInstance(myDesktop); + pvge->setToolBarEnabled(false); myPVMgr->setParent( 0 ); myPVMgr->hide(); myPVMgr = 0; @@ -79,6 +90,12 @@ PVViewer_ViewWindow::~PVViewer_ViewWindow() } } +void PVViewer_ViewWindow::removePVMgr() +{ + pqTabbedMultiViewWidget* aPVMgr = qobject_cast(pqApplicationCore::instance()->manager("MULTIVIEW_WIDGET")); + delete aPVMgr; +} + /*! \brief Get the visual parameters of the view window. \return visual parameters of this view window formatted to the string @@ -97,7 +114,6 @@ void PVViewer_ViewWindow::setVisualParameters( const QString& parameters ) SUIT_ViewWindow::setVisualParameters( parameters ); } - /*! \brief Returns the ParaView multi-view manager previously set with setMultiViewManager() */ @@ -105,8 +121,3 @@ pqTabbedMultiViewWidget* PVViewer_ViewWindow::getMultiViewManager() const { return myPVMgr; } - -void PVViewer_ViewWindow::onEmulateApply() -{ - emit this->applyRequest(); -}