]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Note 0009977 of the issue 0013178: EDF243 VISU : post_processing for fields at nodes
authorouv <ouv@opencascade.com>
Tue, 15 Mar 2011 13:50:54 +0000 (13:50 +0000)
committerouv <ouv@opencascade.com>
Tue, 15 Mar 2011 13:50:54 +0000 (13:50 +0000)
src/VTKViewer/VTKViewer_MarkerDlg.cxx
src/VTKViewer/VTKViewer_MarkerDlg.h
src/VTKViewer/VTKViewer_MarkerWidget.cxx
src/VTKViewer/VTKViewer_MarkerWidget.h

index 5484bad62040e10071fff2d08aae638a07a539d7..22c0549c9402dfeb636db1c35701e829f464f095 100644 (file)
@@ -135,3 +135,8 @@ int VTKViewer_MarkerDlg::getCustomMarkerID() const
 {
   return myMarkerWidget->getCustomMarkerID();
 }
+
+void VTKViewer_MarkerDlg::addExtraStdMarker( VTK::MarkerType theMarkerType, const QPixmap& thePixmap )
+{
+  myMarkerWidget->addExtraStdMarker( theMarkerType, thePixmap );
+}
index 7e40c6131b00da4bba6a8e8e126bb7fbd262dec8..beb67b11650f45772b7caf27f4aa406366588684 100644 (file)
@@ -51,6 +51,8 @@ public:
   VTK::MarkerScale        getStandardMarkerScale() const;
   int                     getCustomMarkerID() const;
 
+  void                    addExtraStdMarker( VTK::MarkerType, const QPixmap& );
+
 protected:
   void                    keyPressEvent( QKeyEvent* );
 
index 81a0754ae5f4c0ffb663a6f47008bf134340a0b1..4e59c0fdd6048266293a179b84063435df203101 100644 (file)
@@ -119,7 +119,8 @@ VTKViewer_MarkerWidget::VTKViewer_MarkerWidget( QWidget* theParent )
   // ---
 
   connect( myTypeGroup, SIGNAL( buttonClicked( int ) ), myWGStack, SLOT( setCurrentIndex( int ) ) );
-  connect( aBrowseBtn,  SIGNAL( clicked() ), this, SLOT( browse() ) );
+  connect( myStdTypeCombo, SIGNAL( currentIndexChanged( int ) ), this, SLOT( onStdMarkerChanged( int ) ) );
+  connect( aBrowseBtn,  SIGNAL( clicked() ), this, SLOT( onBrowse() ) );
 
   // ---
 
@@ -159,12 +160,13 @@ VTK::MarkerMap VTKViewer_MarkerWidget::getCustomMarkerMap()
 
 void VTKViewer_MarkerWidget::setStandardMarker( VTK::MarkerType theMarkerType, VTK::MarkerScale theMarkerScale )
 {
-  if ( theMarkerType > VTK::MT_NONE && theMarkerType < VTK::MT_USER ) {
+  if ( theMarkerType > VTK::MT_NONE && theMarkerType < VTK::MT_USER ||
+       myExtraMarkerList.contains( theMarkerType ) ) {
     myTypeGroup->button( 0 )->setChecked( true );
     myWGStack->setCurrentIndex( 0 );
-    myStdTypeCombo->setCurrentIndex( (int)theMarkerType-1 );
+    myStdTypeCombo->setCurrentId( theMarkerType );
     int aMarkerScale = std::max( (int)VTK::MS_10, std::min( (int)VTK::MS_70, (int)theMarkerScale ) );
-    myStdScaleCombo->setCurrentIndex( aMarkerScale-1 );
+    myStdScaleCombo->setCurrentId( aMarkerScale );
   }
 }
 
@@ -193,6 +195,16 @@ int VTKViewer_MarkerWidget::getCustomMarkerID() const
   return myWGStack->currentIndex() == 1 ? myCustomTypeCombo->currentId() : 0;
 }
 
+void VTKViewer_MarkerWidget::addExtraStdMarker( VTK::MarkerType theMarkerType, const QPixmap& thePixmap )
+{
+  if( myExtraMarkerList.isEmpty() )
+    myStdTypeCombo->insertSeparator( myStdTypeCombo->count() );
+  myStdTypeCombo->addItem( thePixmap, QString() );
+  myStdTypeCombo->setId( myStdTypeCombo->count()-1, theMarkerType );
+
+  myExtraMarkerList.append( theMarkerType );
+}
+
 void VTKViewer_MarkerWidget::init()
 {
   SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
@@ -236,7 +248,14 @@ QPixmap VTKViewer_MarkerWidget::markerFromData( const VTK::MarkerData& theMarker
   return QPixmap::fromImage( anImage );
 }
 
-void VTKViewer_MarkerWidget::browse()
+void VTKViewer_MarkerWidget::onStdMarkerChanged( int index )
+{
+  VTK::MarkerType aMarkerType = (VTK::MarkerType)myStdTypeCombo->id( index );
+  bool anIsExtraMarker = myExtraMarkerList.contains( aMarkerType );
+  myStdScaleCombo->setEnabled( !anIsExtraMarker );
+}
+
+void VTKViewer_MarkerWidget::onBrowse()
 {
   QStringList filters;
   filters << tr( "Texture files (*.dat)" ) << tr( "All files (*)" );
index bfa0186acc193a43516ea6c1b7ec54490731a61a..b117104461d76b4ff6383522c4019d7777e2c8c6 100644 (file)
@@ -51,13 +51,16 @@ public:
   VTK::MarkerScale getStandardMarkerScale() const;
   int              getCustomMarkerID() const;
 
+  void             addExtraStdMarker( VTK::MarkerType, const QPixmap& );
+
 private:
   void             init();
   void             addTexture( int, bool = false );
   QPixmap          markerFromData( const VTK::MarkerData& );
 
 private slots:
-  void             browse();
+  void             onStdMarkerChanged( int );
+  void             onBrowse();
 
 private:
   QButtonGroup*    myTypeGroup;
@@ -67,6 +70,8 @@ private:
   QtxComboBox*     myCustomTypeCombo;
 
   VTK::MarkerMap   myCustomMarkerMap;
+
+  QList<VTK::MarkerType> myExtraMarkerList;
 };
 
 #endif