-// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// 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"
#include "CAM_Application.h"
#include "SUITApp_init_python.hxx"
#include "SUIT_DataObjectIterator.h"
#include "LightApp_Application.h"
+#include "LightApp_SelectionMgr.h"
#include "SUIT_DataBrowser.h"
#include "sipAPISalomePyQtGUILight.h"
#endif
#include <QCoreApplication>
+#include <utilities.h>
// Py_ssize_t for old Pythons
// This code is as recommended by"
// 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
\brief Constructor
*/
SALOME_PYQT_ModuleLight::SALOME_PYQT_ModuleLight()
- : LightApp_Module( "noname" ) // name is set explicitly at the module initialization
+ : LightApp_Module( "noname" ), mySelector(0) // name is set explicitly at the module initialization
{
// initialize helper
myHelper = new PyModuleHelper( this );
{
// call helper
myHelper->modelClosed(application()->activeStudy());
+ if (mySelector)
+ mySelector->clear();
LightApp_Module::onModelClosed();
}
/*!
\brief Save module data. Called when user saves study.
\param files output list of files where module stores data
+ \param url study URL
\sa PyModuleHelper::save()
*/
-void SALOME_PYQT_ModuleLight::save( QStringList& files )
+void SALOME_PYQT_ModuleLight::save( QStringList& files, const QString& url )
{
// call helper
- myHelper->save( files );
+ myHelper->save( files, url );
}
/*
- \brief Load module data. Called when user opens study
- and activates module.
- \param files list of files where module data is stored
- \sa PyModuleHelper::load()
+ \brief Load module data. Called when user opens study
+ and activates module.
+ \param files list of files where module data is stored
+ \param url study URL
+ \return \c true if loading has been finished successfully or \c false otherwise
+ \sa PyModuleHelper::load()
*/
-bool SALOME_PYQT_ModuleLight::load( const QStringList& files )
+bool SALOME_PYQT_ModuleLight::load( const QStringList& files, const QString& url )
{
// call helper
- return myHelper->load( files );
+ return myHelper->load( files, url );
}
/*!
}
return obj;
}
+
+/*!
+ \brief not used yet
+*/
+void SALOME_PYQT_ModuleLight::getSelected( DataObjectList& ) const
+{
+ MESSAGE("getSelected");
+}
+
+/*!
+ \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;
+//}
+
+/*!
+ \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);
+}
+
+/*!
+ \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");
+ if (!mySelector)
+ {
+ mySelector = new SALOME_PYQT_Selector(this, this->getApp()->selectionMgr());
+ }
+ mySelector->setLocalEntries(entries);
+ 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);
+}