Salome HOME
Merge remote-tracking branch 'origin/V8_3_BR' into ngr/python3_dev
[modules/gui.git] / src / SALOME_PYQT / SALOME_PYQT_GUILight / SALOME_PYQT_ModuleLight.cxx
index a0f8a41bad11492206b70a418c338906a51dfd13..e405a40fa9fbc5e9326a85ae33c5d16788676d8f 100644 (file)
@@ -20,8 +20,8 @@
 // File   : SALOME_PYQT_ModuleLight.cxx
 // Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
 
-#include "SALOME_PYQT_DataModelLight.h"
 #include "SALOME_PYQT_ModuleLight.h"
+#include "SALOME_PYQT_DataModelLight.h"
 #include "SALOME_PYQT_PyModule.h"
 #include "SALOME_PYQT_Selector.h"
 
@@ -63,7 +63,7 @@
 // and to get C API from sip : sipBuildResult for example
 //
 
-#define INIT_FUNCTION initSalomePyQtGUILight
+#define INIT_FUNCTION PyInit_SalomePyQtGUILight
 #if defined(SIP_STATIC_MODULE)
 extern "C" void INIT_FUNCTION();
 #else
@@ -180,6 +180,8 @@ void SALOME_PYQT_ModuleLight::onModelClosed()
 {
   // call helper
   myHelper->modelClosed(application()->activeStudy());
+  if (mySelector)
+    mySelector->clear();
   LightApp_Module::onModelClosed();
 }
 
@@ -605,37 +607,46 @@ SALOME_PYQT_DataObjectLight* SALOME_PYQT_ModuleLight::findObject( const QString&
   return obj;
 }
 
+/*!
+  \brief not used yet
+*/
 void SALOME_PYQT_ModuleLight::getSelected( DataObjectList& ) const
 {
   MESSAGE("getSelected");
 }
 
-unsigned long SALOME_PYQT_ModuleLight::getModifiedTime() const
-{
-  MESSAGE("getModifiedTime");
-
-}
-
-
-SUIT_DataObject* SALOME_PYQT_ModuleLight::root() const
-{
-  MESSAGE("root");
-
-}
+/*!
+  \brief not used yet
+*/
+//unsigned long SALOME_PYQT_ModuleLight::getModifiedTime() const
+//{
+//  MESSAGE("getModifiedTime");
+//  return 0;
+//}
 
+/*!
+  \brief not used yet
+*/
+//SUIT_DataObject* SALOME_PYQT_ModuleLight::root() const
+//{
+//  MESSAGE("root");
+//  return NULL;
+//}
 
-void SALOME_PYQT_ModuleLight::setSelected( const DataObjectList&, const bool)
+/*!
+  \brief Used to notify a Python light module of a modification of selection in study (propagation of a remote selection)
+  \param list of study entries
+*/
+void SALOME_PYQT_ModuleLight::setSelected( const QStringList& entries, const bool isUnused)
 {
   MESSAGE("setSelected");
-
+  return myHelper->selectionUpdated(entries);
 }
 
-
-//void SALOME_PYQT_ModuleLight::selectionChanged()
-//{
-//  MESSAGE("signal selectionChanged");
-//}
-
+/*!
+  \brief called by Python module to notify a list of study entries locally selected (for selection propagation)
+  \param list of study entries
+*/
 void SALOME_PYQT_ModuleLight::setLocalSelected(const QStringList & entries)
 {
   MESSAGE("setLocalSelected");
@@ -644,6 +655,22 @@ void SALOME_PYQT_ModuleLight::setLocalSelected(const QStringList & entries)
        mySelector = new SALOME_PYQT_Selector(this, this->getApp()->selectionMgr());
     }
   mySelector->setLocalEntries(entries);
-  emit selectionChanged();
+  emit localSelectionChanged();
 }
 
+void SALOME_PYQT_ModuleLight::enableSelector()
+{
+  MESSAGE("enableSelector");
+  if (!mySelector)
+    {
+         mySelector = new SALOME_PYQT_Selector(this, this->getApp()->selectionMgr());
+    }
+  mySelector->setEnabled(true);
+}
+
+void SALOME_PYQT_ModuleLight::disableSelector()
+{
+  MESSAGE("disableSelector");
+  if (mySelector)
+       mySelector->setEnabled(false);
+}