Salome HOME
Merge from BR_PARAVIS_LOT1_2 24/02/2010
[modules/paravis.git] / src / PVGUI / PVGUI_ViewWindow.cxx
1 // Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
2 // 
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either 
6 // version 2.1 of the License.
7 // 
8 // This library is distributed in the hope that it will be useful 
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of 
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public  
14 // License along with this library; if not, write to the Free Software 
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19 // File   : PVGUI_ViewWindow.cxx
20 // Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
21 //
22
23 #include "PVGUI_ViewWindow.h"
24
25 #include <SUIT_ViewManager.h>
26 #include <SUIT_ResourceMgr.h>
27 #include <SUIT_Session.h>
28 #include <SUIT_Desktop.h>
29
30 #include <pqViewManager.h>
31 #include <pqApplicationCore.h>
32
33 /*!
34   \class PVGUI_ViewWindow
35   \brief PVGUI view window.
36 */
37
38 /*!
39   \brief Constructor.
40   \param theDesktop parent desktop window
41   \param theModel plt2d view model
42 */
43 PVGUI_ViewWindow::PVGUI_ViewWindow( SUIT_Desktop* theDesktop, PVGUI_Viewer* theModel )
44   : SUIT_ViewWindow( theDesktop ), myPVMgr( 0 )
45 {
46   myModel = theModel;
47   myPVMgr = qobject_cast<pqViewManager*>(pqApplicationCore::instance()->manager("MULTIVIEW_MANAGER"));
48   if (myPVMgr) {
49     myPVMgr->setParent( this );
50     // This is mandatory, see setParent() method in Qt 4 documentation
51     myPVMgr->show();
52     setCentralWidget( myPVMgr );
53   } else
54     qDebug("No multiViewManager defined");
55 }
56
57 /*!
58   \brief Destructor.
59   As pqViewManager persists through the whole session,
60   the destructor first removes it from the children of this PVGUI_ViewWindow
61   to prevent its unexpected deletion.
62 */
63 PVGUI_ViewWindow::~PVGUI_ViewWindow()
64 {
65   if ( myPVMgr ) {
66     myPVMgr->setParent( 0 );
67     myPVMgr->hide();
68     myPVMgr = 0;
69     setCentralWidget( 0 );
70   }
71 }
72
73 /*!
74   \brief Get the visual parameters of the view window.
75   \return visual parameters of this view window formatted to the string
76 */
77 QString PVGUI_ViewWindow::getVisualParameters()
78 {
79   return SUIT_ViewWindow::getVisualParameters();
80 }
81
82 /*!
83   \brief Restore visual parameters of the view window from the formated string
84   \param parameters view window visual parameters
85 */
86 void PVGUI_ViewWindow::setVisualParameters( const QString& parameters )
87 {
88   SUIT_ViewWindow::setVisualParameters( parameters );
89 }
90
91 /*!
92   \brief Sets the ParaView multi-view manager for this view window
93 */
94 // void PVGUI_ViewWindow::setMultiViewManager()
95 // {
96 //   myPVMgr = qobject_cast<pqViewManager*>(pqApplicationCore::instance()->manager("MULTIVIEW_MANAGER"));
97 //   if (myPVMgr) {
98 //     myPVMgr->setParent( this );
99 //     // This is mandatory, see setParent() method in Qt 4 documentation
100 //     myPVMgr->show();
101 //     setCentralWidget( myPVMgr );
102 //   } else
103 //     qDebug("No multiViewManager defined");
104 // }
105
106 /*!
107   \brief Returns the ParaView multi-view manager previously set with setMultiViewManager()
108 */
109 pqViewManager* PVGUI_ViewWindow::getMultiViewManager() const
110 {
111   return myPVMgr;
112 }