]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Issue #1016: Hide selection rectangle on sketcher operation
authorvsv <vitaly.smetannikov@opencascade.com>
Mon, 12 Oct 2015 07:49:02 +0000 (10:49 +0300)
committervsv <vitaly.smetannikov@opencascade.com>
Mon, 12 Oct 2015 07:49:20 +0000 (10:49 +0300)
src/ModuleBase/ModuleBase_IViewer.h
src/NewGeom/NewGeom_SalomeViewer.cpp
src/NewGeom/NewGeom_SalomeViewer.h
src/PartSet/PartSet_SketcherMgr.cpp
src/PartSet/PartSet_SketcherMgr.h
src/XGUI/XGUI_ViewerProxy.cpp
src/XGUI/XGUI_ViewerProxy.h

index 7547d6c1f33ddb89ba67c065e9585ba3540af8e2..3c8f67653432a316a5c6534eb9243f81039c6713 100644 (file)
@@ -50,6 +50,9 @@ Q_OBJECT
   //! Returns true if multiselection is enabled
   virtual bool isMultiSelectionEnabled() const = 0;
 
+  //! Enable or disable draw mode in the viewer
+  virtual bool enableDrawMode(bool isEnabled) = 0;
+
   //! Perfroms the fit all for the active view
   virtual void fitAll() = 0;
 
index 636abd69f2a5638603e1932edcad61801aa6da24..d8415b44788fca61d82fbc521d8d37a4ceee9030 100644 (file)
@@ -257,6 +257,7 @@ bool NewGeom_SalomeViewer::isSelectionEnabled() const
 {
   if (mySelector)
     return mySelector->viewer()->isSelectionEnabled();
+  return false;
 }
 
 //**********************************************
@@ -274,6 +275,15 @@ bool NewGeom_SalomeViewer::isMultiSelectionEnabled() const
   return false;
 }
 
+//**********************************************
+bool NewGeom_SalomeViewer::enableDrawMode(bool isEnabled)
+{
+  // TODO: Has to be replaced when SALOME patch become avialable
+  if (mySelector)
+    return mySelector->viewer()->enableDrawMode(isEnabled);
+  return false;
+}
+
 //**********************************************
 void NewGeom_SalomeViewer::fitAll()
 {
index 0635c89894fd9a3c4a0957cf1772f40c75d44eeb..ee250cae0e704739a7c5f8bd15ba22f6b4ae9b13 100644 (file)
@@ -91,6 +91,9 @@ Q_OBJECT
   //! Returns true if multiselection is enabled
   virtual bool isMultiSelectionEnabled() const;
 
+  //! Enable or disable draw mode in the viewer
+  virtual bool enableDrawMode(bool isEnabled);
+
   //! Perfroms the fit all for the active view
   virtual void fitAll();
 
index 2185f64fc6d0be97188d998dddc8cd5c4eaa6afd..270877d4bad263c99fd0f089f621ffa5bcdf3961 100644 (file)
@@ -159,7 +159,7 @@ PartSet_SketcherMgr::PartSet_SketcherMgr(PartSet_Module* theModule)
   ModuleBase_IWorkshop* anIWorkshop = myModule->workshop();
   ModuleBase_IViewer* aViewer = anIWorkshop->viewer();
 
-  myPreviousSelectionEnabled = true;//aViewer->isSelectionEnabled();
+  myPreviousDrawModeEnabled = true;//aViewer->isSelectionEnabled();
 
   connect(aViewer, SIGNAL(mousePress(ModuleBase_IViewWindow*, QMouseEvent*)),
           this, SLOT(onMousePressed(ModuleBase_IViewWindow*, QMouseEvent*)));
@@ -341,7 +341,6 @@ void PartSet_SketcherMgr::onMousePressed(ModuleBase_IViewWindow* theWnd, QMouseE
 
   ModuleBase_IWorkshop* aWorkshop = myModule->workshop();
   ModuleBase_IViewer* aViewer = aWorkshop->viewer();
-  myPreviousSelectionEnabled = aViewer->isSelectionEnabled();
   if (!aViewer->canDragByMouse())
     return;
 
@@ -402,6 +401,8 @@ void PartSet_SketcherMgr::onMousePressed(ModuleBase_IViewWindow* theWnd, QMouseE
       myIsDragging = true;
       get2dPoint(theWnd, theEvent, myCurrentPoint);
       myDragDone = false;
+      // TODO: Has to be uncommented when SALOME patch on draw mode become avialable
+      myPreviousDrawModeEnabled = aViewer->enableDrawMode(false);
       launchEditing();
       if (aFeature.get() != NULL) {
         std::shared_ptr<SketchPlugin_Feature> aSPFeature = 
@@ -421,6 +422,8 @@ void PartSet_SketcherMgr::onMousePressed(ModuleBase_IViewWindow* theWnd, QMouseE
       myIsDragging = true;
       get2dPoint(theWnd, theEvent, myCurrentPoint);
       myDragDone = false;
+      // TODO: Has to be uncommented when SALOME patch on draw mode become avialable
+      myPreviousDrawModeEnabled = aViewer->enableDrawMode(false);
 
       // This is necessary in order to finalize previous operation
       QApplication::processEvents();
@@ -458,7 +461,9 @@ void PartSet_SketcherMgr::onMouseReleased(ModuleBase_IViewWindow* theWnd, QMouse
       }
     }
   }
-  aWorkshop->viewer()->enableSelection(myPreviousSelectionEnabled);
+      // TODO: Has to be uncommented when SALOME patch on draw mode become avialable
+  aWorkshop->viewer()->enableDrawMode(myPreviousDrawModeEnabled);
+  //aWorkshop->viewer()->enableSelection(myPreviousDrawModeEnabled);
   myIsDragging = false;
 }
 
@@ -498,8 +503,10 @@ void PartSet_SketcherMgr::onMouseMoved(ModuleBase_IViewWindow* theWnd, QMouseEve
     // 2. the enable selection in the viewer should be temporary switched off in order to ignore
     // mouse press signal in the viewer(it call Select for AIS context and the dragged objects are
     // deselected). This flag should be restored in the slot, processed the mouse release signal.
-    ModuleBase_IViewer* aViewer = myModule->workshop()->viewer();
-    aViewer->enableSelection(false);
+
+    // TODO: Has to be commented out when SALOME patch on draw mode become avialable
+    //ModuleBase_IViewer* aViewer = myModule->workshop()->viewer();
+    //aViewer->enableSelection(false);
 
     ModuleBase_Operation* aCurrentOperation = getCurrentOperation();
     if (!aCurrentOperation)
index 94540d988989d647f1b27dae4973cb400cad7ebf..5e8a09597c69eb1b7fd3246f2c9ea76ad2ad1742 100644 (file)
@@ -294,7 +294,7 @@ private:
 private:
   PartSet_Module* myModule;
 
-  bool myPreviousSelectionEnabled; // the previous selection enabled state in the viewer
+  bool myPreviousDrawModeEnabled; // the previous selection enabled state in the viewer
   bool myIsDragging;
   bool myDragDone;
   bool myIsResetCurrentValue; /// the state that value in the property panel is reset
index 293b9c0634ac8ee066bda81ecd6d2f9b32f481c2..955813a423b61bf8edfeb398ec3c4cb52bf60f51 100644 (file)
@@ -275,6 +275,16 @@ bool XGUI_ViewerProxy::isMultiSelectionEnabled() const
   }
 }
 
+//***************************************
+bool XGUI_ViewerProxy::enableDrawMode(bool isEnabled)
+{
+  if (myWorkshop->isSalomeMode()) {
+    return myWorkshop->salomeConnector()->viewer()->enableDrawMode(isEnabled);
+  } else {
+    return myWorkshop->mainWindow()->viewer()->enableDrawMode(isEnabled);
+  }
+}
+
 //***************************************
 void XGUI_ViewerProxy::addSelectionFilter(const Handle(SelectMgr_Filter)& theFilter)
 {
index 64bc12fb81a05fc59fb6bf4215a0f373adface70..7362bbfa46a640f43c20be7719d7efa8b029d9f4 100644 (file)
@@ -44,6 +44,9 @@ Q_OBJECT
   //! Returns true if multiselection is enabled
   virtual bool isMultiSelectionEnabled() const;
 
+  //! Enable or disable draw mode in the viewer
+  virtual bool enableDrawMode(bool isEnabled);
+
   //! Sets the view projection
   /// \param theX the X projection value
   /// \param theY the Y projection value