Salome HOME
Join modifications from branch OCC_development_for_3_2_0a2
[modules/visu.git] / src / VISUGUI / VisuGUI_ClippingDlg.cxx
index e8c5c0a7138bb5d4ebb220fb3cf29eb08caf0a0b..d0ff68478199ded89328979237308b6dbe1bb10b 100644 (file)
@@ -1,15 +1,35 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either 
+// version 2.1 of the License.
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 
 #include "VisuGUI_ClippingDlg.h"
 
 #include "VisuGUI.h"
 #include "VisuGUI_Tools.h"
+#include "VisuGUI_ViewTools.h"
 
 #include "VISU_Prs3d_i.hh"
 #include "VISU_Result_i.hh"
 
 #include "VISU_PipeLine.hxx"
 
-#include "SalomeApp_SelectionMgr.h"
+#include "LightApp_SelectionMgr.h"
 
 #include "SVTK_ViewWindow.h"
 
@@ -44,6 +64,7 @@
 #include <vtkPlaneSource.h>
 #include <vtkPolyData.h>
 #include <vtkUnstructuredGrid.h>
+#include <vtkProperty.h>
 
 // OCCT Includes
 #include <gp_Dir.hxx>
@@ -369,7 +390,7 @@ VisuGUI_ClippingDlg::~VisuGUI_ClippingDlg()
 {
   // no need to delete child widgets, Qt does it all for us
   std::for_each(myPlanes.begin(),myPlanes.end(),TSetVisiblity(false));
-  VISU::RenderViewWindow(VISU::GetViewWindow(myVisuGUI));
+  VISU::RenderViewWindow(VISU::GetActiveViewWindow<SVTK_ViewWindow>(myVisuGUI));
 }
 
 //=================================================================================
@@ -461,9 +482,13 @@ void VisuGUI_ClippingDlg::ClickOnApply()
   if (!myPrs3d)
     return;
 
-  if (SVTK_ViewWindow* aViewWindow = VISU::GetViewWindow(myVisuGUI)) {
+  if (SVTK_ViewWindow* aViewWindow = VISU::GetActiveViewWindow<SVTK_ViewWindow>(myVisuGUI)) {
     SUIT_OverrideCursor wc;
 
+    QWidget *aCurrWid = this->focusWidget();
+    aCurrWid->clearFocus();
+    aCurrWid->setFocus();
+
     // Save clipping planes, currently applied to the presentation
     // to enable restoring this state in case of failure.
     // Refer to bugs IPAL8849, IPAL8850 for more information.
@@ -545,7 +570,7 @@ void VisuGUI_ClippingDlg::ClickOnCancel()
 //=================================================================================
 void VisuGUI_ClippingDlg::onSelectionChanged()
 {
-  if (SVTK_ViewWindow* aViewWindow = VISU::GetViewWindow(myVisuGUI)) {
+  if (SVTK_ViewWindow* aViewWindow = VISU::GetActiveViewWindow<SVTK_ViewWindow>(myVisuGUI)) {
     Handle(SALOME_InteractiveObject) anIO;
     CORBA::Object_var anObject = VISU::GetSelectedObj(myVisuGUI, &anIO);
     myIO = anIO;
@@ -633,7 +658,7 @@ void VisuGUI_ClippingDlg::ClickOnNew()
   if (!myPrs3d)
     return;
 
-  if (SVTK_ViewWindow* aViewWindow = VISU::GetViewWindow(myVisuGUI)) {
+  if (SVTK_ViewWindow* aViewWindow = VISU::GetActiveViewWindow<SVTK_ViewWindow>(myVisuGUI)) {
     OrientedPlane* aPlane = OrientedPlane::New(aViewWindow);
     VISU::TVTKPlane aTVTKPlane(aPlane);
     myPlanes.push_back(aTVTKPlane);
@@ -669,7 +694,7 @@ void VisuGUI_ClippingDlg::ClickOnDelete()
     ClickOnApply();
 
   Sinchronize();
-  if (SVTK_ViewWindow* aViewWindow = VISU::GetViewWindow(myVisuGUI))
+  if (SVTK_ViewWindow* aViewWindow = VISU::GetActiveViewWindow<SVTK_ViewWindow>(myVisuGUI))
     VISU::RenderViewWindow(aViewWindow);
 }
 
@@ -866,7 +891,7 @@ void VisuGUI_ClippingDlg::SetCurrentPlaneParam()
   if (AutoApplyCheckBox->isChecked())
     ClickOnApply();
 
-  if (SVTK_ViewWindow* vw = VISU::GetViewWindow(myVisuGUI))
+  if (SVTK_ViewWindow* vw = VISU::GetActiveViewWindow<SVTK_ViewWindow>(myVisuGUI))
     VISU::RenderViewWindow(vw);
 }
 
@@ -1074,6 +1099,6 @@ void VisuGUI_ClippingDlg::onIJKAxisChanged(int axisId)
 void VisuGUI_ClippingDlg::OnPreviewToggle (bool theIsToggled)
 {
   std::for_each(myPlanes.begin(),myPlanes.end(),TSetVisiblity(theIsToggled));
-  if (SVTK_ViewWindow* vw = VISU::GetViewWindow(myVisuGUI))
+  if (SVTK_ViewWindow* vw = VISU::GetActiveViewWindow<SVTK_ViewWindow>(myVisuGUI))
     VISU::RenderViewWindow(vw);
 }