]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Issue 0020424: EDF 1069 GUI: How to add an icon in the GUI of a python module
authorvsr <vsr@opencascade.com>
Tue, 7 Jul 2009 15:20:03 +0000 (15:20 +0000)
committervsr <vsr@opencascade.com>
Tue, 7 Jul 2009 15:20:03 +0000 (15:20 +0000)
Introduce loadIcon() method to the SalomePyQt Python interface

src/SALOME_PYQT/SalomePyQt/SalomePyQt.cxx
src/SALOME_PYQT/SalomePyQt/SalomePyQt.h
src/SALOME_PYQT/SalomePyQt/SalomePyQt.sip
src/SALOME_PYQT/SalomePyQt/SalomePyQt_v4.sip

index dee7dd661a2fa34563e9a5808cbfe54f6efe0af4..b9ce286f1ddc1b73a1e06b1a887b31537bfb0a3c 100644 (file)
@@ -1035,6 +1035,40 @@ QString SalomePyQt::getExistingDirectory( QWidget*       parent,
   return ProcessEvent( new TGetExistingDirectoryEvent( parent, initial, caption ) );
 }
 
+/*!
+  \fn QString SalomePyQt::loadIcon( const QString& filename );
+  \brief Load an icon from the module resources by the specified file name.
+  \param filename icon file name
+  \return icon object
+*/
+class TLoadIconEvent: public SALOME_Event 
+{
+public:
+  typedef QIconSet TResult;
+  TResult     myResult;
+  QString     myModule;
+  QString     myFileName;
+  TLoadIconEvent( const QString& module, const QString& filename ) 
+    : myModule( module ), 
+      myFileName ( filename ) {}
+  virtual void Execute() 
+  {
+    if ( LightApp_Application* anApp = getApplication() ) {
+      if ( !myFileName.isEmpty() ) {
+       QPixmap pixmap = anApp->resourceMgr()->loadPixmap( myModule, 
+                         qApp->translate( myModule.latin1(), 
+                                         myFileName.latin1() ) );
+       if ( !pixmap.isNull() )
+         myResult = QIconSet( pixmap );
+      }
+    }
+  }
+};
+QIconSet SalomePyQt::loadIcon( const QString& module, const QString& filename )
+{
+  return ProcessEvent( new TLoadIconEvent( module, filename ) );
+}
+
 /*!
   SalomePyQt::helpContext
   Opens external browser to display 'context help' information
index 576db0564c665e4cfb9eacfbc2ec7976020f7c02..ef26ad3ada9aaa89fd116a2f20e1084c2908e304 100644 (file)
@@ -25,6 +25,7 @@
 #include <qstring.h>
 #include <qobject.h>
 #include <qcolor.h>
+#include <qiconset.h>
 
 #include <LightApp_Application.h>
 #include <LightApp_Preferences.h>
@@ -125,6 +126,8 @@ public:
   static QStringList       getOpenFileNames    ( QWidget*, const QString&, const QStringList&, const QString& );
   static QString           getExistingDirectory( QWidget*, const QString&, const QString& );
 
+  static QIconSet          loadIcon( const QString&, const QString& );
+
   static void              helpContext( const QString&, const QString& );
 
   static bool              dumpView( const QString& );
index 65f280e46a844cccde9757352fb5d763346862f6..1a95e68f1ed6fde823d07cbe04f56ed29791f0af 100644 (file)
@@ -123,6 +123,7 @@ public:
   static QStringList       getOpenFileNames    ( QWidget*, const QString&, const QStringList&, const QString& );
   static QString           getExistingDirectory( QWidget*, const QString&, const QString& );
 
+  static QIcoSet           loadIcon( const QString&, const QString& );
   static void              helpContext( const QString&, const QString& );
 
   static bool              dumpView( const QString& );
index e6d6d494d072bcd3dc358e540bb888a0e048d4a3..83209528a6ff88c1762b37382a122ab99a385944 100644 (file)
@@ -129,6 +129,7 @@ public:
   static QStringList       getOpenFileNames    ( QWidget*, const QString&, const QStringList&, const QString& ) /ReleaseGIL/ ;
   static QString           getExistingDirectory( QWidget*, const QString&, const QString& ) /ReleaseGIL/ ;
 
+  static QIconSet          loadIcon( const QString&, const QString& ) /ReleaseGIL/ ;
   static void              helpContext( const QString&, const QString& ) /ReleaseGIL/ ;
 
   static bool              dumpView( const QString& ) /ReleaseGIL/ ;