-// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// 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.
+// 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
#include <SALOME_LifeCycleCORBA.hxx>
#include <Container_init_python.hxx>
+#include <QCoreApplication>
+
//
// NB: Python requests.
// General rule for Python requests created by Python-based GUI modules
// 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
extern "C" {
SALOME_PYQT_EXPORT CAM_Module* createModule()
{
- static bool alreadyInitialized = false;
+ QCoreApplication* app = QCoreApplication::instance();
+ bool alreadyInitialized = app && app->property( "salome_pyqt_gui_light_initialized" ).toBool();
if ( !alreadyInitialized ) {
PyLockWrapper lck; // GIL acquisition
INIT_FUNCTION();
- alreadyInitialized = !alreadyInitialized;
+ if ( app ) app->setProperty( "salome_pyqt_gui_light_initialized", true );
}
return new SALOME_PYQT_Module();
*/
QString SALOME_PYQT_Module::engineIOR() const
{
- // call helper to get IOR from Python module
- static QString ior;
+ // first call helper to get IOR from Python module
+ QString ior = myHelper->engineIOR();
+ // if IOR is still not specified, try default implementation
+ // which loads engine to the default FactoryServer container.
if ( ior.isEmpty() ) {
- // first call helper to get IOR from Python module
- ior = myHelper->engineIOR();
- }
- if ( ior.isEmpty() ) {
- // if IOR is still not specified, try default implementation
- // which loads engine to the default FactoryServer container.
Engines::EngineComponent_var comp;
// temporary solution
try {
myHelper->preferencesChanged( section, parameter );
}
+/*!
+ \brief Called when study is closed
+ \param study study being closed
+ \sa PyModuleHelper::studyClosed()
+*/
+void SALOME_PYQT_Module::studyClosed( SUIT_Study* study )
+{
+ // call helper
+ myHelper->modelClosed( study );
+ SalomeApp_Module::studyClosed( study );
+}
+
/*!
\brief Test if object \a what can be dragged by the user.
\param what data object being tested