Salome HOME
Porting to Qt-5.9.0, PyQt-5.9.0, sip-4.19.3
[modules/gui.git] / src / SALOME_PYQT / SALOME_PYQT_GUILight / SALOME_PYQT_PyModule.cxx
index a344757d4766bf2ce8871127fa4c2aee11d3b98f..b25bd2c4148c7db3e66b2a8bb6491080976fb767 100644 (file)
@@ -1170,6 +1170,7 @@ void PyModuleHelper::actionActivated()
 void PyModuleHelper::selectionUpdated(const QStringList& entries)
 {
   FuncMsg fmsg( "PyModuleHelper::selectionUpdated()" );
+  MESSAGE("selectionUpdated");
 
   // perform synchronous request to Python event dispatcher
   class SelectionReq : public PyInterp_LockRequest
@@ -1181,10 +1182,13 @@ void PyModuleHelper::selectionUpdated(const QStringList& entries)
       : PyInterp_LockRequest( _py_interp, 0, true ), // this request should be processed synchronously (sync == true)
         myHelper( _helper ),
         myEntries( _entries  )
-    {}
+    {
+      MESSAGE("SelectionReq");
+    }
   protected:
     virtual void execute()
     {
+      MESSAGE("execute");
       myHelper->internalSelectionUpdated( myEntries );
     }
   private:
@@ -1192,11 +1196,6 @@ void PyModuleHelper::selectionUpdated(const QStringList& entries)
     const QStringList& myEntries;
   };
 
-  // get sender action
-  QAction* action = qobject_cast<QAction*>( sender() );
-  if ( !action )
-    return;
-
   // post request
   PyInterp_Dispatcher::Get()->Exec( new SelectionReq( myInterp, this, entries ) );
 }
@@ -1866,7 +1865,12 @@ void PyModuleHelper::setWorkSpace()
   }
 #if SIP_VERSION < 0x040800
   PyObjWrapper pyws( sipBuildResult( 0, "M", aWorkspace, sipClass_QWidget) );
-#else
+#else 
+ #if SIP_VERSION >= 0x041303
+  static const sipTypeDef *sipType_QWidget = 0;
+  if (!sipType_QWidget)
+    sipType_QWidget = sipFindType("QWidget");
+ #endif
   PyObjWrapper pyws( sipBuildResult( 0, "D", aWorkspace, sipType_QWidget , NULL) );
 #endif
   // ... and finally call Python module's setWorkSpace() method (obsolete)
@@ -2271,6 +2275,7 @@ void PyModuleHelper::internalActionActivated( int id )
 void PyModuleHelper::internalSelectionUpdated(const QStringList& entries)
 {
   FuncMsg fmsg("--- PyModuleHelper::internalSelectionUpdated()");
+  MESSAGE("internalSelectionUpdated");
 
   // Python interpreter should be initialized and Python module should be imported first
   if (!myInterp || !myPyModule)
@@ -2281,10 +2286,16 @@ void PyModuleHelper::internalSelectionUpdated(const QStringList& entries)
 #if SIP_VERSION < 0x040800
   PyObjWrapper sipList(sipBuildResult(0, "M", theList, sipClass_QStringList));
 #else
+ #if SIP_VERSION >= 0x041303
+  static const sipTypeDef *sipType_QStringList = 0;
+  if (!sipType_QStringList)
+    sipType_QStringList = sipFindType("QStringList");
+ #endif
   PyObjWrapper sipList( sipBuildResult( 0, "D", theList, sipType_QStringList, NULL ) );
 #endif
   if (PyObject_HasAttrString(myPyModule, (char*) "onSelectionUpdated"))
     {
+      MESSAGE("call onSelectionUpdated");
       PyObjWrapper res(PyObject_CallMethod(myPyModule, (char*) "onSelectionUpdated", (char*) "O", sipList.get()));
 
       if (!res)
@@ -2353,6 +2364,11 @@ void PyModuleHelper::internalContextMenu( const QString& context, QMenu* menu )
 #if SIP_VERSION < 0x040800
   PyObjWrapper sipPopup( sipBuildResult( 0, "M", menu, sipClass_QMenu ) );
 #else
+ #if SIP_VERSION >= 0x041303
+  static const sipTypeDef *sipType_QMenu = 0;
+  if (!sipType_QMenu)
+    sipType_QMenu = sipFindType("QMenu");
+ #endif
   PyObjWrapper sipPopup( sipBuildResult( 0, "D", menu, sipType_QMenu, NULL ) );
 #endif
 
@@ -2573,6 +2589,11 @@ void PyModuleHelper::internalLoad( const QStringList& files, const QString& url,
 #if SIP_VERSION < 0x040800
   PyObjWrapper sipList( sipBuildResult( 0, "M", theList, sipClass_QStringList ) );
 #else
+ #if SIP_VERSION >= 0x041303
+  static const sipTypeDef *sipType_QStringList = 0;
+  if (!sipType_QStringList)
+    sipType_QStringList = sipFindType("QStringList");
+ #endif
   PyObjWrapper sipList( sipBuildResult( 0, "D", theList, sipType_QStringList, NULL ) );
 #endif
   if ( PyObject_HasAttrString(myPyModule , (char*)"openFiles") ) {
@@ -2736,6 +2757,11 @@ void PyModuleHelper::internalDropObjects( const DataObjectList& what, SUIT_DataO
 #if SIP_VERSION < 0x040800
   PyObjWrapper sipList( sipBuildResult( 0, "M", theList, sipClass_QStringList) );
 #else
+ #if SIP_VERSION >= 0x041303
+  static const sipTypeDef *sipType_QStringList = 0;
+  if (!sipType_QStringList)
+    sipType_QStringList = sipFindType("QStringList");
+ #endif
   PyObjWrapper sipList( sipBuildResult( 0, "D", theList, sipType_QStringList, NULL) );
 #endif
   if ( PyObject_HasAttrString(myPyModule, (char*)"dropObjects") ) {