]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
1) Improved visibility management
authorouv <ouv@opencascade.com>
Mon, 26 Aug 2013 10:26:47 +0000 (10:26 +0000)
committerouv <ouv@opencascade.com>
Mon, 26 Aug 2013 10:26:47 +0000 (10:26 +0000)
2) Save/load visual state

src/GraphicsView/GraphicsView_ViewFrame.cxx
src/GraphicsView/GraphicsView_ViewFrame.h

index 89f9e0b31e27a4744daa2eb6004ca363e669ff04..dcaa1cc5ddc3aedb6beb2ce961b4f3160285397e 100644 (file)
@@ -199,6 +199,50 @@ QImage GraphicsView_ViewFrame::dumpView()
   return myViewPort->dumpView();
 }
 
+//================================================================
+// Function : getVisualParameters
+// Purpose  : 
+//================================================================
+QString GraphicsView_ViewFrame::getVisualParameters()
+{
+  QTransform aTransform = myViewPort->transform();
+
+  QString aString;
+  aString.sprintf( "%.3f*%.3f*%.3f*%.3f*%.3f*%.3f*%.3f*%.3f*%.3f",
+    aTransform.m11(), aTransform.m12(), aTransform.m13(),
+    aTransform.m21(), aTransform.m22(), aTransform.m23(),
+    aTransform.m31(), aTransform.m32(), aTransform.m33() );
+  return aString;
+}
+
+//================================================================
+// Function : setVisualParameters
+// Purpose  : 
+//================================================================
+void GraphicsView_ViewFrame::setVisualParameters( const QString& theParameters )
+{
+  QStringList aList = theParameters.split( '*' );
+  if( aList.size() < 9 )
+    return;
+
+  bool anIsOk[9];
+  QTransform aTransform( aList[0].toDouble( &anIsOk[0] ),
+                         aList[1].toDouble( &anIsOk[1] ),
+                         aList[2].toDouble( &anIsOk[2] ),
+                         aList[3].toDouble( &anIsOk[3] ),
+                         aList[4].toDouble( &anIsOk[4] ),
+                         aList[5].toDouble( &anIsOk[5] ),
+                         aList[6].toDouble( &anIsOk[6] ),
+                         aList[7].toDouble( &anIsOk[7] ),
+                         aList[8].toDouble( &anIsOk[8] ) );
+  for( int i = 0; i < 9; i++ )
+    if( !anIsOk[ i ] )
+      return;
+
+  myViewPort->setTransform( aTransform );
+  myViewPort->applyTransform();
+}
+
 //================================================================
 // Function : expandToolBarActions
 // Purpose  : 
index 8e3ffe60acf2446eabc9ad6aa4b2242f4f1a9144..3ee05b692d8ca4dc006a99b07388510825b6161f 100644 (file)
@@ -59,9 +59,12 @@ public:
 
   virtual QImage          dumpView();
 
+  virtual QString         getVisualParameters();
+  virtual void            setVisualParameters( const QString& theParameters );
+
   void                    expandToolBarActions();
 
-  protected slots:
+protected slots:
   void                    onViewPan();
   void                    onViewZoom();
   void                    onViewFitAll();