X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSALOME_PYQT%2FSALOME_PYQT_GUILight%2FSALOME_PYQT_ModuleLight.cxx;h=e405a40fa9fbc5e9326a85ae33c5d16788676d8f;hb=e7ede3527d1022d9df3cc38cd9d00d2eefb9f80f;hp=da7043dbd9a0e06e657a0bfbea63f61b999dcc4a;hpb=cac0b4571c951b557e1956d4777cf1e5199637c3;p=modules%2Fgui.git diff --git a/src/SALOME_PYQT/SALOME_PYQT_GUILight/SALOME_PYQT_ModuleLight.cxx b/src/SALOME_PYQT/SALOME_PYQT_GUILight/SALOME_PYQT_ModuleLight.cxx index da7043dbd..e405a40fa 100644 --- a/src/SALOME_PYQT/SALOME_PYQT_GUILight/SALOME_PYQT_ModuleLight.cxx +++ b/src/SALOME_PYQT/SALOME_PYQT_GUILight/SALOME_PYQT_ModuleLight.cxx @@ -1,4 +1,4 @@ -// 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 @@ -20,14 +20,16 @@ // 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" @@ -36,6 +38,7 @@ #endif #include +#include // Py_ssize_t for old Pythons // This code is as recommended by" @@ -60,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 @@ -106,7 +109,7 @@ extern "C" \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 ); @@ -177,6 +180,8 @@ void SALOME_PYQT_ModuleLight::onModelClosed() { // call helper myHelper->modelClosed(application()->activeStudy()); + if (mySelector) + mySelector->clear(); LightApp_Module::onModelClosed(); } @@ -253,24 +258,27 @@ void SALOME_PYQT_ModuleLight::preferencesChanged( const QString& section, const /*! \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 ); } /*! @@ -598,3 +606,71 @@ SALOME_PYQT_DataObjectLight* SALOME_PYQT_ModuleLight::findObject( const QString& } 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); +}