]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Merging from the BR_V5_DEV branch.
authornds <nds@opencascade.com>
Mon, 6 Oct 2008 10:25:26 +0000 (10:25 +0000)
committernds <nds@opencascade.com>
Mon, 6 Oct 2008 10:25:26 +0000 (10:25 +0000)
14 files changed:
src/SVTK/SALOME_Actor.cxx
src/SVTK/SALOME_Actor.h
src/SVTK/SVTK_CubeAxesDlg.cxx
src/SVTK/SVTK_CubeAxesDlg.h
src/SVTK/SVTK_GenericRenderWindowInteractor.cxx
src/SVTK/SVTK_GenericRenderWindowInteractor.h
src/SVTK/SVTK_MainWindow.cxx
src/SVTK/SVTK_MainWindow.h
src/SVTK/SVTK_RectPicker.cxx
src/SVTK/SVTK_RenderWindowInteractor.cxx
src/SVTK/SVTK_RenderWindowInteractor.h
src/SVTK/SVTK_Selector.cxx
src/SVTK/SVTK_ViewModel.cxx
src/SVTK/SVTK_ViewModel.h

index 7f17c270832f1972b9e3632beac61b578c927768..678d9de95b4b15b2fd59ad88e34a42b4fa2f50f8 100644 (file)
@@ -509,7 +509,7 @@ SALOME_Actor
          if(myIsPreselected){
            const TColStd_IndexedMapOfInteger& aMapIndex = myPreHighlightActor->GetMapIndex();
            int anExtent = aMapIndex.Extent();
-           anIsChanged |= (anExtent == 0);
+           anIsChanged |= (anExtent == 0 || anExtent == 1);
            anIsChanged |= (anExtent == 2 && (anObjId != aMapIndex(1) || anEdgeId != aMapIndex(2)));
            if(anIsChanged){
              TColStd_IndexedMapOfInteger aMapIndex;
index db4e2e56e440aa897fbc31799729bf0bb7f7e1e1..ffa0bdca7f4895d280aedf0add55a180342c28f8 100644 (file)
@@ -54,8 +54,12 @@ class SVTK_Actor;
 class SVTK_RectPicker;
 class SVTK_InteractorStyle;
 
-extern int SALOME_POINT_SIZE;
-extern int SALOME_LINE_WIDTH;
+SVTK_EXPORT extern int SALOME_POINT_SIZE;
+SVTK_EXPORT extern int SALOME_LINE_WIDTH;
+
+#ifdef WIN32
+#pragma warning ( disable:4251 )
+#endif
 
 #ifdef WIN32
 #pragma warning ( disable:4251 )
index 1258e98ed2b5f8e37a9b07f082d5d8a81117953e..92c3f28476b6e707ba701f9f1a428b18801c4f2f 100644 (file)
 #include <vtkTextProperty.h>
 
 /*!
- * Class       : AxisWg
- * Description : Tab of dialog
- */
+  \class SVTK_CubeAxesDlg::AxisWidget
+  \brief Axis tab widget of the "Graduated axis" dialog box
+  \internal
+*/
+
+class SVTK_CubeAxesDlg::AxisWidget : public QFrame
+{
+public:
+  AxisWidget( QWidget* );
+  ~AxisWidget();
+
+  void             UseName( const bool );
+  void             SetName( const QString& );
+  void             SetNameFont( const QColor&, const int, const bool, const bool, const bool );
+  bool             ReadData( vtkAxisActor2D* );
+  bool             Apply( vtkAxisActor2D* );
+
+private:
+  // name
+  QGroupBox*       myNameGrp;
+  QLineEdit*       myAxisName;
+  SVTK_FontWidget* myNameFont;
+
+  // labels
+  QGroupBox*       myLabelsGrp;
+  QtxIntSpinBox*   myLabelNumber;
+  QtxIntSpinBox*   myLabelOffset;
+  SVTK_FontWidget* myLabelsFont;
+
+  // tick marks
+  QGroupBox*       myTicksGrp;
+  QtxIntSpinBox*   myTickLength;
+
+  friend class SVTK_CubeAxesDlg;
+};
 
 /*!
   Constructor
 */
-SVTK_AxisWidget::SVTK_AxisWidget (QWidget* theParent)
+SVTK_CubeAxesDlg::AxisWidget::AxisWidget (QWidget* theParent)
 :  QFrame(theParent)
 {
   QList< QLabel* > aLabels;
 
   // "Name" grp
 
-  myNameGrp = new QGroupBox(tr("AXIS_NAME"), this);
+  myNameGrp = new QGroupBox(SVTK_CubeAxesDlg::tr("AXIS_NAME"), this);
+  myNameGrp->setCheckable( true );
+
   QVBoxLayout* aVBox = new QVBoxLayout;
   
-  myIsNameVisible = new QCheckBox(tr("IS_VISIBLE"), myNameGrp);
-  aVBox->addWidget(myIsNameVisible);
-
   QHBoxLayout* aHBox = new QHBoxLayout;
   aHBox->setSpacing(5);
-  QLabel* aLabel = new QLabel(tr("NAME"));
+  QLabel* aLabel = new QLabel(SVTK_CubeAxesDlg::tr("NAME"));
   aHBox->addWidget(aLabel);
   myAxisName = new QLineEdit;
   aHBox->addWidget(myAxisName);
@@ -79,7 +110,7 @@ SVTK_AxisWidget::SVTK_AxisWidget (QWidget* theParent)
 
   aHBox = new QHBoxLayout;
   aHBox->setSpacing(5);
-  aLabel = new QLabel(tr("FONT"));
+  aLabel = new QLabel(SVTK_CubeAxesDlg::tr("FONT"));
   aHBox->addWidget(aLabel);
   myNameFont = new SVTK_FontWidget(myNameGrp);
   aHBox->addWidget(myNameFont);
@@ -90,35 +121,32 @@ SVTK_AxisWidget::SVTK_AxisWidget (QWidget* theParent)
 
   // "Labels" grp
 
-  myLabelsGrp = new QGroupBox(tr("LABELS"), this);
-  aVBox = new QVBoxLayout;
+  myLabelsGrp = new QGroupBox(SVTK_CubeAxesDlg::tr("LABELS"), this);
+  myLabelsGrp->setCheckable( true );
 
-  myIsLabelsVisible = new QCheckBox(tr("IS_VISIBLE"), myLabelsGrp);
-  aVBox->addWidget(myIsLabelsVisible);
+  aVBox = new QVBoxLayout;
 
   aHBox = new QHBoxLayout;
   aHBox->setSpacing(5);
-  aLabel = new QLabel(tr("NUMBER"));
+  aLabel = new QLabel(SVTK_CubeAxesDlg::tr("NUMBER"));
   aHBox->addWidget(aLabel);
   myLabelNumber = new QtxIntSpinBox(0,25,1,myLabelsGrp);
-  myLabelNumber->setObjectName("SpinBoxLabelNumber");
   aHBox->addWidget(myLabelNumber);
   aLabels.append(aLabel);
   aVBox->addLayout(aHBox);
 
   aHBox = new QHBoxLayout;
   aHBox->setSpacing(5);
-  aLabel = new QLabel(tr("OFFSET"));
+  aLabel = new QLabel(SVTK_CubeAxesDlg::tr("OFFSET"));
   aHBox->addWidget(aLabel);
   myLabelOffset = new QtxIntSpinBox(0,100,1,myLabelsGrp);
-  myLabelOffset->setObjectName("SpinBoxLabellOffset");
   aHBox->addWidget(myLabelOffset);
   aLabels.append(aLabel);
   aVBox->addLayout(aHBox);
 
   aHBox = new QHBoxLayout;
   aHBox->setSpacing(5);
-  aLabel = new QLabel(tr("FONT"));
+  aLabel = new QLabel(SVTK_CubeAxesDlg::tr("FONT"));
   aHBox->addWidget(aLabel);
   myLabelsFont = new SVTK_FontWidget(myLabelsGrp);
   aHBox->addWidget(myLabelsFont);
@@ -129,18 +157,16 @@ SVTK_AxisWidget::SVTK_AxisWidget (QWidget* theParent)
 
   // "Tick marks" grp
 
-  myTicksGrp = new QGroupBox(tr("TICK_MARKS"), this);
-  aVBox = new QVBoxLayout;
+  myTicksGrp = new QGroupBox(SVTK_CubeAxesDlg::tr("TICK_MARKS"), this);
+  myTicksGrp->setCheckable( true );
 
-  myIsTicksVisible = new QCheckBox(tr("IS_VISIBLE"), myTicksGrp);
-  aVBox->addWidget(myIsTicksVisible);
+  aVBox = new QVBoxLayout;
 
   aHBox = new QHBoxLayout;
   aHBox->setSpacing(5);
-  aLabel = new QLabel(tr("LENGTH"));
+  aLabel = new QLabel(SVTK_CubeAxesDlg::tr("LENGTH"));
   aHBox->addWidget(aLabel);
   myTickLength = new QtxIntSpinBox(0,100,1,myTicksGrp);
-  myTickLength->setObjectName("SpinBoxTickLength");
   aHBox->addWidget(myTickLength);
   aLabels.append(aLabel);
   aVBox->addLayout(aHBox);
@@ -150,17 +176,16 @@ SVTK_AxisWidget::SVTK_AxisWidget (QWidget* theParent)
   // Layout
 
   QVBoxLayout* aLay = new QVBoxLayout(this);
-  aLay->setMargin(0);
+  aLay->setMargin(5);
   aLay->setSpacing(5);
   aLay->addWidget(myNameGrp);
   aLay->addWidget(myLabelsGrp);
   aLay->addWidget(myTicksGrp);
 
   // init
-  myIsNameVisible->setChecked(true);
-  myIsLabelsVisible->setChecked(true);
-  myIsTicksVisible->setChecked(true);
-  updateControlState();
+  myNameGrp->setChecked( true );
+  myLabelsGrp->setChecked( true );
+  myTicksGrp->setChecked( true );
 
   // Adjust label widths
   QList< QLabel* >::iterator anIter;
@@ -169,74 +194,35 @@ SVTK_AxisWidget::SVTK_AxisWidget (QWidget* theParent)
     aMaxWidth = qMax(aMaxWidth, (*anIter)->sizeHint().width());
   for (anIter = aLabels.begin(); anIter != aLabels.end(); anIter++)
     (*anIter)->setFixedWidth(aMaxWidth);
-
-  // connect signals and slots
-  connect(myIsNameVisible, SIGNAL(stateChanged(int)), SLOT(onNameChecked()));
-  connect(myIsLabelsVisible, SIGNAL(stateChanged(int)), SLOT(onLabelsChecked()));
-  connect(myIsTicksVisible, SIGNAL(stateChanged(int)), SLOT(onTicksChecked()));
 }
 
 /*!
   Destructor
 */
-SVTK_AxisWidget::~SVTK_AxisWidget()
-{
-}
-
-void SVTK_AxisWidget::updateControlState()
+SVTK_CubeAxesDlg::AxisWidget::~AxisWidget()
 {
-  onNameChecked();
-  onLabelsChecked();
-  onTicksChecked();
 }
 
-void SVTK_AxisWidget::setEnabled(QGroupBox* theGrp, const bool theState)
+void SVTK_CubeAxesDlg::AxisWidget::UseName(const bool toUse)
 {
-  QObjectList aChildren(theGrp->children());
-  QObject* anObj;
-  for(int i = 0; i < aChildren.size(); i++)
-  {
-    anObj = aChildren.at(i);
-    if (anObj !=0 && anObj->inherits("QHBoxLayout"))
-      ((QHBoxLayout*)anObj)->setEnabled(theState);
-  }
-}
-
-void SVTK_AxisWidget::onLabelsChecked()
-{
-  setEnabled(myLabelsGrp, myIsLabelsVisible->isChecked());
-}
-
-void SVTK_AxisWidget::onTicksChecked()
-{
-  setEnabled(myTicksGrp, myIsTicksVisible->isChecked());
+  myNameGrp->setChecked(toUse);
 }
 
-void SVTK_AxisWidget::onNameChecked()
-{
-  setEnabled(myNameGrp, myIsNameVisible->isChecked());
-}
-
-void SVTK_AxisWidget::UseName(const bool toUse)
-{
-  myIsNameVisible->setChecked(toUse);
-}
-
-void SVTK_AxisWidget::SetName(const QString& theName)
+void SVTK_CubeAxesDlg::AxisWidget::SetName(const QString& theName)
 {
   myAxisName->setText(theName);
 }
 
-void SVTK_AxisWidget::SetNameFont(const QColor& theColor,
-                                  const int theFont,
-                                  const bool theIsBold,
-                                  const bool theIsItalic,
-                                  const bool theIsShadow)
+void SVTK_CubeAxesDlg::AxisWidget::SetNameFont(const QColor& theColor,
+                                              const int theFont,
+                                              const bool theIsBold,
+                                              const bool theIsItalic,
+                                              const bool theIsShadow)
 {
   myNameFont->SetData(theColor, theFont, theIsBold, theIsItalic, theIsShadow);
 }
 
-bool SVTK_AxisWidget::ReadData(vtkAxisActor2D* theActor)
+bool SVTK_CubeAxesDlg::AxisWidget::ReadData(vtkAxisActor2D* theActor)
 {
   if (theActor == 0)
     return false;
@@ -264,7 +250,7 @@ bool SVTK_AxisWidget::ReadData(vtkAxisActor2D* theActor)
     isTitleShadow = aTitleProp->GetShadow() ? true : false;
   }
 
-  myIsNameVisible->setChecked(useName);
+  myNameGrp->setChecked(useName);
   myAxisName->setText(aTitle);
   myNameFont->SetData(aTitleColor, aTitleFontFamily, isTitleBold, isTitleItalic, isTitleShadow);
 
@@ -292,7 +278,7 @@ bool SVTK_AxisWidget::ReadData(vtkAxisActor2D* theActor)
     isLabelsShadow = aLabelsProp->GetShadow() ? true : false;
   }
 
-  myIsLabelsVisible->setChecked(useLabels);
+  myLabelsGrp->setChecked(useLabels);
   myLabelNumber->setValue(nbLabels);
   myLabelOffset->setValue(anOffset);
   myLabelsFont->SetData(aLabelsColor, aLabelsFontFamily, isLabelsBold, isLabelsItalic, isLabelsShadow);
@@ -301,20 +287,20 @@ bool SVTK_AxisWidget::ReadData(vtkAxisActor2D* theActor)
   bool useTickMarks = theActor->GetTickVisibility();
   int aTickLength = theActor->GetTickLength();
 
-  myIsTicksVisible->setChecked(useTickMarks);
+  myTicksGrp->setChecked(useTickMarks);
   myTickLength->setValue(aTickLength);
 
   return true;
 }
 
-bool SVTK_AxisWidget::Apply(vtkAxisActor2D* theActor)
+bool SVTK_CubeAxesDlg::AxisWidget::Apply(vtkAxisActor2D* theActor)
 {
    if (theActor == 0)
     return false;
 
   // Name
 
-  theActor->SetTitleVisibility(myIsNameVisible->isChecked() ? 1 : 0);
+  theActor->SetTitleVisibility(myNameGrp->isChecked() ? 1 : 0);
   theActor->SetTitle(myAxisName->text().toLatin1());
 
   QColor aTitleColor(255, 255, 255);
@@ -341,7 +327,7 @@ bool SVTK_AxisWidget::Apply(vtkAxisActor2D* theActor)
 
   // Labels
 
-  theActor->SetLabelVisibility(myIsLabelsVisible->isChecked() ? 1 : 0);
+  theActor->SetLabelVisibility(myLabelsGrp->isChecked() ? 1 : 0);
 
   int nbLabels = myLabelNumber->value();
   theActor->SetNumberOfLabels(nbLabels);
@@ -374,7 +360,7 @@ bool SVTK_AxisWidget::Apply(vtkAxisActor2D* theActor)
 
 
   // Tick marks
-  theActor->SetTickVisibility(myIsTicksVisible->isChecked());
+  theActor->SetTickVisibility(myTicksGrp->isChecked());
   int aTickLength = myTickLength->value();
   theActor->SetTickLength(aTickLength);
 
@@ -418,16 +404,14 @@ QWidget* SVTK_CubeAxesDlg::createMainFrame(QWidget* theParent)
 
   myTabWg = new QTabWidget(aFrame);
 
-  myAxes[ 0 ] = new SVTK_AxisWidget(myTabWg);
-  myAxes[ 1 ] = new SVTK_AxisWidget(myTabWg);
-  myAxes[ 2 ] = new SVTK_AxisWidget(myTabWg);
+  myAxes[ 0 ] = new AxisWidget(myTabWg);
+  myAxes[ 1 ] = new AxisWidget(myTabWg);
+  myAxes[ 2 ] = new AxisWidget(myTabWg);
 
   myTabWg->addTab(myAxes[ 0 ], tr("X_AXIS"));
   myTabWg->addTab(myAxes[ 1 ], tr("Y_AXIS"));
   myTabWg->addTab(myAxes[ 2 ], tr("Z_AXIS"));
 
-  myTabWg->setContentsMargins(5,5,5,5);
-
   myIsVisible = new QCheckBox(tr("IS_VISIBLE"), aFrame);
 
   QVBoxLayout* aLay = new QVBoxLayout(aFrame);
index dc47654fe1f30ef5da7f63f7ea990ad685eb0759..d4f90568af2dc46488efb22ac2d5d9e064f2f338 100644 (file)
 
 #include "SVTK_DialogBase.h"
 
-#include <QFrame>
-
 class QWidget;
 class QPushButton;
 class QTabWidget;
 class QCheckBox;
-class QLineEdit;
-class QGroupBox;
 
 class QtxAction;
-class QtxIntSpinBox;
-
-class vtkAxisActor2D;
 class SVTK_CubeAxesActor2D;
-
-class SVTK_FontWidget;
-class SVTK_AxisWidget;
 class SVTK_MainWindow;
 
 /*!
@@ -56,6 +46,8 @@ class SVTK_CubeAxesDlg : public SVTK_DialogBase
 {
   Q_OBJECT
 
+  class AxisWidget;
+
 public:
                   SVTK_CubeAxesDlg(QtxAction* theAction,
                                   SVTK_MainWindow* theParent,
@@ -84,56 +76,7 @@ private:
   QPushButton*    myOkBtn;
   QPushButton*    myApplyBtn;
   QPushButton*    myCloseBtn;
-  SVTK_AxisWidget* myAxes[ 3 ];
-};
-
-/*!
- * Class       : SVTK_AxisWidget
- * Description : Tab of dialog
- */
-class SVTK_EXPORT SVTK_AxisWidget : public QFrame
-{
-  Q_OBJECT
-
-public:
-                  SVTK_AxisWidget( QWidget* );
-                  ~SVTK_AxisWidget();
-
-  void            UseName( const bool );
-  void            SetName( const QString& );
-  void            SetNameFont( const QColor&, const int, const bool, const bool, const bool );
-  bool            ReadData( vtkAxisActor2D* );
-  bool            Apply( vtkAxisActor2D* );
-
-private slots:
-  void            onNameChecked();
-  void            onLabelsChecked();
-  void            onTicksChecked();
-
-private:
-  void            updateControlState();
-  void            setEnabled( QGroupBox*, const bool );
-
-private:
-  // name
-  QGroupBox*      myNameGrp;
-  QCheckBox*      myIsNameVisible;
-  QLineEdit*      myAxisName;
-  SVTK_FontWidget* myNameFont;
-
-  // labels
-  QGroupBox*      myLabelsGrp;
-  QCheckBox*      myIsLabelsVisible;
-  QtxIntSpinBox*  myLabelNumber;
-  QtxIntSpinBox*  myLabelOffset;
-  SVTK_FontWidget* myLabelsFont;
-
-  // tick marks
-  QGroupBox*      myTicksGrp;
-  QCheckBox*      myIsTicksVisible;
-  QtxIntSpinBox*  myTickLength;
-
-  friend class SVTK_CubeAxesDlg;
+  AxisWidget*     myAxes[ 3 ];
 };
 
 #endif
index 3dffbae506e6b816f652ec86a826b5c5ef5b915a..fa49432028ae86aef5f16de062b80624cac9dd7b 100644 (file)
@@ -134,7 +134,7 @@ SVTK_Selector*
 SVTK_GenericRenderWindowInteractor
 ::GetSelector()
 {
-  return mySelector.GetPointer();
+  return mySelector;
 }
 
 /*!
index 9bb7cbfcddc8aa9077e532c507ef32125d10cfce..06c0241e8efae8ec2708ab083dbde0cb32e5e19e 100644 (file)
@@ -122,7 +122,7 @@ class SVTK_EXPORT SVTK_GenericRenderWindowInteractor: public QVTK_GenericRenderW
   SVTK_GenericRenderWindowInteractor();
   ~SVTK_GenericRenderWindowInteractor();
 
-  vtkSmartPointer<SVTK_Selector> mySelector; //!< Keeps a pointer to SVTK_Selector
+  SVTK_Selector* mySelector; //!< Keeps a pointer to SVTK_Selector
   QWidget* myRenderWidget; //!< Keeps a pointer to QWidget, where vtkRenderWindow maps to.
 };
 
index 2dfd255c5414fc7694583418e5d84d4b6182c565..d23d48393e005d88e6d4c38eada44e9f412a0eed 100644 (file)
 #include "SALOME_Actor.h"
 
 #include <QImage>
+#include <QPainter>
 
 #include <vtkGenericRenderWindowInteractor.h>
 #include <vtkRenderer.h>
+#include <vtkRenderWindow.h>
 
 #include <QtxAction.h>
 #include <QtxMultiAction.h>
@@ -42,6 +44,7 @@
 #include <SUIT_ViewWindow.h>
 #include <SUIT_Tools.h>
 #include <SUIT_ResourceMgr.h>
+#include <SUIT_Session.h>
 
 #include "SVTK_NonIsometricDlg.h"
 #include "SVTK_UpdateRateDlg.h"
@@ -55,9 +58,6 @@
 #include "SVTK_InteractorStyle.h"
 #include "SVTK_Selector.h"
 
-#include <vtkGenericRenderWindowInteractor.h>
-#include <vtkRenderer.h>
-
 /*!
   Constructor
 */
@@ -71,11 +71,6 @@ SVTK_MainWindow
 {
   setObjectName(theName);
   setWindowFlags( windowFlags() & ~Qt::Window );
-
-  myToolBar = myViewWindow->toolMgr()->createToolBar( tr("LBL_TOOLBAR_LABEL"), -1, this );
-
-  createActions(theResourceMgr);
-  createToolBar();
 }
 
 /*!
@@ -85,6 +80,11 @@ void
 SVTK_MainWindow
 ::Initialize(SVTK_RenderWindowInteractor* theInteractor)
 {
+  myToolBar = toolMgr()->createToolBar( tr("LBL_TOOLBAR_LABEL"), -1, this );
+
+  createActions( SUIT_Session::session()->activeApplication()->resourceMgr() );
+  createToolBar();
+
   myInteractor = theInteractor;
   SetEventDispatcher(myInteractor->GetDevice());
 
@@ -101,7 +101,6 @@ SVTK_MainWindow
   mySetRotationPointDlg = new SVTK_SetRotationPointDlg
     ( action( ChangeRotationPointId ), this, "SVTK_SetRotationPointDlg" );
   myTextRegionDlg = new SVTK_TextRegionDlg( action( TextRegion ), this, "SVTK_TextRegionDlg");
-
 }
 
 /*!
@@ -112,6 +111,14 @@ SVTK_MainWindow
 {
 }
 
+/*!
+  \return assigned tool manager
+*/
+QtxActionToolMgr* SVTK_MainWindow::toolMgr() const
+{
+  return myViewWindow->toolMgr();
+}
+
 /*!
   \return used SVTK_RenderWindowInteractor
 */
@@ -403,7 +410,7 @@ QToolBar*
 SVTK_MainWindow
 ::getToolBar()
 {
-  return myViewWindow->toolMgr()->toolBar( myToolBar );
+  return toolMgr()->toolBar( myToolBar );
 }
 
 void
@@ -425,7 +432,7 @@ SVTK_MainWindow
 ::createActions(SUIT_ResourceMgr* theResourceMgr)
 {
   QtxAction* anAction;
-  QtxActionToolMgr* mgr = myViewWindow->toolMgr();
+  QtxActionToolMgr* mgr = toolMgr();
 
   // Dump view
   anAction = new QtxAction(tr("MNU_DUMP_VIEW"), 
@@ -606,7 +613,7 @@ void
 SVTK_MainWindow
 ::createToolBar()
 {
-  QtxActionToolMgr* mgr = myViewWindow->toolMgr();
+  QtxActionToolMgr* mgr = toolMgr();
   
   mgr->append( DumpId, myToolBar );
   mgr->append( ViewTrihedronId, myToolBar );
@@ -924,6 +931,16 @@ SVTK_MainWindow
   GetRenderer()->OnAdjustCubeAxes();
 }
 
+/*!
+  \brief Called when the "Print view" action is activated.
+*/
+void SVTK_MainWindow::onPrintView()
+{
+  QImage img = dumpView();
+  if ( myViewWindow )
+    myViewWindow->printImage( img, this );
+}
+
 /*!
   \return QImage, containing all scene rendering in window
 */
@@ -931,8 +948,19 @@ QImage
 SVTK_MainWindow
 ::dumpView()
 {
-  QPixmap px = QPixmap::grabWindow( GetInteractor()->winId() );
-  return px.toImage();
+  vtkRenderWindow* aWindow = GetInteractor()->getRenderWindow();
+  int* aSize = aWindow->GetSize();
+  int aWidth = aSize[0];
+  int aHeight = aSize[1];
+  
+  unsigned char *aData = 
+    aWindow->GetRGBACharPixelData( 0, 0, aWidth-1, aHeight-1, 0 );
+  
+  QImage anImage( aData, aWidth, aHeight, QImage::Format_ARGB32 );
+
+  anImage = anImage.rgbSwapped();
+  anImage = anImage.mirrored();
+  return anImage;
 }
 
 /*!
@@ -940,36 +968,5 @@ SVTK_MainWindow
 */
 QtxAction* SVTK_MainWindow::action( int id ) const
 {
-  return dynamic_cast<QtxAction*>( myViewWindow->toolMgr()->action( id ) );
+  return dynamic_cast<QtxAction*>( toolMgr()->action( id ) );
 }
-
-/*!
-  \brief Called when the "Print view" action is activated.
-*/
-void SVTK_MainWindow::onPrintView()
-{
-  QImage img = dumpView();
-  if ( myViewWindow )
-    myViewWindow->printImage( img, this );
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
index b15383eb9a6609cf6b3a1285c37860444a0546d0..b2e892634d9d9080adf03d39c6a2755dac90900e 100644 (file)
@@ -38,6 +38,7 @@ class vtkInteractorStyle;
 class vtkRenderWindowInteractor;
 
 class QtxAction;
+class QtxActionToolMgr;
 
 class SUIT_ResourceMgr;
 class SUIT_ViewWindow;
@@ -241,6 +242,8 @@ public:
   QImage dumpView();
 
  protected:  
+  virtual QtxActionToolMgr* toolMgr() const;
+
   void
   createActions(SUIT_ResourceMgr* theResourceMgr);
 
index fb5ced7f2d69f69b7189c30c00af63869f90ff85..8d6cfe07b8b3307eddf25cd5d38580ee392529ab 100644 (file)
@@ -261,7 +261,7 @@ namespace
     // and handle the transformation ourselves.
     vtkMatrix4x4 *aMatrix = vtkMatrix4x4::New();
     aMatrix->DeepCopy(theRenderer->GetActiveCamera()->
-                     GetCompositePerspectiveTransformMatrix(1,0,1));
+                     GetCompositePerspectiveTransformMatrix( theRenderer->GetTiledAspectRatio(), 0, 1 ) );
 
     for(vtkIdType aCellId = 0; aCellId < aNumCells; aCellId++){
       vtkCell* aCell = theInput->GetCell(aCellId);
index 56236ad891bf837d568aac88d26873ed1f5efee8..66287bf793afe5f5fed35bef99bf9a5b2d8415c3 100644 (file)
@@ -37,7 +37,9 @@
 // QT Includes
 // Put Qt includes before the X11 includes which #define the symbol None
 // (see SVTK_SpaceMouse.h) to avoid the compilation error.
-#include <QX11Info>
+#ifndef WIN32
+# include <QX11Info>
+#endif
 #include <QMouseEvent>
 
 #include "SVTK_SpaceMouse.h" 
@@ -414,10 +416,10 @@ QVTK_RenderWindowInteractor
 /*!
   To handle native Win32 events (from such devices as SpaceMouse)
 */
-bool QVTK_RenderWindowInteractor::winEvent( MSG* msg )
+bool QVTK_RenderWindowInteractor::winEvent( MSG* msg, long* result )
 {
   // TODO: Implement event handling for SpaceMouse
-  return QWidget::winEvent( msg );
+  return QWidget::winEvent( msg, result);
 }
 
 #else
index 51aa1ec5999cb752c57df896fe3fee3f570bce66..ab5f9c1827be14f456b2a888aa86515084f12308 100644 (file)
@@ -122,7 +122,7 @@ class SVTK_EXPORT QVTK_RenderWindowInteractor: public QWidget
 
   //! To handle native events (from such devices as SpaceMouse)
 #ifdef WIN32
-  virtual bool winEvent( MSG* );
+  virtual bool winEvent( MSG*, long* );
 #else
   virtual bool x11Event( XEvent *e );
 #endif
index 0f54789d67e52740246d5beda6afcb899ddb5af7..906574ca788e04f654cf0562956b895ebc18d305 100644 (file)
 
 #include "SVTK_SelectorDef.h"
 
-#include "VTKViewer_Filter.h"
+#include <VTKViewer_Filter.h>
 
 #include "SALOME_Actor.h"
 
+#include <SUIT_Session.h>
+#include <SUIT_ResourceMgr.h>
+
 #include <TColStd_MapIteratorOfMapOfInteger.hxx>
 #include <TColStd_IndexedMapOfInteger.hxx>
 
@@ -547,15 +550,24 @@ SALOME_Actor*
 SVTK_SelectorDef
 ::Pick(const SVTK_SelectionEvent* theEvent, vtkRenderer* theRenderer) const
 {
-  myCellPicker->Pick(theEvent->myX,
-                    theEvent->myY, 
-                    0.0,
-                    theRenderer);
-  
-  vtkActorCollection* aListActors = myCellPicker->GetActors();
-  SALOME_Actor* anActor = GetLastSALOMEActor(aListActors);
+  bool anAdvancedSelectionAlgorithm = true;
+  SUIT_ResourceMgr* aResourceMgr = SUIT_Session::session()->resourceMgr();
+  if ( aResourceMgr )
+    anAdvancedSelectionAlgorithm = aResourceMgr->booleanValue( "VTKViewer", "use_advanced_selection_algorithm", true );
+
+  SALOME_Actor* anActor = NULL;
+  vtkActorCollection* aListActors = NULL;
+  if ( anAdvancedSelectionAlgorithm ) {
+    myCellPicker->Pick(theEvent->myX,
+                      theEvent->myY, 
+                      0.0,
+                      theRenderer);
   
-  if (! anActor) {
+    aListActors = myCellPicker->GetActors();
+    anActor = GetLastSALOMEActor(aListActors);
+  }
+
+  if ( !anActor ) {
     myPicker->Pick(theEvent->myX,
                   theEvent->myY, 
                   0.0,
index 8e5360537a1a9f93064d4581c86f3d556d57c7d6..b8edb171c6a705b1030d7668bc7481c2f98b2441 100644 (file)
@@ -196,9 +196,11 @@ SVTK_Viewer
   thePopup->addSeparator();
 
   if(TViewWindow* aView = dynamic_cast<TViewWindow*>(myViewManager->getActiveView())){
-    if ( !aView->getMainWindow()->getToolBar()->isVisible() ){
-      thePopup->addAction( VTKViewer_Viewer::tr( "MEN_SHOW_TOOLBAR" ), this, SLOT( onShowToolbar() ) );
-    }
+    //Support of several toolbars in the popup menu
+    QList<QToolBar*> lst = qFindChildren<QToolBar*>( aView );
+    QList<QToolBar*>::const_iterator it = lst.begin(), last = lst.end();
+    for( ; it!=last; it++ )
+      thePopup->addAction( (*it)->toggleViewAction() );
     aView->RefreshDumpImage();
   }
 }
@@ -275,29 +277,6 @@ SVTK_Viewer
   }
 }
 
-/*!
-  SLOT: called when popup item "Show toolbar" is activated, shows toolbar of active view window
-*/
-void
-SVTK_Viewer
-::onShowToolbar() 
-{
-  QVector<SUIT_ViewWindow*> aViews = myViewManager->getViews();
-  for(int i = 0, iEnd = aViews.size(); i < iEnd; i++){
-    if(TViewWindow* aView = dynamic_cast<TViewWindow*>(aViews.at(i))){
-      //aView->getMainWindow()->getToolBar()->show();
-      const QObjectList& aChildren = aView->getMainWindow()->children();
-      foreach (QObject* aObj, aChildren) {
-       if (aObj->inherits("QToolBar")) {
-         QToolBar* aToolBar = dynamic_cast<QToolBar*>(aObj);
-         if (aToolBar) aToolBar->show();
-       }
-      }
-    }
-  }
-}
-
-
 /*!
   Display presentation
   \param prs - presentation
index db6c4d79dda63d5b72ad96b6ba0e0ac4e8fb9b03..a76da1dbc0d64e357e7eaf16732b2661f65ab959 100644 (file)
@@ -113,7 +113,6 @@ protected slots:
   void onMouseRelease(SUIT_ViewWindow*, QMouseEvent*);
 
   void onDumpView();
-  void onShowToolbar();
   void onChangeBgColor();
 
 private: