]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Patch for non-restricted zoom-in.
authormkr <mkr@opencascade.com>
Thu, 30 Nov 2017 14:19:20 +0000 (17:19 +0300)
committermkr <mkr@opencascade.com>
Thu, 30 Nov 2017 14:19:56 +0000 (17:19 +0300)
src/GraphicsView/GraphicsView_ViewPort.cxx
src/GraphicsView/GraphicsView_ViewPort.h

index 627a30cddbc796f981fafd5eaa0260bc5e31f44e..93e75b461dba58878b061181b951015a6478b8ea 100644 (file)
@@ -149,7 +149,8 @@ GraphicsView_ViewPort::GraphicsView_ViewPort( QWidget* theParent )
   myIsDragPositionInitialized( false ),
   myIsPulling( false ),
   myPullingObject( 0 ),
-  myStoredCursor( Qt::ArrowCursor )
+  myStoredCursor( Qt::ArrowCursor ),
+  myZoomCoeff( 100 )
 {
   // scene
   myScene = new GraphicsView_Scene( this );
@@ -888,7 +889,7 @@ void GraphicsView_ViewPort::zoom( double theX1, double theY1, double theX2, doub
   double aM22 = aTransform.m22();
   // increasing of diagonal coefficients (>300) leads to a crash sometimes
   // at the values of 100 some primitives are drawn incorrectly
-  if( qMax( aM11, aM22 ) < 100 )
+  if( myZoomCoeff < 0 || qMax( aM11, aM22 ) < myZoomCoeff )
     setTransform( aTransform );
 
   myIsTransforming = false;
@@ -1002,6 +1003,15 @@ void GraphicsView_ViewPort::applyTransform()
       anObject->setViewTransform( transform() );
 }
 
+//================================================================
+// Function : setZoomCoeff
+// Purpose  : 
+//================================================================
+void GraphicsView_ViewPort::setZoomCoeff( const int& theZoomCoeff )
+{
+  myZoomCoeff = theZoomCoeff;
+}
+
 //================================================================
 // Function : currentBlock
 // Purpose  : 
index 8e53b1c5ab120b7137efda3c22dd9c6cd3f6b94a..51b3f53dedcf6e92922f49f2132bf62dda8e40b1 100644 (file)
@@ -161,6 +161,9 @@ public:
 
   void                             applyTransform();
 
+  int                              zoomCoeff() const { return myZoomCoeff; }
+  void                             setZoomCoeff( const int& theZoomCoeff );
+
   // block status
   BlockStatus                      currentBlock();
 
@@ -331,6 +334,9 @@ private:
 
   // cursor
   QCursor                          myStoredCursor;
+
+  // zoom diagonal coefficient
+  int                              myZoomCoeff;
 };
 
 Q_DECLARE_OPERATORS_FOR_FLAGS( GraphicsView_ViewPort::InteractionFlags )