Salome HOME
PARAVIS HTML docs
[modules/paravis.git] / src / PVGUI / PVGUI_ProcessModuleHelper.cxx
index cf03dc254b8369a189585686917d0b43d7ab9598..642c46acfed130222723bbf5ae53dfa062a65872 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())
 {
 }
 
@@ -30,67 +51,80 @@ void PVGUI_ProcessModuleHelper::PrintSelf(ostream& os, vtkIndent indent)
 }
 
 //-----------------------------------------------------------------------------
+/*!
+  \brief Used by ParaView testing capabilities, not usable in SALOME.
+ */
 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;
 }
 
 //-----------------------------------------------------------------------------
+/*! 
+  \brief Reimplemented to suppress default ParaView client behavior. Does nothing.
+*/
 void PVGUI_ProcessModuleHelper::showOutputWindow()
 {
   // Do nothing here
 }
 
 //-----------------------------------------------------------------------------
+/*! 
+  \brief Reimplemented to suppress default ParaView client behavior. Does nothing.
+*/
 void PVGUI_ProcessModuleHelper::showWindow()
 {
 }
 
 //-----------------------------------------------------------------------------
+/*! 
+  \brief Reimplemented to suppress default ParaView client behavior. Does nothing.
+*/
 void PVGUI_ProcessModuleHelper::hideWindow()
 {
 }
 
 //-----------------------------------------------------------------------------
+/*! 
+  \brief Calls the base implementation and redirects ParaView output to PVGUI_OutputWindowAdapter instance.
+  \sa PVGUI_OutputWindowAdapter
+*/
 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;
 }
 
 //-----------------------------------------------------------------------------
+/*! 
+  \brief Reimplemented to suppress default ParaView client behavior and not to run Qt event loop. Does nothing.
+*/
 int PVGUI_ProcessModuleHelper::appExec()
 {
   return 0;
 }
 
+/*! 
+  \brief Reimplemented to suppress default ParaView client behavior and not to exit after the client initalization. Does nothing.
+*/
 //-----------------------------------------------------------------------------
 int PVGUI_ProcessModuleHelper::postAppExec()
 {
   return 0;
 }
 
+/*! 
+  \brief Reimplemented to suppress default ParaView client behavior. Does nothing.
+*/
 //-----------------------------------------------------------------------------
 QWidget* PVGUI_ProcessModuleHelper::CreateMainWindow()
 {
@@ -98,6 +132,9 @@ QWidget* PVGUI_ProcessModuleHelper::CreateMainWindow()
 }
 
 //-----------------------------------------------------------------------------
+/*! 
+  \brief Reimplemented to suppress default ParaView client behavior. Does nothing.
+*/
 void PVGUI_ProcessModuleHelper::ExitApplication()
 {
   // Cannot exit here, so do nothing