- static QWidget* getDesktop();
- static QWidget* getMainFrame();
- static QMenuBar* getMainMenuBar();
- static QPopupMenu* getPopupMenu( const MenuName );
- static SALOME_Selection* getSelection() /Factory/;
- static int getStudyId();
- static void putInfo( const QString&, int = 0 );
- static const QString getActiveComponent();
- static void updateObjBrowser( int = 0, bool = true );
-
- static QString getFileName ( QWidget*, const QString&, const QStringList&, const QString&, bool );
- static QStringList getOpenFileNames ( QWidget*, const QString&, const QStringList&, const QString& );
- static QString getExistingDirectory( QWidget*, const QString&, const QString& );
-
- static void helpContext( const QString&, const QString& );
-
- static bool dumpView( const QString& );
-
- static int createTool( const QString& );
- static int createTool( const int, const int, int = -1 );
- static int createTool( const int, const QString&, int = -1 );
- static int createTool( QtxAction*, const int, int = -1, int = -1 );
- static int createTool( QtxAction*, const QString&, int = -1, int = -1 );
+/* KeepReference is necessary on method getDesktop with SIP >= 4.15.5 to avoid garbage collection of
+ the Python objects added to the desktop. This causes a small memory leak (the wrapper around desktop
+ object is never garbage collected) but since this object contains only references this is not
+ considered a big problem. With versions < 4.15, it seems that this reference was kept implicitly.
+ No proper solution was found for versions between 4.15 and 4.15.4 (included), so those versions
+ should not be used to compile GUI module.
+*/
+%If (SIP_4_15_5 - )
+ static QWidget* getDesktop() /ReleaseGIL,KeepReference/ ;
+%End
+%If ( - SIP_4_15_5)
+ static QWidget* getDesktop() /ReleaseGIL/ ;
+%End
+
+ static QWidget* getMainFrame() /ReleaseGIL/ ;
+ static QMenuBar* getMainMenuBar() /ReleaseGIL/ ;
+ static QMenu* getPopupMenu( const MenuName ) /ReleaseGIL/ ;
+ static QMenu* getPopupMenu( const QString& ) /ReleaseGIL/ ;
+ static QTreeView* getObjectBrowser() /ReleaseGIL/ ;
+ static SALOME_Selection* getSelection() /Factory,ReleaseGIL/ ;
+ static void setSelection( const QStringList& ) /ReleaseGIL/ ;
+ static int getStudyId() /ReleaseGIL/ ;
+ static void putInfo( const QString&, const int = 0 ) /ReleaseGIL/ ;
+ static const QString getActiveComponent() /ReleaseGIL/ ;
+ static SIP_PYOBJECT getActivePythonModule() /ReleaseGIL/ ;
+ static bool activateModule( const QString& ) /ReleaseGIL/ ;
+ static void updateObjBrowser( const int = 0, bool = true ) /ReleaseGIL/ ;
+
+ static bool isModified() /ReleaseGIL/ ;
+ static void setModified( bool ) /ReleaseGIL/ ;
+
+ static QString getFileName ( QWidget*, const QString&, const QStringList&, const QString&, bool ) /ReleaseGIL/ ;
+ static QStringList getOpenFileNames ( QWidget*, const QString&, const QStringList&, const QString& ) /ReleaseGIL/ ;
+ static QString getExistingDirectory( QWidget*, const QString&, const QString& ) /ReleaseGIL/ ;
+
+ static void createRoot() /ReleaseGIL/ ;
+ static QString createObject( const QString& = QString("") ) /ReleaseGIL/ ;
+ static QString createObject( const QString&,
+ const QString&,
+ const QString&,
+ const QString& = QString("") ) /ReleaseGIL/ ;
+
+ static void setName(const QString& ,const QString& ) /ReleaseGIL/ ;
+ static void setIcon(const QString& ,const QString& ) /ReleaseGIL/ ;
+ static void setToolTip(const QString& ,const QString& ) /ReleaseGIL/ ;
+ static QString getName(const QString& ) /ReleaseGIL/ ;
+ static QString getToolTip(const QString& ) /ReleaseGIL/ ;
+
+ static void setVisibilityState( const QString&, VisibilityState );
+ static VisibilityState getVisibilityState( const QString& );
+
+ static void setObjectPosition( const QString&, int );
+ static int getObjectPosition( const QString& );
+
+ static void setColor( const QString&, const QColor& ) /ReleaseGIL/ ;
+ static QColor getColor( const QString& ) /ReleaseGIL/ ;
+
+ static void setReference( const QString& ,const QString& ) /ReleaseGIL/ ;
+ static QString getReference( const QString& ) /ReleaseGIL/ ;
+
+ static void removeObject(const QString& ) /ReleaseGIL/ ;
+ static void removeChildren(const QString& = QString("") ) /ReleaseGIL/ ;
+ static void removeChild(const QString& = QString("") ) /ReleaseGIL/ ;
+ static QStringList getChildren(const QString&=QString("") , const bool = false) /ReleaseGIL/ ;
+
+ static QIcon loadIcon( const QString&, const QString& ) /ReleaseGIL/ ;
+ static void helpContext( const QString&, const QString& ) /ReleaseGIL/ ;
+
+ static bool dumpView( const QString&, const int = 0 ) /ReleaseGIL/ ;
+
+ static int defaultMenuGroup() /ReleaseGIL/ ;
+
+ static int createTool( const QString&, const QString& = QString() ) /ReleaseGIL/ ;
+ static int createTool( const int, const int, const int = -1 ) /ReleaseGIL/ ;
+ static int createTool( const int, const QString&, const int = -1 ) /ReleaseGIL/ ;
+ static int createTool( QAction*, const int, const int = -1, const int = -1 ) /ReleaseGIL/ ;
+ static int createTool( QAction*, const QString&, const int = -1, const int = -1 ) /ReleaseGIL/ ;