Salome HOME
refs #1333: customization of tool buttons in OCCViewer
authorasl <asl@opencascade.com>
Thu, 7 Sep 2017 06:10:58 +0000 (09:10 +0300)
committerasl <asl@opencascade.com>
Thu, 7 Sep 2017 06:10:58 +0000 (09:10 +0300)
src/OCCViewer/OCCViewer_Utilities.cxx
src/OCCViewer/OCCViewer_ViewWindow.cxx
src/OCCViewer/OCCViewer_ViewWindow.h

index e88b2918286405da26f639cb72a66d6fcc3aecbe..0330f328afe1fe5f0f5fe4c366d423a507cdbfbb 100755 (executable)
@@ -116,7 +116,10 @@ OCCViewer_ViewWindow::Mode2dType OCCViewer_Utilities::setViewer2DMode
   for ( int i = 0, aNb = aNo2dActions.size(); i < aNb; i++ ) {
     anAction = aToolMgr->action( aNo2dActions[i] );
     if ( anAction )
+    {
       anAction->setEnabled( !is2dMode );
+      anAction->setVisible( !is2dMode );
+    }
   }
   QAction* aTop = aToolMgr->action( OCCViewer_ViewWindow::TopId );
   QtxMultiAction* aMulti = dynamic_cast<QtxMultiAction*>( aTop->parent() );
index 060349844077a574daff8bdedaade931cca209b3..0908496f1a1d434a861c1bbb6c41dcfe8a76a0f2 100644 (file)
@@ -3815,3 +3815,16 @@ void OCCViewer_ViewWindow::onLightSource()
       aDlg->show();
   }
 }
+
+bool OCCViewer_ViewWindow::isActionVisible( ActionId theId ) const
+{
+  QAction* a = toolMgr()->action( theId );
+  return a && a->isVisible();
+}
+
+void OCCViewer_ViewWindow::setActionVisible( ActionId theId, bool isVisible )
+{
+  QAction* a = toolMgr()->action( theId );
+  if( a )
+    a->setVisible( isVisible );
+}
index e83fe217e196b2c0694af66308e5aafb0f0937d6..823d0e51c13bdbc8a63f1ac92344f32fdcb7e3a2 100755 (executable)
@@ -143,7 +143,7 @@ class OCCVIEWER_EXPORT OCCViewer_ViewWindow : public SUIT_ViewWindow
   Q_OBJECT
 
 public:
-  enum { DumpId, FitAllId, FitRectId, FitSelectionId, ZoomId, PanId, GlobalPanId,
+  enum ActionId { DumpId, FitAllId, FitRectId, FitSelectionId, ZoomId, PanId, GlobalPanId,
          ChangeRotationPointId, RotationId,
          FrontId, BackId, TopId, BottomId, LeftId, RightId, ClockWiseId, AntiClockWiseId,
         ResetId, CloneId, ClippingId, MemId, RestoreId,
@@ -270,6 +270,9 @@ public:
 
   virtual SUIT_CameraProperties   cameraProperties();
 
+  bool isActionVisible( ActionId theId ) const;
+  void setActionVisible( ActionId theId, bool isVisible );
+
 public slots:
   virtual void onFrontView();
   virtual void onViewFitAll();