Salome HOME
Access to pqMainWindowCore::compareView() from PVGUI_ProcessModuleHelper.
[modules/paravis.git] / src / PVGUI / PVGUI_ProcessModuleHelper.cxx
index cf03dc254b8369a189585686917d0b43d7ab9598..7079c52a9c81447bda76531e38ae9c7c356a0564 100644 (file)
@@ -4,17 +4,38 @@
 //             <san@portrex.nnov.opencascade.com>
 
 
+#include "PVGUI_Module.h"
 #include "PVGUI_ProcessModuleHelper.h"
+#include "PVGUI_OutputWindowAdapter.h"
+
+#include <CAM_Application.h>
+#include <CAM_Module.h>
+#include <SUIT_Session.h>
 
-//#include <pqApplicationCore.h>
 #include <vtkObjectFactory.h>
-//#include <vtkPVConfig.h>
+#include <vtkOutputWindow.h>
+#include <vtkSmartPointer.h>
 
 vtkStandardNewMacro(PVGUI_ProcessModuleHelper);
 vtkCxxRevisionMacro(PVGUI_ProcessModuleHelper, "$Revision$");
 
+class PVGUI_ProcessModuleHelper::pqImplementation
+{
+public:
+  pqImplementation() :
+    OutputWindowAdapter(vtkSmartPointer<PVGUI_OutputWindowAdapter>::New())
+  {}
+
+  ~pqImplementation()
+  {}
+
+  //! Displays VTK debug output in SALOME log window
+  vtkSmartPointer<PVGUI_OutputWindowAdapter> OutputWindowAdapter;
+};
+
 //-----------------------------------------------------------------------------
 PVGUI_ProcessModuleHelper::PVGUI_ProcessModuleHelper()
+  : Implementation(new pqImplementation())
 {
 }
 
@@ -33,11 +54,9 @@ void PVGUI_ProcessModuleHelper::PrintSelf(ostream& os, vtkIndent indent)
 bool PVGUI_ProcessModuleHelper::compareView(const QString& ReferenceImage,
   double Threshold, ostream& Output, const QString& TempDirectory)
 {
-  // TODO: to be implemented...
-  //if(MainWindow* const main_window = qobject_cast<MainWindow*>(this->GetMainWindow()))
-  //{
-  //  return main_window->compareView(ReferenceImage, Threshold, Output, TempDirectory);
-  //}
+  if ( CAM_Application* anApp = dynamic_cast<CAM_Application*>( SUIT_Session::session()->activeApplication() ) )
+    if ( PVGUI_Module* aPVM = dynamic_cast<PVGUI_Module*>( anApp->module("ParaVis") ) )
+      return aPVM->compareView( ReferenceImage, Threshold, Output, TempDirectory );
   
   return false;
 }
@@ -62,18 +81,8 @@ void PVGUI_ProcessModuleHelper::hideWindow()
 int PVGUI_ProcessModuleHelper::InitializeApplication(int argc, char** argv)
 {
   if ( pqProcessModuleGUIHelper::InitializeApplication( argc, argv ) ){
-    // TODO: Redirect VTK debug output to SALOME GUI message console ...
-    /*this->Implementation->OutputWindow = new pqOutputWindow(0);
-    this->Implementation->OutputWindow->setAttribute(Qt::WA_QuitOnClose, false);
-    this->Implementation->OutputWindow->connect(this->Implementation->OutputWindowAdapter,
-                                                SIGNAL(displayText(const QString&)), SLOT(onDisplayText(const QString&)));
-    this->Implementation->OutputWindow->connect(this->Implementation->OutputWindowAdapter,
-                                                SIGNAL(displayErrorText(const QString&)), SLOT(onDisplayErrorText(const QString&)));
-    this->Implementation->OutputWindow->connect(this->Implementation->OutputWindowAdapter,
-                                                SIGNAL(displayWarningText(const QString&)), SLOT(onDisplayWarningText(const QString&)));
-    this->Implementation->OutputWindow->connect(this->Implementation->OutputWindowAdapter,
-                                                SIGNAL(displayGenericWarningText(const QString&)), SLOT(onDisplayGenericWarningText(const QString&)));
-    vtkOutputWindow::SetInstance(Implementation->OutputWindowAdapter);*/
+    // Redirect VTK debug output to SALOME GUI message console 
+    vtkOutputWindow::SetInstance(Implementation->OutputWindowAdapter);
   }
 
   return 1;