Salome HOME
Merge branch 'master' of ssh://git.salome-platform.org/modules/gui
authorabn <adrien.bruneton@cea.fr>
Thu, 16 Oct 2014 11:07:15 +0000 (13:07 +0200)
committerabn <adrien.bruneton@cea.fr>
Thu, 16 Oct 2014 11:07:15 +0000 (13:07 +0200)
14 files changed:
src/PVViewer/CMakeLists.txt
src/PVViewer/PVViewer_EngineWrapper.cxx
src/PVViewer/PVViewer_EngineWrapper.h
src/PVViewer/PVViewer_GUIElements.cxx
src/PVViewer/PVViewer_ViewManager.cxx
src/PVViewer/resources/CMakeLists.txt [new file with mode: 0644]
src/PVViewer/resources/ParaViewFilters.xml [new file with mode: 0755]
src/PVViewer/resources/ParaViewReaders.xml [new file with mode: 0755]
src/PVViewer/resources/ParaViewSources.xml [new file with mode: 0755]
src/PVViewer/resources/ParaViewWriters.xml [new file with mode: 0755]
src/PyInterp/PyInterp_Utils.cxx
src/PyInterp/PyInterp_Utils.h
src/SALOME_PYQT/SalomePyQt/CMakeLists.txt
src/Session/SALOME_Session_Server.cxx

index ac492e4cc538d1fa18c89ad3f8f24bf27be8c53d..8a43e577c36e7eb3fdc0ff265c5e4d4921c8a84a 100644 (file)
@@ -19,6 +19,9 @@
 
 INCLUDE(UseQt4Ext)
 
+# Install ParaView filters, etc ...
+ADD_SUBDIRECTORY(resources)
+
 # --- options ---
 
 INCLUDE_DIRECTORIES(${GUI_INCLUDE_DIRS} 
index 1f1eeee735010a2b0400f44a7126bc9efe395722..e94214adc151bb3abdbf2242021cb2cbcf12918a 100644 (file)
@@ -141,7 +141,6 @@ void PVViewer_EngineWrapper::SetGUIConnected(bool isConnected)
 std::string PVViewer_EngineWrapper::FindOrStartPVServer(int port)
 {
   PyLockWrapper lock;
-
   PyObjWrapper obj(PyObject_CallMethod(paravisEngine, (char*)("FindOrStartPVServer"),
                                          (char *)"i", port ) );
   if (!obj)
@@ -153,3 +152,15 @@ std::string PVViewer_EngineWrapper::FindOrStartPVServer(int port)
 
   return std::string(s);
 }
+
+void PVViewer_EngineWrapper::PutPythonTraceStringToEngine(const char * str)
+{
+  PyLockWrapper lock;
+  PyObjWrapper obj(PyObject_CallMethod(paravisEngine, (char*)("PutPythonTraceStringToEngine"),
+                                       (char *)"s",  str) );
+  if (!obj)
+    {
+      PyErr_Print();
+      throw SALOME_Exception("Unable to invoke PARAVIS engine!");
+    }
+}
index 8f78d685a417962138c328f2e4872b14655b407f..a14993c047e8221456133eaae3dd6cb0f6c65885 100644 (file)
@@ -47,6 +47,7 @@ public:
   bool GetGUIConnected();
   void SetGUIConnected(bool isConnected);
   std::string FindOrStartPVServer(int port);
+  void PutPythonTraceStringToEngine(const char *);
 
 private:
   PVViewer_EngineWrapper();
index 70b4751fe69e6a561d6fa7a9d6a80b29b5162a5b..ff139e682c2cff50d2983a86526ccdd9238db051 100644 (file)
@@ -35,8 +35,8 @@ PVViewer_GUIElements::PVViewer_GUIElements(SUIT_Desktop* desk) :
   propertiesPanel(0), pipelineBrowserWidget(0),
   sourcesMenu(0)
 {
-//  propertiesPanel = new pqPropertiesPanel(desk);
-//  propertiesPanel->hide();
+  propertiesPanel = new pqPropertiesPanel(desk);
+  propertiesPanel->hide();
   pipelineBrowserWidget  = new pqPipelineBrowserWidget(desk);
   pipelineBrowserWidget->hide();
 
index 82aba0ac46b784ff40df4c76ffcbaa7c70ccd96e..a167c9acf8687e8c8515a2ec5fb3d87b36f7769f 100644 (file)
@@ -65,7 +65,7 @@ PVViewer_ViewManager::PVViewer_ViewManager( SUIT_Study* study, SUIT_Desktop* des
 : SUIT_ViewManager( study, desk, new PVViewer_Viewer() ),
   desktop(desk)
 {
-  MESSAGE("PARAVIS - view manager created ...")
+  MESSAGE("PVViewer - view manager created ...")
   setTitle( tr( "PARAVIEW_VIEW_TITLE" ) );
   // Initialize minimal paraview stuff (if not already done)
   ParaviewInitApp(desk, logWindow);
@@ -89,7 +89,7 @@ bool PVViewer_ViewManager::ParaviewInitApp(SUIT_Desktop * aDesktop, LogWindow *
       // Obtain command-line arguments
       int argc = 0;
       char** argv = 0;
-      QString aOptions = getenv("PARAVIS_OPTIONS");
+      QString aOptions = getenv("PARAVIEW_OPTIONS");
       QStringList aOptList = aOptions.split(":", QString::SkipEmptyParts);
       argv = new char*[aOptList.size() + 1];
       QStringList args = QApplication::arguments();
@@ -140,7 +140,7 @@ void PVViewer_ViewManager::ParaviewLoadConfigurations()
   if (!ConfigLoaded)
     {
       SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
-      QString aPath = resMgr->stringValue("resources", "PARAVIS", QString());
+      QString aPath = resMgr->stringValue("resources", "PVViewer", QString());
       if (!aPath.isNull()) {
           MyCoreApp->loadConfiguration(aPath + QDir::separator() + "ParaViewFilters.xml");
           MyCoreApp->loadConfiguration(aPath + QDir::separator() + "ParaViewReaders.xml");
@@ -204,7 +204,7 @@ bool PVViewer_ViewManager::ConnectToExternalPVServer(SUIT_Desktop* aDesktop)
   std::stringstream msg;
 
   // Try to connect to the external PVServer - gives priority to an externally specified URL:
-  QString serverUrlEnv = getenv("PARAVIS_PVSERVER_URL");
+  QString serverUrlEnv = getenv("PARAVIEW_PVSERVER_URL");
   std::string serverUrl;
   if (!serverUrlEnv.isEmpty())
     serverUrl = serverUrlEnv.toStdString();
@@ -235,13 +235,6 @@ bool PVViewer_ViewManager::ConnectToExternalPVServer(SUIT_Desktop* aDesktop)
   return true;
 }
 
-//void PVViewer_ViewManager::onPVViewCreated(SUIT_ViewWindow* w)
-//{
-//  PVViewer_ViewWindow * w2 = dynamic_cast<PVViewer_ViewWindow *>(w);
-//  Q_ASSERT(w2 != NULL);
-//  connect(w2, SIGNAL(applyRequest()), ParaviewBehaviors, SLOT(onEmulateApply()));
-//}
-
 void PVViewer_ViewManager::onEmulateApply()
 {
   PVViewer_GUIElements * guiElements = PVViewer_GUIElements::GetInstance(desktop);
diff --git a/src/PVViewer/resources/CMakeLists.txt b/src/PVViewer/resources/CMakeLists.txt
new file mode 100644 (file)
index 0000000..16d3b4f
--- /dev/null
@@ -0,0 +1,29 @@
+# Copyright (C) 2010-2014  CEA/DEN, EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+SET(dist_salomeres_DATA
+  ParaViewFilters.xml
+  ParaViewReaders.xml
+  ParaViewSources.xml
+  ParaViewWriters.xml
+  )
+
+FOREACH(f ${dist_salomeres_DATA})
+  INSTALL(FILES ${f} DESTINATION ${SALOME_GUI_INSTALL_RES_DATA})
+ENDFOREACH(f ${dist_salomeres_DATA})
diff --git a/src/PVViewer/resources/ParaViewFilters.xml b/src/PVViewer/resources/ParaViewFilters.xml
new file mode 100755 (executable)
index 0000000..22eb6da
--- /dev/null
@@ -0,0 +1,215 @@
+<ParaViewFilters>
+  <Category name="Cosmology" menu_label="Cosmology">
+    <Proxy group="filters" name="HaloFinder" />
+  </Category>
+
+  <Category name="Common" menu_label="&amp;Common" preserve_order="1"
+    show_in_toolbar="1">
+    <Proxy group="filters" name="Calculator" icon=":/pqWidgets/Icons/pqCalculator24.png"/>
+    <Proxy group="filters" name="Contour" icon=":/pqWidgets/Icons/pqIsosurface24.png"/>
+    <Proxy group="filters" name="Clip" icon=":/pqWidgets/Icons/pqClip24.png"/>
+    <Proxy group="filters" name="Cut" icon=":/pqWidgets/Icons/pqSlice24.png"/>
+    <Proxy group="filters" name="Threshold" icon=":/pqWidgets/Icons/pqThreshold24.png"/>
+    <Proxy group="filters" name="ExtractGrid" icon=":/pqWidgets/Icons/pqExtractGrid24.png"/>
+    <Proxy group="filters" name="Glyph" icon=":/pqWidgets/Icons/pqGlyph24.png"/>
+    <Proxy group="filters" name="StreamTracer" icon=":/pqWidgets/Icons/pqStreamTracer24.png"/>
+    <Proxy group="filters" name="WarpVector" icon=":/pqWidgets/Icons/pqWarp24.png"/>
+    <Proxy group="filters" name="GroupDataSets" icon=":/pqWidgets/Icons/pqGroup24.png"/>
+    <Proxy group="filters" name="ExtractHierarchicalLevel" icon=":/pqWidgets/Icons/pqGroupExtract24.png"/>
+  </Category>
+
+  <Category name="DataAnalysis" menu_label="&amp;Data Analysis" show_in_toolbar="1" hide_for_tests="1">
+    <Proxy group="filters" name="Calculator"
+            icon=":/pqWidgets/Icons/pqCalculator24.png" omit_from_toolbar="1"/>
+    <Proxy group="filters" name="ExtractSelection"
+            icon=":/pqWidgets/Icons/pqExtractSelection24.png" />
+    <Proxy group="filters" name="ExtractSelectionOverTime"
+            icon=":/pqWidgets/Icons/pqPlotSelectionOverTime24.png" />
+    <Proxy group="filters" name="ExtractHistogram"
+            icon=":/pqWidgets/Icons/pqHistogram24.png" omit_from_toolbar="1"/>
+    <Proxy group="filters" name="IntegrateAttributes" omit_from_toolbar="1"/>
+    <Proxy group="filters" name="ExtractFieldDataOverTime"
+            icon=":/pqWidgets/Icons/pqPlotGlobalOverTime24.png" />
+    <Proxy group="filters" name="ProbeLine"
+            icon=":/pqWidgets/Icons/pqPlotOverLine24.png" />
+    <Proxy group="filters" name="ProbePoint"
+            icon=":/pqWidgets/Icons/pqProbeLocation24.png" />
+    <Proxy group="filters" name="PlotAttributes" omit_from_toolbar="1"/>
+    <Proxy group="filters" name="PlotOnSortedLines" omit_from_toolbar="1"/>
+    <Proxy group="filters" name="PlotOnIntersectionCurves" omit_from_toolbar="1"/>
+    <Proxy group="filters" name="ProgrammableFilter"
+            icon=":/pqWidgets/Icons/pqProgrammableFilter24.png" omit_from_toolbar="1"/>
+  </Category>
+
+  <Category name="Statistics" menu_label="&amp;Statistics">
+    <Proxy group="filters" name="ContingencyStatistics"/>
+    <Proxy group="filters" name="DescriptiveStatistics"/>
+    <Proxy group="filters" name="KMeans"/>
+    <Proxy group="filters" name="MulticorrelativeStatistics"/>
+    <Proxy group="filters" name="PCAStatistics"/>
+  </Category>
+
+  <Category name="Temporal" menu_label="&amp;Temporal">
+    <Proxy group="filters" name="ParticleTracer" />
+    <Proxy group="filters" name="ParticlePath" />
+    <Proxy group="filters" name="StreakLine" />
+    <Proxy group="filters" name="TemporalCache" />
+    <Proxy group="filters" name="TemporalInterpolator" />
+    <Proxy group="filters" name="TemporalSnapToTimeStep" />
+    <Proxy group="filters" name="TemporalShiftScale" />
+    <Proxy group="filters" name="TemporalStatistics" />
+    <Proxy group="filters" name="TimeToTextConvertor" />
+  </Category>
+
+  <Category name="Material Analysis" menu_label="&amp;Material Analysis">
+    <Proxy group="filters" name="MaterialInterfaceFilter" />
+    <Proxy group="filters" name="IntersectFragments" />
+  </Category>
+
+  <Category name="CTH" menu_label="&amp;CTH">
+    <Proxy group="filters" name="CTHFragmentConnect"/>
+    <Proxy group="filters" name="CTHFragmentIntersect"/>
+    <Proxy group="filters" name="CTHPart" />
+    <Proxy group="filters" name="NonOverlappingLevelIdScalars" />
+    <Proxy group="filters" name="MaterialInterfaceFilter" />
+    <Proxy group="filters" name="AMRDualClip" />
+    <Proxy group="filters" name="AMRDualContour" />
+    <Proxy group="filters" name="ExtractHierarchicalLevel" />
+    <Proxy group="filters" name="ExtractHierarchicalDataSets" />
+  </Category>
+
+  <Category name="AMR" menu_label="&amp;AMR">
+    <Proxy group="filters" name="AMRDualMeshExtractor" />
+    <Proxy group="filters" name="AMRResampleFilter" />
+    <Proxy group="filters" name="AMRSlice" />
+    <Proxy group="filters" name="AMRToMultiBlock" />
+    <Proxy group="filters" name="AMRCutPlane" />
+    <Proxy group="filters" name="OverlappingLevelIdScalars" />
+    <Proxy group="filters" name="ExtractHierarchicalLevel" />
+    <Proxy group="filters" name="ExtractHierarchicalDataSets" />
+  </Category>
+
+  <Proxy group="filters" name="ImageDataToAMR" />
+  <Proxy group="filters" name="UniformGridPartitioner" />
+  <Proxy group="filters" name="AnnotateGlobalData" />
+  <Proxy group="filters" name="Append" />
+  <Proxy group="filters" name="AppendAttributes" />
+  <Proxy group="filters" name="AppendPolyData" />
+  <Proxy group="filters" name="ArbitrarySourceGlyph" />
+  <Proxy group="filters" name="ArbitrarySourceStreamTracer" />
+  <Proxy group="filters" name="BlockIdScalars" />
+  <Proxy group="filters" name="BrownianPoints" />
+  <Proxy group="filters" name="Calculator" />
+  <Proxy group="filters" name="CellCenters" />
+  <Proxy group="filters" name="CellDataToPointData" />
+  <Proxy group="filters" name="CellDerivatives"/>
+  <Proxy group="filters" name="CleanPolyData" />
+  <Proxy group="filters" name="CleanUnstructuredGrid" />
+  <Proxy group="filters" name="CleanUnstructuredGridCells" />
+  <Proxy group="filters" name="Clip" />
+  <Proxy group="filters" name="ClipClosedSurface" />
+  <Proxy group="filters" name="Contour" />
+  <Proxy group="filters" name="Curvatures" />
+  <Proxy group="filters" name="Cut" />
+  <Proxy group="filters" name="CutEverything" />
+  <Proxy group="filters" name="D3" />
+  <Proxy group="filters" name="DataSetSurfaceFilter" />
+  <Proxy group="filters" name="DataSetTriangleFilter" />
+  <Proxy group="filters" name="DecimatePro" />
+  <Proxy group="filters" name="Delaunay2D" />
+  <Proxy group="filters" name="Delaunay3D" />
+  <Proxy group="filters" name="ElevationFilter" />
+  <Proxy group="filters" name="ExtractBlock" />
+  <Proxy group="filters" name="ExtractEdges" />
+  <Proxy group="filters" name="ExtractGeometry" />
+  <Proxy group="filters" name="ExtractGrid" />
+  <Proxy group="filters" name="ExtractHistogram" />
+  <Proxy group="filters" name="ExtractSelection" />
+  <Proxy group="filters" name="ExtractSelectionOverTime" />
+  <Proxy group="filters" name="FeatureEdges" />
+  <Proxy group="filters" name="FFTSelectionOverTime" />
+  <Proxy group="filters" name="GaussianSplatter"/>
+  <Proxy group="filters" name="GenerateIdScalars"/>
+  <Proxy group="filters" name="Glyph" />
+  <Proxy group="filters" name="Gradient" />
+  <Proxy group="filters" name="GridConnectivity" />
+  <Proxy group="filters" name="GroupDataSets" />
+  <Proxy group="filters" name="ImageDataToAMR" />
+  <Proxy group="filters" name="ImageDataToPointSet" />
+  <Proxy group="filters" name="IntegrateAttributes" />
+  <Proxy group="filters" name="IntegrateFlowThroughSurface" />
+  <!--  <Proxy group="filters" name="LevelIdScalars" /> -->
+  <Proxy group="filters" name="LinearExtrusionFilter" />
+  <Proxy group="filters" name="LoopSubdivisionFilter" />
+  <Proxy group="filters" name="MaskPoints" />
+  <Proxy group="filters" name="Median" />
+  <Proxy group="filters" name="MergeBlocks" />
+  <Proxy group="filters" name="MeshQuality" />
+  <Proxy group="filters" name="OctreeDepthLimit" />
+  <Proxy group="filters" name="OctreeDepthScalars" />
+  <Proxy group="filters" name="OutlineCornerFilter" />
+  <Proxy group="filters" name="OutlineFilter" />
+  <Proxy group="filters" name="ParticlePathLines" />
+  <Proxy group="filters" name="ParticleTracer" />
+  <Proxy group="filters" name="PassArrays" />
+  <Proxy group="filters" name="PlotAttributes" />
+  <Proxy group="filters" name="PlotOnIntersectionCurves" />
+  <Proxy group="filters" name="PlotOnSortedLines" />
+  <Proxy group="filters" name="PointDataToCellData" />
+  <Proxy group="filters" name="PolyDataNormals" />
+  <Proxy group="filters" name="Probe" />
+  <Proxy group="filters" name="ProbeLine" />
+  <Proxy group="filters" name="ProbePoint" />
+  <Proxy group="filters" name="ProcessIdScalars" />
+  <Proxy group="filters" name="ProgrammableFilter" />
+  <Proxy group="filters" name="PVConnectivityFilter" />
+  <Proxy group="filters" name="PythonCalculator" />
+  <Proxy group="filters" name="PythonAnnotation" />
+  <Proxy group="filters" name="PythonExtractSelection" />
+  <Proxy group="filters" name="QuadraturePointInterpolator" />
+  <Proxy group="filters" name="QuadraturePointsGenerator" />
+  <Proxy group="filters" name="QuadraturePointStatistics" />
+  <Proxy group="filters" name="QuadratureSchemeDictionaryGenerator" />
+  <Proxy group="filters" name="QuadricClustering" />
+  <Proxy group="filters" name="RectilinearGridConnectivity" />
+  <Proxy group="filters" name="RectilinearGridToPointSet" />
+  <Proxy group="filters" name="ReflectionFilter" />
+  <Proxy group="filters" name="RibbonFilter" />
+  <Proxy group="filters" name="RotationalExtrusionFilter" />
+  <Proxy group="filters" name="ScatterPlot"/>
+  <Proxy group="filters" name="ShrinkFilter" />
+  <Proxy group="filters" name="SmoothPolyDataFilter" />
+  <Proxy group="filters" name="StreamTracer" />
+  <Proxy group="filters" name="Stripper" />
+  <Proxy group="filters" name="StructuredGridOutlineFilter" />
+  <Proxy group="filters" name="Subdivide" />
+  <Proxy group="filters" name="SurfaceVectors" />
+  <Proxy group="filters" name="TemporalCache" />
+  <Proxy group="filters" name="TemporalInterpolator" />
+  <Proxy group="filters" name="TemporalSnapToTimeStep" />
+  <Proxy group="filters" name="TemporalShiftScale" />
+  <Proxy group="filters" name="TemporalStatistics" />
+  <Proxy group="filters" name="TessellatorFilter" />
+  <Proxy group="filters" name="TextureMapToCylinder" />
+  <Proxy group="filters" name="TextureMapToPlane" />
+  <Proxy group="filters" name="TextureMapToSphere" />
+  <Proxy group="filters" name="Threshold" />
+  <Proxy group="filters" name="TimeToTextConvertor" />
+  <Proxy group="filters" name="TransformFilter" />
+  <Proxy group="filters" name="TriangleFilter" />
+  <Proxy group="filters" name="TubeFilter" />
+  <Proxy group="filters" name="UnstructuredGradient" />
+  <Proxy group="filters" name="WarpScalar" />
+  <Proxy group="filters" name="WarpVector" />
+  <Proxy group="filters" name="YoungsMaterialInterface"/>
+  <Proxy group="filters" name="NormalGlyphs" />
+  <Proxy group="filters" name="TableToPolyData" />
+  <Proxy group="filters" name="TableToStructuredGrid" />
+  <Proxy group="filters" name="IsoVolume" />
+
+  <Proxy group="filters" name="GenericClip" />
+  <Proxy group="filters" name="GenericContour" />
+  <Proxy group="filters" name="GenericCut" />
+  <Proxy group="filters" name="GenericStreamTracer" />
+  <Proxy group="filters" name="GenericGeometryFilter" />
+</ParaViewFilters>
diff --git a/src/PVViewer/resources/ParaViewReaders.xml b/src/PVViewer/resources/ParaViewReaders.xml
new file mode 100755 (executable)
index 0000000..dd88e53
--- /dev/null
@@ -0,0 +1,78 @@
+<ParaViewReaders>
+  <!--
+    NOTE: Readers are tried in reverse order that they are present in this
+    list i.e. if two readers can read the same extension, then the reader
+    apperaring later will be tried first when reading the file.
+  -->
+  <ProxyManager type="reader" />
+  <Proxy group="sources" name="LSDynaReader" />
+  <Proxy group="sources" name="PVDReader" />
+  <Proxy group="sources" name="XMLHierarchicalBoxDataReader" />
+  <Proxy group="sources" name="XMLPolyDataReader"/>
+  <Proxy group="sources" name="XMLUnstructuredGridReader" />
+  <Proxy group="sources" name="XMLImageDataReader" />
+  <Proxy group="sources" name="XMLStructuredGridReader" />
+  <Proxy group="sources" name="XMLRectilinearGridReader" />
+  <Proxy group="sources" name="XMLPPolyDataReader" />
+  <Proxy group="sources" name="XMLPUnstructuredGridReader" />
+  <Proxy group="sources" name="XMLPImageDataReader" />
+  <Proxy group="sources" name="XMLPStructuredGridReader" />
+  <Proxy group="sources" name="XMLPRectilinearGridReader" />
+  <Proxy group="sources" name="XMLMultiBlockDataReader" />
+  <Proxy group="sources" name="XMLUniformGridAMRReader" />
+  <Proxy group="sources" name="LegacyVTKFileReader" />
+  <Proxy group="sources" name="pvtkfile" />
+  <Proxy group="sources" name="ensight" />
+  <Proxy group="sources" name="ensightMS" />
+  <Proxy group="sources" name="TecplotReader" />
+  <Proxy group="sources" name="netCDFReader" />
+  <Proxy group="sources" name="byureader" />
+  <Proxy group="sources" name="objreader" />
+  <Proxy group="sources" name="ProStarReader" />
+  <Proxy group="sources" name="XdmfReader" />
+  <Proxy group="sources" name="pdbreader" />
+  <Proxy group="sources" name="xyzreader" />
+  <Proxy group="sources" name="P3DReader" />
+  <Proxy group="sources" name="spcthreader" />
+  <Proxy group="sources" name="SPCTHRestartReader" />
+  <Proxy group="sources" name="spcthhistoryreader" />
+  <Proxy group="sources" name="DEMReader" />
+  <Proxy group="sources" name="vrmlreader" />
+  <Proxy group="sources" name="plyreader" />
+  <Proxy group="sources" name="stlreader" />
+  <Proxy group="sources" name="gaussiancubereader" />
+  <Proxy group="sources" name="ImageReader" />
+  <Proxy group="sources" name="popreader"/>
+  <Proxy group="sources" name="AVSucdSeriesReader" />
+  <Proxy group="sources" name="MetaImageReader" />
+  <Proxy group="sources" name="NrrdReader" />
+  <Proxy group="sources" name="FacetReader" />
+  <Proxy group="sources" name="PNGSeriesReader" />
+  <Proxy group="sources" name="JPEGSeriesReader" />
+  <Proxy group="sources" name="TIFFSeriesReader" />
+  <Proxy group="sources" name="PhastaReader" />
+  <Proxy group="sources" name="EnzoReader" />
+  <Proxy group="sources" name="FlashReader" />
+  <Proxy group="sources" name="SESAMEReader" />
+  <Proxy group="sources" name="CSVReader" />
+  <Proxy group="sources" name="MFIXReader" />
+  <Proxy group="sources" name="FLUENTReader" />
+  <Proxy group="sources" name="OpenFOAMReader" />
+  <Proxy group="sources" name="CosmoReader" />
+  <Proxy group="sources" name="SiloReader"/>
+  <Proxy group="sources" name="ExodusIIReader" />
+  <Proxy group="sources" name="ExodusRestartReader" />
+  <Proxy group="sources" name="SLACReader" />
+  <Proxy group="sources" name="SLACParticleReader" />
+  <Proxy group="sources" name="ParticleReader" />
+  <Proxy group="sources" name="VPICReader" />
+  <Proxy group="sources" name="WindBladeReader" />
+  <Proxy group="sources" name="NetCDFCAMReader" />
+  <Proxy group="sources" name="NetCDFPOPReader" />
+  <Proxy group="sources" name="UnstructuredPOPReader" />
+  <Proxy group="sources" name="PNetCDFPOPReader" />
+  <Proxy group="sources" name="MPASReader" />
+  <Proxy group="sources" name="EnzoParticlesReader" />
+  <Proxy group="sources" name="FlashParticlesReader" />
+  <Proxy group="sources" name="CMLMoleculeReader"/>
+</ParaViewReaders>
diff --git a/src/PVViewer/resources/ParaViewSources.xml b/src/PVViewer/resources/ParaViewSources.xml
new file mode 100755 (executable)
index 0000000..b8b3cf8
--- /dev/null
@@ -0,0 +1,29 @@
+<ParaViewSources>
+  <Proxy group="sources" name="GlyphSource2D" />
+  <Proxy group="sources" name="VectorText" />
+  <Proxy group="sources" name="TimeToTextConvertorSource" />
+  <Proxy group="sources" name="ArrowSource" />
+  <Proxy group="sources" name="Axes" />
+  <Proxy group="sources" name="CubeSource" />
+  <Proxy group="sources" name="ConeSource" />
+  <Proxy group="sources" name="CylinderSource" />
+  <Proxy group="sources" name="DataObjectGenerator" />
+  <Proxy group="sources" name="DiskSource" />
+  <Proxy group="sources" name="HierarchicalFractal" />
+  <Proxy group="sources" name="HyperTreeGridSource" />
+  <Proxy group="sources" name="LineSource" />
+  <Proxy group="sources" name="ImageMandelbrotSource" />
+  <Proxy group="sources" name="OctreeFractal" />
+  <Proxy group="sources" name="OutlineSource" />
+  <Proxy group="sources" name="PlaneSource" />
+  <Proxy group="sources" name="PointSource" />
+  <Proxy group="sources" name="ProgrammableSource" />
+  <Proxy group="sources" name="SphereSource" />
+  <Proxy group="sources" name="SplineSource" />
+  <Proxy group="sources" name="SuperquadricSource" />
+  <Proxy group="sources" name="TextSource" />
+  <Proxy group="sources" name="TimeSource" />
+  <Proxy group="sources" name="Ruler" />
+  <Proxy group="sources" name="RTAnalyticSource" />
+  <Proxy group="sources" name="AMRGaussianPulseSource" />
+</ParaViewSources>
diff --git a/src/PVViewer/resources/ParaViewWriters.xml b/src/PVViewer/resources/ParaViewWriters.xml
new file mode 100755 (executable)
index 0000000..db7fd3e
--- /dev/null
@@ -0,0 +1,28 @@
+<ParaViewWriters>
+  <ProxyManager type="writer" />
+  <Proxy group="writers" name="XMLPVDWriter" />
+  <Proxy group="writers" name="XMLHyperOctreeWriter" />
+  <Proxy group="writers" name="XMLPolyDataWriter" />
+  <Proxy group="writers" name="XMLUnstructuredGridWriter" />
+  <Proxy group="writers" name="XMLStructuredGridWriter" />
+  <Proxy group="writers" name="XMLRectilinearGridWriter" />
+  <Proxy group="writers" name="XMLImageDataWriter" />
+  <Proxy group="writers" name="XMLPPolyDataWriter" />
+  <Proxy group="writers" name="XMLPUnstructuredGridWriter" />
+  <Proxy group="writers" name="XMLPStructuredGridWriter" />
+  <Proxy group="writers" name="XMLPRectilinearGridWriter"/>
+  <Proxy group="writers" name="XMLPImageDataWriter" />
+  <Proxy group="writers" name="XMLMultiBlockDataWriter" />
+  <Proxy group="writers" name="XMLUniformGridAMRWriter" />
+  <Proxy group="writers" name="DataSetWriter" />
+  <Proxy group="writers" name="PDataSetWriter" />
+  <Proxy group="writers" name="PPLYWriter" />
+  <Proxy group="writers" name="PSTLWriter" />
+  <Proxy group="writers" name="MetaImageWriter" />
+  <Proxy group="writers" name="PNGWriter" />
+  <Proxy group="writers" name="XdmfWriter"/>
+  <Proxy group="writers" name="ExodusIIWriter" />
+  <Proxy group="writers" name="EnSightWriter" />
+  <Proxy group="writers" name="CSVWriter" />
+  <Proxy group="writers" name="DataSetCSVWriter" />
+</ParaViewWriters>
index 4fa3bc2ae7247c36e8f44a7089a6d55f066213e6..b9ec47780faae428bc354442c9a9fdc1d0d0405e 100644 (file)
@@ -24,6 +24,8 @@
 
 #include "PyInterp_Utils.h"
 
+#include <iostream>
+
 /*!
   \class PyLockWrapper
   \brief Python GIL wrapper.
@@ -35,6 +37,8 @@
 PyLockWrapper::PyLockWrapper()
 {
   _gil_state = PyGILState_Ensure();
+  // Save current thread state for later comparison
+  _state = PyGILState_GetThisThreadState();
 }
 
 /*!
@@ -42,6 +46,13 @@ PyLockWrapper::PyLockWrapper()
 */
 PyLockWrapper::~PyLockWrapper()
 {
+  PyThreadState * _currState = PyGILState_GetThisThreadState();
+  if (_currState != _state)
+    {
+      std::cout << "!!!!!!!!! PyLockWrapper inconsistency - now entering infinite loop for debugging\n";
+      while(1);
+    }
+
   PyGILState_Release(_gil_state);
 }
 
index c9866bab14166088810891a22172ccc0d46701ed..090ca1fc28a04a5d2c7318e4a63f86f5df8a2cfd 100644 (file)
  */
 class PYINTERP_EXPORT PyLockWrapper
 {
-  PyGILState_STATE _gil_state;
+
 public:
   PyLockWrapper();
   ~PyLockWrapper();
 
 private:
+  PyGILState_STATE _gil_state;
+  PyThreadState * _state;
+
   // "Rule of 3" - Forbid usage of copy operator and copy-constructor
   PyLockWrapper(const PyLockWrapper & another);
   const PyLockWrapper & operator=(const PyLockWrapper & another);
index 0b25339bbe6116ba119f7fb13a3a6d2cfee71d11..4246ca76b247f8c6c7d0426c7eca4a82e402629c 100755 (executable)
@@ -76,7 +76,6 @@ SET(_link_LIBRARIES
   ${OPENGL_LIBRARIES}
   ${QWT_LIBRARY}
   SalomePyQtGUILight
-  SalomeApp
 ) 
 
 # --- headers ---
index 4d34b5e5822f4c08160cc49bb2b8ca8d13929900..c8b52cf4f4c4b7204bd83da04392f17d8ec3561e 100755 (executable)
@@ -68,6 +68,8 @@
 #include CORBA_SERVER_HEADER(SALOME_Session)
 #include CORBA_SERVER_HEADER(SALOMEDS)
 
+#include <time.h>
+
 #include <QDir>
 #include <QFile>
 #include <QApplication>
@@ -647,20 +649,28 @@ int main( int argc, char **argv )
   //PyRun_SimpleString("orb.destroy()");
 
   // Destroy the ORB:
-  MESSAGE("Explicitely destroying the ORB (hoping to kill omniORB threads ...)");
+  sleep(2);
+  //std::cout << "@@@@@ Explicitely destroying the ORB (hoping to kill omniORB threads ...)\n";
   ORB_INIT * init = SINGLETON_<ORB_INIT>::Instance();
   if (init)
     init->explicit_destroy();
+  //std::cout << "@@@@@ ORB destroyed\n";
 
   // After ORB destruction
   if(Py_IsInitialized())
     {
       PyGILState_Ensure();
+      //std::cout << "@@@@@ About to PyFinalize\n";
       Py_Finalize();
+      //std::cout << "@@@@@ DONE PyFinalize\n";
     }
 
   if ( shutdownAll )
-    killOmniNames();
+    {
+      //std::cout << "@@@@@ About to kill omni\n";
+      killOmniNames();
+      //std::cout << "@@@@@ DONE kill omni\n";
+    }
 
   MESSAGE( "Salome_Session_Server:endofserver" );
   return result;