Salome HOME
Update version to 3.2.0a1
[modules/visu.git] / src / VISUGUI / VisuGUI_NonIsometricDlg.cxx
index df3f1c27fab5684bf458eef287e8ee1a23372bf9..323c384f777d1618af16afabe44db95b951bb404 100644 (file)
 //
 //
 //  File   : SALOMEGUI_NonIsometricDlg.cxx
-//  Author : Vasily Rusyaev 
+//  Author : Vasily Rusyaev
 //  Module : VISU
-//  $Header$ 
+//  $Header$
 
-using namespace std;
 #include "VisuGUI_NonIsometricDlg.h"
 
+#include "VisuGUI_Tools.h"
+
+#include "VISU_Actor.h"
+#include "VISU_PipeLine.hxx"
+
+#include "SalomeApp_Application.h"
+#include "LightApp_SelectionMgr.h"
+
+#include "SVTK_ViewWindow.h"
+#include "SVTK_RenderWindowInteractor.h"
+
+#include "SUIT_Desktop.h"
+#include "SUIT_Session.h"
+#include "SUIT_ViewWindow.h"
+
+#include "SALOME_ListIteratorOfListIO.hxx"
+#include "SALOME_ListIO.hxx"
+
+#include "QtxDblSpinBox.h"
+
+#include "utilities.h"
+
 #include <qgroupbox.h>
 #include <qlabel.h>
 #include <qpushbutton.h>
 #include <qlayout.h>
-#include "QAD_SpinBoxDbl.h"
-#include "QAD_Application.h"
-#include "QAD_Desktop.h"
-#include "QAD_StudyFrame.h"
-#include "QAD_RightFrame.h"
-#include "VTKViewer_ViewFrame.h"
-#include "VISU_Actor.h"
-#include "utilities.h"
 
-#include "SALOME_Selection.h"
-#include "SALOME_ListIteratorOfListIO.hxx"
-#include "SALOME_ListIO.hxx"
+using namespace std;
 
 /*!
   Constructor
 */
-VisuGUI_NonIsometricDlg::VisuGUI_NonIsometricDlg( QWidget* parent, const char* name, bool modal, WFlags fl )
-    : QDialog( parent, name, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu )
+VisuGUI_NonIsometricDlg::VisuGUI_NonIsometricDlg (QWidget* parent, const char* name, bool modal, WFlags fl)
+    : QDialog(parent, name, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
 {
+  if (!name)
+    setName("NonIsometricDlg");
+  setCaption(tr("DLG_TITLE"));
+  setSizeGripEnabled(TRUE);
 
-  QAD_StudyFrame* sf = QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame();
-  VTKViewer_ViewFrame* aViewFrame =  dynamic_cast<VTKViewer_ViewFrame*>(sf->getRightFrame()->getViewFrame());
+  SVTK_ViewWindow* aViewWnd = VISU::GetViewWindow();
 
-  if ( !name )
-    setName( "NonIsometricDlg" );
-  setCaption( tr( "Scaling" ) );
-  setSizeGripEnabled( TRUE );
-  
   // Create layout for this dialog
-  QGridLayout* layoutDlg = new QGridLayout( this );
+  QGridLayout* layoutDlg = new QGridLayout (this);
   layoutDlg->setSpacing(6);
   layoutDlg->setMargin(11);
-  
+
   // Create croup box with grid layout
-  QGroupBox* GroupBox = new QGroupBox( this, "GroupBox" );
-  QGridLayout* glGroupBox = new QGridLayout( GroupBox );
+  QGroupBox* GroupBox = new QGroupBox(this, "GroupBox");
+  QGridLayout* glGroupBox = new QGridLayout(GroupBox);
   glGroupBox->setMargin(11);
   glGroupBox->setSpacing(6);
-  
+
   // "X" scaling
-  QLabel* TextLabelX = new QLabel( "X: ", GroupBox, "TextLabelX" );
-  m_sbXcoeff = new QAD_SpinBoxDbl( GroupBox, -DBL_MAX, DBL_MAX, 0.1 );
-//m_sbXcoeff->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed));
-  m_sbXcoeff->setMinimumWidth( 80 );
-  m_sbXcoeff->setValue( 1.0 );
-  
+  QLabel* TextLabelX = new QLabel (tr("LBL_X"), GroupBox, "TextLabelX");
+  m_sbXcoeff = new QtxDblSpinBox(-DBL_MAX, DBL_MAX, 0.1, GroupBox);
+  m_sbXcoeff->setMinimumWidth(80);
+  m_sbXcoeff->setValue(1.0);
+
   // "Y" scaling
-  QLabel* TextLabelY = new QLabel( "Y", GroupBox, "TextLabelY" );
-  m_sbYcoeff = new QAD_SpinBoxDbl( GroupBox, -DBL_MAX, DBL_MAX, 0.1 );
-//m_sbYcoeff->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed));
-  m_sbYcoeff->setMinimumWidth( 80 );
-  m_sbYcoeff->setValue( 1.0 );
-  
+  QLabel* TextLabelY = new QLabel (tr("LBL_Y"), GroupBox, "TextLabelY");
+  m_sbYcoeff = new QtxDblSpinBox(-DBL_MAX, DBL_MAX, 0.1, GroupBox);
+  m_sbYcoeff->setMinimumWidth(80);
+  m_sbYcoeff->setValue(1.0);
+
   // "Z" scaling
-  QLabel* TextLabelZ = new QLabel( "Z", GroupBox, "TextLabelZ" );
-  m_sbZcoeff = new QAD_SpinBoxDbl( GroupBox, -DBL_MAX, DBL_MAX, 0.1 );
-//m_sbZcoeff->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed));
-  m_sbZcoeff->setMinimumWidth( 80 );
-  m_sbZcoeff->setValue( 1.0 );
+  QLabel* TextLabelZ = new QLabel (tr("LBL_Z"), GroupBox, "TextLabelZ");
+  m_sbZcoeff = new QtxDblSpinBox(-DBL_MAX, DBL_MAX, 0.1, GroupBox);
+  m_sbZcoeff->setMinimumWidth(80);
+  m_sbZcoeff->setValue(1.0);
 
   // Get initial values from the current VTK viewer
-  if ( aViewFrame ) {
+  if (aViewWnd) {
     double aScaleFactor[3];
-    aViewFrame->GetScale(aScaleFactor);
+    aViewWnd->GetScale(aScaleFactor);
     m_sbXcoeff -> setValue(aScaleFactor[0]);
     m_sbYcoeff -> setValue(aScaleFactor[1]);
     m_sbZcoeff -> setValue(aScaleFactor[2]);
   }
 
   // Create <Reset> button
-  m_bReset = new QPushButton( tr( "&Reset" ), GroupBox, "m_bReset" );
+  m_bReset = new QPushButton(tr("&Reset"), GroupBox, "m_bReset");
 
   // Layout widgets in the group box
-  glGroupBox->addWidget( TextLabelX, 0, 0 );
-  glGroupBox->addWidget( m_sbXcoeff, 0, 1 );
-  glGroupBox->addWidget( TextLabelY, 0, 2 );
-  glGroupBox->addWidget( m_sbYcoeff, 0, 3 );
-  glGroupBox->addWidget( TextLabelZ, 0, 4 );
-  glGroupBox->addWidget( m_sbZcoeff, 0, 5 );
-  glGroupBox->addWidget( m_bReset,   0, 6 );
-  
+  glGroupBox->addWidget(TextLabelX, 0, 0);
+  glGroupBox->addWidget(m_sbXcoeff, 0, 1);
+  glGroupBox->addWidget(TextLabelY, 0, 2);
+  glGroupBox->addWidget(m_sbYcoeff, 0, 3);
+  glGroupBox->addWidget(TextLabelZ, 0, 4);
+  glGroupBox->addWidget(m_sbZcoeff, 0, 5);
+  glGroupBox->addWidget(m_bReset,   0, 6);
+
   // OK, CANCEL, Apply button
-  QGroupBox* aWgt = new QGroupBox( this );
-  QHBoxLayout* aHBoxLayout = new QHBoxLayout( aWgt );
+  QGroupBox* aWgt = new QGroupBox(this);
+  QHBoxLayout* aHBoxLayout = new QHBoxLayout(aWgt);
   aHBoxLayout->setMargin(11);
   aHBoxLayout->setSpacing(6);
   // Create <OK> button
-  QPushButton* m_bOk = new QPushButton( tr( "O&K" ), aWgt, "m_bOk" );
-  m_bOk->setDefault( TRUE );
-  m_bOk->setAutoDefault( TRUE );
+  QPushButton* m_bOk = new QPushButton(tr("O&K"), aWgt, "m_bOk");
+  m_bOk->setDefault(TRUE);
+  m_bOk->setAutoDefault(TRUE);
   // Create <Apply> button
-  QPushButton* m_bApply = new QPushButton( tr( "&Apply" ), aWgt, "m_bApply" );
-  m_bApply->setAutoDefault( TRUE );
+  QPushButton* m_bApply = new QPushButton(tr("&Apply"), aWgt, "m_bApply");
+  m_bApply->setAutoDefault(TRUE);
   // Create <Cancel> button
-  QPushButton* m_bCancel = new QPushButton( tr( "&Cancel" ), aWgt, "m_bCancel" );
-  m_bCancel->setAutoDefault( TRUE );
+  QPushButton* m_bCancel = new QPushButton(tr("&Cancel"), aWgt, "m_bCancel");
+  m_bCancel->setAutoDefault(TRUE);
 
   // Layout buttons
-  aHBoxLayout->addWidget( m_bOk );
-  aHBoxLayout->addWidget( m_bApply );
+  aHBoxLayout->addWidget(m_bOk);
+  aHBoxLayout->addWidget(m_bApply);
   aHBoxLayout->addStretch();
-  aHBoxLayout->addWidget( m_bCancel );
+  aHBoxLayout->addWidget(m_bCancel);
 
   // Layout top level widgets
   layoutDlg->addWidget(GroupBox,0,0);
   layoutDlg->addWidget(aWgt,1,0);
 
   // signals and slots connections
-  connect( m_bCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
-  connect( m_bOk,     SIGNAL( clicked() ), this, SLOT( onClickOk( ) ) );
-  connect( m_bApply,  SIGNAL( clicked() ), this, SLOT( onClickApply( ) ) );
-  connect( m_bReset,  SIGNAL( clicked() ), this, SLOT( onClickReset( ) ) );
-  
-  this->resize( 100, this->sizeHint().height() );
+  connect(m_bCancel, SIGNAL(clicked()), this, SLOT(reject()));
+  connect(m_bOk,     SIGNAL(clicked()), this, SLOT(onClickOk()));
+  connect(m_bApply,  SIGNAL(clicked()), this, SLOT(onClickApply()));
+  connect(m_bReset,  SIGNAL(clicked()), this, SLOT(onClickReset()));
+
+  this->resize(100, this->sizeHint().height());
 }
 
-/*  
+/*
  *  Destroys the object and frees any allocated resources
  */
 VisuGUI_NonIsometricDlg::~VisuGUI_NonIsometricDlg()
 {
-    // no need to delete child widgets, Qt does it all for us
+  // no need to delete child widgets, Qt does it all for us
 }
 
 void VisuGUI_NonIsometricDlg::onClickOk()
@@ -148,27 +154,33 @@ void VisuGUI_NonIsometricDlg::onClickOk()
   accept();
 }
 
-void VisuGUI_NonIsometricDlg::onClickApply(){
-  QAD_StudyFrame* sf = QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame();
-  SALOME_Selection* Sel = SALOME_Selection::Selection( sf->getStudy()->getSelection() );
+void VisuGUI_NonIsometricDlg::onClickApply()
+{
+  SalomeApp_Application* anApp = dynamic_cast<SalomeApp_Application*>
+    (SUIT_Session::session()->activeApplication());
+  LightApp_SelectionMgr* mgr = anApp->selectionMgr();
 
+  SVTK_ViewWindow* vf = VISU::GetViewWindow();
+  if (!vf)
+    return;
 
-  if( VTKViewer_ViewFrame* vf =  dynamic_cast<VTKViewer_ViewFrame*>(sf->getRightFrame()->getViewFrame())){
-    double aScale[3] = {m_sbXcoeff->value(), m_sbYcoeff->value(), m_sbZcoeff->value()};
-    vf->SetScale(aScale);
-  }
+  double aScale[3] = {m_sbXcoeff->value(), m_sbYcoeff->value(), m_sbZcoeff->value()};
+  vf->SetScale(aScale);
 
-  SALOME_ListIteratorOfListIO Itinit( Sel->StoredIObjects() );
-  for (; Itinit.More(); Itinit.Next()) {
-    sf->getStudy()->highlight(Itinit.Value(), true);
-  }
+  SALOME_ListIO selected;
+  mgr->selectedObjects(selected);
+  SALOME_ListIteratorOfListIO Itinit(selected);
+
+  if (vf)
+    for (; Itinit.More(); Itinit.Next()) {
+      vf->highlight(Itinit.Value(), true);
+    }
 }
 
 void VisuGUI_NonIsometricDlg::onClickReset()
 {
   m_bReset->setFocus();
-  m_sbXcoeff->setValue( 1.0 );
-  m_sbYcoeff->setValue( 1.0 );
-  m_sbZcoeff->setValue( 1.0 );
+  m_sbXcoeff->setValue(1.0);
+  m_sbYcoeff->setValue(1.0);
+  m_sbZcoeff->setValue(1.0);
 }
-