]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Merge remote branch 'origin/bsr/resmgr'
authorvsr <vsr@opencascade.com>
Tue, 7 May 2019 11:21:19 +0000 (14:21 +0300)
committervsr <vsr@opencascade.com>
Tue, 7 May 2019 11:21:19 +0000 (14:21 +0300)
CMakeLists.txt
doc/salome/gui/input/python_viewer.rst
src/LightApp/LightApp_Application.cxx
src/LightApp/resources/LightApp.xml
src/SALOME_PY/SalomePy.cxx
src/STD/STD_Application.cxx
src/SalomeApp/resources/SalomeApp.xml

index d48258a4e8747406618f255a2560e75769cbd519..874bd0835f1295298f4f09a2b9caed19c24f5e49 100644 (file)
@@ -33,8 +33,8 @@ ENDIF(WIN32)
 STRING(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UC)
 
 SET(${PROJECT_NAME_UC}_MAJOR_VERSION 9)
-SET(${PROJECT_NAME_UC}_MINOR_VERSION 2)
-SET(${PROJECT_NAME_UC}_PATCH_VERSION 2)
+SET(${PROJECT_NAME_UC}_MINOR_VERSION 3)
+SET(${PROJECT_NAME_UC}_PATCH_VERSION 0)
 SET(${PROJECT_NAME_UC}_VERSION
   ${${PROJECT_NAME_UC}_MAJOR_VERSION}.${${PROJECT_NAME_UC}_MINOR_VERSION}.${${PROJECT_NAME_UC}_PATCH_VERSION})
 SET(${PROJECT_NAME_UC}_VERSION_DEV 1)
index 0d0c1e74f04c07be4f199b47903e97f11e5c7f78..e7166cb8ef6bd0c57e2e32c049fe946c5b43cab8 100644 (file)
@@ -135,9 +135,13 @@ The following options are available:
 - **Save settings as default** button stores the applied Python viewer settings in the SALOME preferences .xml file. The settings will be restored in the current and next SALOME sessions.
 
 The buttons in in the bottom part of dialog box peform the following actions:
+
 - **OK** button applies preferences to the editor;
+
 - **Cancel** button rejects changes;
+
 - **Defaults** button restores preferences from applicaion's defaults;
+
 - **Help** button opens Help browser.
 
 
index c084037b20ec770da1067198313e99c77f81de91..f33201e5b046166fb6557b7906f44e21a8b67ae7 100644 (file)
@@ -1510,7 +1510,8 @@ SUIT_ViewManager* LightApp_Application::getViewManager( const QString& vmType, c
       aVM = anActiveVM;
     }
 
-  if ( aVM && !aVM->getDetached() && create )
+  bool keepDetached = property("keep_detached").toBool();
+  if ( aVM && (!aVM->getDetached() || keepDetached) && create )
   {
     if ( !aVM->getActiveView() )
       {
index e7896b1a7a1727d350d6142771135b47a72d6862..fd64450eec99cacb9d32a033e895db3acdec50a2 100644 (file)
@@ -6,7 +6,7 @@
     <parameter name="file"       value="no"/>
     <parameter name="key"        value="no"/>
     <parameter name="interp"     value="no"/>
-    <parameter name="modules"    value="LIGHT,PYLIGHT"/>
+    <parameter name="modules"    value="SHAPER,LIGHT,PYLIGHT"/>
   </section>
   <section name="language">
     <!-- Language settings (resource manager)-->
index 535781ebf900c6a5aaffb938265a522df7f8663c..90cba2fe2d1a4af7a3ca5645a34d15862293384f 100644 (file)
@@ -147,7 +147,7 @@ enum {
   \param toCreate window find/create mode
   \return VTK window pointer or 0 if it could not be found/created
 */
-static SVTK_ViewWindow* GetVTKViewWindow( int toCreate = __FindOrCreate ) {
+static SVTK_ViewWindow* GetVTKViewWindow( int toCreate = __FindOrCreate, int toKeepDetached = 0 ) {
   SVTK_ViewWindow* aVW = 0;
   if ( SUIT_Session::session() ) {
     // get application
@@ -170,7 +170,9 @@ static SVTK_ViewWindow* GetVTKViewWindow( int toCreate = __FindOrCreate ) {
           }
         }
         else {
+          anApp->setProperty("keep_detached", toKeepDetached != 0 );
           SVTK_ViewManager* aVM = dynamic_cast<SVTK_ViewManager*>( anApp->getViewManager( "VTKViewer", toCreate == __FindOrCreate ) );
+          anApp->setProperty("keep_detached", QVariant());
           if ( aVM ) {
             aVW = dynamic_cast<SVTK_ViewWindow*>( aVM->getActiveView() );
             // VSR : When new view window is created it can be not active yet at this moment,
@@ -209,13 +211,14 @@ public:
   typedef PyObject* TResult;
   TResult myResult;
   int     myCreate;
-  TGetRendererEvent( bool toCreate )
-    : myResult( Py_None ), myCreate( toCreate ) {}
+  int     myKeepDetached;
+  TGetRendererEvent( bool toCreate, bool toKeepDetached )
+    : myResult( Py_None ), myCreate( toCreate ), myKeepDetached( toKeepDetached ) {}
   virtual void Execute()
   {
     PyTypeObject* aPyClass = ::GetPyClass( "vtkRenderer" );
     SVTK_ViewWindow* aVTKViewWindow = 
-      ::GetVTKViewWindow( myCreate ? __Create : __FindOrCreate );
+      ::GetVTKViewWindow( myCreate ? __Create : __FindOrCreate, myKeepDetached );
     if( aVTKViewWindow && aPyClass ) {
       vtkRenderer* aVTKObject = aVTKViewWindow->getRenderer();
 #if VTK_XVERSION < 50700
@@ -231,10 +234,11 @@ extern "C" SALOMEPY_EXPORT PyObject* libSalomePy_getRenderer( PyObject* self, Py
 {
   PyObject* aResult = Py_None;
   int toCreate = 0;
-  if ( !PyArg_ParseTuple( args, "|i:getRenderer", &toCreate ) )
+  int toKeepDetached = 0;
+  if ( !PyArg_ParseTuple( args, "|ii:getRenderer", &toCreate, &toKeepDetached ) )
     PyErr_Print();
   else
-    aResult = ProcessEvent( new TGetRendererEvent( toCreate ) );
+    aResult = ProcessEvent( new TGetRendererEvent( toCreate, toKeepDetached ) );
   return aResult;
 }
 
@@ -262,13 +266,14 @@ public:
   typedef PyObject* TResult;
   TResult myResult;
   int     myCreate;
-  TGetRenderWindowEvent( bool toCreate )
-    : myResult( Py_None ), myCreate( toCreate ) {}
+  int     myKeepDetached;
+  TGetRenderWindowEvent( bool toCreate, bool toKeepDetached )
+    : myResult( Py_None ), myCreate( toCreate ), myKeepDetached( toKeepDetached ) {}
   virtual void Execute()
   {
     PyTypeObject* aPyClass = ::GetPyClass( "vtkRenderWindow" );
     SVTK_ViewWindow* aVTKViewWindow = 
-      ::GetVTKViewWindow( myCreate ? __Create : __FindOrCreate );
+      ::GetVTKViewWindow( myCreate ? __Create : __FindOrCreate, myKeepDetached );
     if( aVTKViewWindow && aPyClass ) {
       vtkRenderWindow* aVTKObject = aVTKViewWindow->getRenderWindow();
 #if VTK_XVERSION < 50700
@@ -284,10 +289,11 @@ extern "C" SALOMEPY_EXPORT PyObject* libSalomePy_getRenderWindow( PyObject* self
 {
   PyObject* aResult = Py_None;
   int toCreate = 0;
-  if ( !PyArg_ParseTuple( args, "|i:getRenderWindow", &toCreate ) )
+  int toKeepDetached = 0;
+  if ( !PyArg_ParseTuple( args, "|ii:getRenderWindow", &toCreate, &toKeepDetached ) )
     PyErr_Print();
   else
-    aResult = ProcessEvent( new TGetRenderWindowEvent( toCreate ) );
+    aResult = ProcessEvent( new TGetRenderWindowEvent( toCreate, toKeepDetached ) );
   return aResult;
 }
 
@@ -315,13 +321,14 @@ public:
   typedef PyObject* TResult;
   TResult myResult;
   int     myCreate;
-  TGetRenderWindowInteractorEvent( bool toCreate )
-    : myResult( Py_None ), myCreate( toCreate ) {}
+  int     myKeepDetached;
+  TGetRenderWindowInteractorEvent( bool toCreate, bool toKeepDetached )
+    : myResult( Py_None ), myCreate( toCreate ), myKeepDetached( toKeepDetached ) {}
   virtual void Execute()
   {
     PyTypeObject* aPyClass = ::GetPyClass( "vtkRenderWindowInteractor" );
     SVTK_ViewWindow* aVTKViewWindow = 
-      ::GetVTKViewWindow( myCreate ? __Create : __FindOrCreate );
+      ::GetVTKViewWindow( myCreate ? __Create : __FindOrCreate, myKeepDetached );
     if( aVTKViewWindow && aPyClass ) {
       vtkRenderWindowInteractor* aVTKObject = aVTKViewWindow->getInteractor();
 #if VTK_XVERSION < 50700
@@ -337,10 +344,11 @@ extern "C" SALOMEPY_EXPORT PyObject* libSalomePy_getRenderWindowInteractor( PyOb
 {
   PyObject* aResult = Py_None;
   int toCreate = 0;
-  if ( !PyArg_ParseTuple( args, "|i:getRenderWindowInteractor", &toCreate ) )
+  int toKeepDetached = 0;
+  if ( !PyArg_ParseTuple( args, "|ii:getRenderWindowInteractor", &toCreate, &toKeepDetached ) )
     PyErr_Print();
   else
-    aResult = ProcessEvent( new TGetRenderWindowInteractorEvent( toCreate ) );
+    aResult = ProcessEvent( new TGetRenderWindowInteractorEvent( toCreate, toKeepDetached ) );
   return aResult;
 }
 
index c60e8e5c29daf5fd7798d00d520ce8aa87034c5c..523d571dfdad6193166f14371a423d4954128a2b 100644 (file)
@@ -777,7 +777,8 @@ SUIT_ViewManager* STD_Application::viewManager( const QString& vmType ) const
   SUIT_ViewManager* vm = 0;
   for ( QList<SUIT_ViewManager*>::const_iterator it = myViewMgrs.begin(); it != myViewMgrs.end() && !vm; ++it )
   {
-    if ( (*it)->getType() == vmType && !(*it)->getDetached())
+    bool keepDetached = property("keep_detached").toBool();
+    if ( (*it)->getType() == vmType && (!(*it)->getDetached() || keepDetached))
       vm = *it;
   }
   return vm;
index 31c0a93e62543c9b85771cca8bb37cc173bf370c..01c61f0e62066563baaa613cef414bb9de110e54 100644 (file)
@@ -9,7 +9,7 @@
     <parameter name="killall"    value="no"/>
     <parameter name="pinter"     value="no"/>
     <parameter name="noexcepthandler"  value="no"/>
-    <parameter name="modules"    value="GEOM,SMESH,HEXABLOCK,FIELDS,YACS,PARAVIS,HOMARD,JOBMANAGER"/>
+    <parameter name="modules"    value="GEOM,SHAPER,SMESH,HEXABLOCK,FIELDS,YACS,PARAVIS,HOMARD,JOBMANAGER"/>
     <parameter name="pyModules"  value=""/>
     <parameter name="embedded"   value="SalomeAppEngine,study,cppContainer,registry,moduleCatalog"/>
     <parameter name="standalone" value=""/>