]> 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 14:40:34 +0000 (14:40 +0000)
committervsr <vsr@opencascade.com>
Tue, 7 Jul 2009 14:40:34 +0000 (14:40 +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

index a7f02d0f2b670a1b970643357a2b447b503ea495..b6f0b19ca4f2ff91324cfdab8a64d728229e1cc3 100644 (file)
@@ -1258,6 +1258,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 QIcon 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, 
+                         QApplication::translate( myModule.toLatin1().data(), 
+                                                 myFileName.toLatin1().data() ) );
+       if ( !pixmap.isNull() )
+         myResult = QIcon( pixmap );
+      }
+    }
+  }
+};
+QIcon SalomePyQt::loadIcon( const QString& module, const QString& filename )
+{
+  return ProcessEvent( new TLoadIconEvent( module, filename ) );
+}
+
 /*!
   \brief Open external browser to display context help information.
   \todo
index 7bb7b9c6d970d5256d963ecf234acc54fa03ca59..47a3a24d640904bbfa5b53c61931d17d0c109e3a 100644 (file)
@@ -145,6 +145,8 @@ public:
   static QString           getName(const QString& obj);
   static QString           getToolTip(const QString& obj);
 
+  static QIcon             loadIcon( const QString&, const QString& );
+
   static void              helpContext( const QString&, const QString& );
 
   static bool              dumpView( const QString& );
index 0eaa4c8793ac3cf85c8ac22a5b606e3e492e5b5c..65d493cf81814ff0e3a6465dd9b9f3014ead039c 100644 (file)
@@ -234,6 +234,7 @@ public:
   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& ) /ReleaseGIL/ ;