Salome HOME
debug of tests
[modules/hydro.git] / src / HYDRO_tests / TestViewer.cxx
index 038ba3337e48b1c3aadc0bba9434fab9fa2975d8..080f9b9ddd8ad042c2c3f28c2defc55f125a90e8 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)
@@ -266,7 +265,7 @@ bool AreImagesEqual( const QImage& theImage1, const QImage& theImage2, double th
   return true;
 }
 
-bool TestViewer::AssertImages( QString& theMessage, const QImage* theImage, const char* theCase )
+bool TestViewer::AssertImages( QString& theMessage, const QImage* theImage, const char* theCase, bool swapRGB )
 {
   QImage anActualImage;
   if( theImage )
@@ -274,6 +273,13 @@ bool TestViewer::AssertImages( QString& theMessage, const QImage* theImage, cons
   else
     anActualImage = viewWindow()->getView(OCCViewer_ViewFrame::MAIN_VIEW)->dumpView();
 
+  if( swapRGB )
+  {
+    // 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 +420,8 @@ bool TestViewer::areScriptsEqual( const QString& theBaseName,
 
   return isEqual;
 }
+
+void TestViewer::setKey( const QString& theKey )
+{
+  myKey = theKey;
+}