Salome HOME
Merge branch 'BR_1330' into BR_DEMO
[modules/hydro.git] / src / HYDRO_tests / TestViewer.cxx
index 038ba3337e48b1c3aadc0bba9434fab9fa2975d8..ba0b7b5d059b76a37bb623a5179be8096df2aa77 100644 (file)
@@ -134,18 +134,23 @@ void TestViewer::show( const Handle(AIS_InteractiveObject)& theObject,
     eraseAll( false );
   }
   
-  context()->Display( theObject, theMode, theSelectionMode );
   if( theSelectionMode > 0 )
   {
     context()->OpenLocalContext();
+    context()->Display( theObject, theMode, theSelectionMode );
     context()->Activate( theObject, theSelectionMode, Standard_True );
   }
+  else
+    context()->Display( theObject, theMode, theSelectionMode );
 
   if( isFitAll )
-  {
-    viewWindow()->onTopView();
-    viewWindow()->onFitAll();
-  }
+    fitAll();
+}
+
+void TestViewer::fitAll()
+{
+  viewWindow()->onTopView();
+  viewWindow()->onFitAll();
 }
 
 void TestViewer::show( const TopoDS_Shape& theShape, int theMode, bool isFitAll, const QColor& theColor,
@@ -167,10 +172,7 @@ void TestViewer::show( const TopoDS_Shape& theShape, int theMode, bool isFitAll,
   context()->Display( aShape, theMode, 0, Standard_False );
 
   if( isFitAll )
-  {
-    viewWindow()->onTopView();
-    viewWindow()->onFitAll();
-  }
+    fitAll();
 }
 void TestViewer::show( const TopoDS_Shape& theShape, int theMode, bool isFitAll, const char* theKey,
                        int theUIANb, int theVIANb)
@@ -217,10 +219,7 @@ void TestViewer::show( const TopoDS_Shape& theShape, int theMode, bool isFitAll,
     show( aLE.Value(), theMode, false, GetColor(i) );
 
   if( isFitAll )
-  {
-    viewWindow()->onTopView();
-    viewWindow()->onFitAll();
-  }
+    fitAll();
 }
 
 /*void TestViewer::ShowShape(const TopoDS_Shape& theShape, int theMode, int& i)
@@ -274,6 +273,14 @@ bool TestViewer::AssertImages( QString& theMessage, const QImage* theImage, cons
   else
     anActualImage = viewWindow()->getView(OCCViewer_ViewFrame::MAIN_VIEW)->dumpView();
 
+  const bool SWAP_RGB_ORDER = true;
+  if( SWAP_RGB_ORDER )
+  {
+    // A temporary patch for bug in SALOME/OCC dump; the result image contains swapped RGB colors
+    anActualImage = anActualImage.rgbSwapped();
+  }
+
+
   if( theCase )
     myKey = theCase;
 
@@ -414,3 +421,8 @@ bool TestViewer::areScriptsEqual( const QString& theBaseName,
 
   return isEqual;
 }
+
+void TestViewer::setKey( const QString& theKey )
+{
+  myKey = theKey;
+}