Salome HOME
Additional fix for the "0023270: [CEA 1822] PARAVIS GUI widgets should be instanciate... V8_1_0a1
authorrnv <rnv@opencascade.com>
Fri, 8 Jul 2016 14:51:00 +0000 (17:51 +0300)
committerrnv <rnv@opencascade.com>
Fri, 8 Jul 2016 14:51:00 +0000 (17:51 +0300)
src/PVViewer/PVViewer_GUIElements.cxx
src/PVViewer/PVViewer_GUIElements.h

index 2a6d260ff815f0f1d7482d945c0c2faae0ebaf81..70e3607162455672d8bb499e14b98dc1ed05fabf 100644 (file)
 #include <pqServerResource.h>
 #include <pqSetName.h>
 #include <pqVCRToolbar.h>
+#include <pqPipelineSource.h>
+
+#include <vtkSMSessionProxyManager.h>
+#include <vtkSMProxyIterator.h>
 
 #include <QAction>
 #include <QCoreApplication>
@@ -211,6 +215,7 @@ void PVViewer_GUIElements::buildPVWidgets()
                                 Q_ARG( pqServerManagerModelItem* , NULL ) );
     }
     
+    publishExistingSources();
     myPVWidgetsFlag = true;
   }
 }
@@ -326,3 +331,22 @@ QMenu* PVViewer_GUIElements::getMacrosMenu()  {
   buildPVWidgets();
   return macrosMenu;
 }
+
+void PVViewer_GUIElements::publishExistingSources() {
+  vtkSMSessionProxyManager* pxm = pqActiveObjects::instance().proxyManager();
+  pqServerManagerModel* smmodel = pqApplicationCore::instance()->getServerManagerModel();
+  if( !pxm || !smmodel )
+    return;
+  vtkSMProxyIterator* iter = vtkSMProxyIterator::New();
+  iter->SetModeToOneGroup();
+  iter->SetSessionProxyManager( pxm );
+  for ( iter->Begin( "sources" ); !iter->IsAtEnd(); iter->Next() ) {
+    if ( pqProxy* item = smmodel->findItem<pqProxy*>( iter->GetProxy() ) ) {
+      pqPipelineSource* source = qobject_cast<pqPipelineSource*>( item );
+      QMetaObject::invokeMethod( smmodel,
+                                "sourceAdded",
+                                Qt::AutoConnection,
+                                Q_ARG( pqPipelineSource* , source ) );
+    }
+  }
+}
index dcfba68a9ca4942b315ea6c2055c2c72d55d6757..eead0ef142780a6cdaba9a01df78ea53dd35ee96 100644 (file)
@@ -70,6 +70,8 @@ private:
 
   void buildPVWidgets();
 
+  void publishExistingSources();
+
   // Widgets
   pqPropertiesPanel* propertiesPanel;
   pqPipelineBrowserWidget* pipelineBrowserWidget;