]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
1) provide customization of translation files formats
authorvsr <vsr@opencascade.com>
Wed, 22 Jun 2005 12:19:50 +0000 (12:19 +0000)
committervsr <vsr@opencascade.com>
Wed, 22 Jun 2005 12:19:50 +0000 (12:19 +0000)
2) loadPixmap() method returns default icon if the resource file is not found

src/Qtx/QtxResourceMgr.cxx
src/Qtx/QtxResourceMgr.h

index f85b9382fca5b021adf4572a70fc3bd2203e65b6..7b791d5bcc22a043ae0647a7569a5dda87c625c2 100644 (file)
 
 #include <stdlib.h>
 
+/* XPM */
+static const char* pixmap_not_found_xpm[] = {
+"16 16 3 1",
+"       c None",
+".      c #000000",
+"+      c #A80000",
+"                ",
+"                ",
+"    .     .     ",
+"   .+.   .+.    ",
+"  .+++. .+++.   ",
+"   .+++.+++.    ",
+"    .+++++.     ",
+"     .+++.      ",
+"    .+++++.     ",
+"   .+++.+++.    ",
+"  .+++. .+++.   ",
+"   .+.   .+.    ",
+"    .     .     ",
+"                ",
+"                ",
+"                "};
+
 /*!
        Class: QtxResourceMgr::Resources
        Level: Internal
@@ -1093,13 +1116,16 @@ QString QtxResourceMgr::langSection() const
   return res;
 }
 
-QPixmap QtxResourceMgr::loadPixmap( const QString& prefix, const QString& name ) const
+QPixmap QtxResourceMgr::loadPixmap( const QString& prefix, const QString& name, const bool useDefault ) const
 {
   initialize();
 
+  static QPixmap defaultPixmap( pixmap_not_found_xpm );
   QPixmap pix;
   for ( ResListIterator it( myResources ); it.current() && pix.isNull(); ++it )
     pix = it.current()->loadPixmap( resSection(), prefix, name );
+  if ( pix.isNull() && useDefault )
+     return defaultPixmap;
   return pix;
 }
 
@@ -1122,6 +1148,17 @@ void QtxResourceMgr::loadLanguage( const QString& pref, const QString& l )
 
   substMap.insert( 'L', lang );
 
+  QString trs;
+  if ( value( langSection(), "translators", trs, false ) && !trs.isEmpty() )
+  {
+    QStringList translators    = QStringList::split( "|", option( "translators" ) );
+    QStringList newTranslators = QStringList::split( "|", trs );
+    for ( uint i = 0; i < newTranslators.count(); i++ )
+      if ( translators.find( newTranslators[i] ) == translators.end() )
+        translators += newTranslators[i];
+    setOption( "translators", translators.join( "|" ) );
+  }
+
   QStringList trList = QStringList::split( "|", option( "translators" ) );
   if ( trList.isEmpty() )
   {
index 2972ca037442174fde6c32a0221dcf1ffd86e2d0..4c657e73c84a4247d0b07bd22966cd8d4c8ff0d2 100644 (file)
@@ -96,7 +96,7 @@ public:
   QString         resSection() const;
   QString         langSection() const;
 
-  QPixmap         loadPixmap( const QString&, const QString& ) const;
+  QPixmap         loadPixmap( const QString&, const QString&, const bool = true ) const;
   void            loadLanguage( const QString& = QString::null, const QString& = QString::null );
 
   void            raiseTranslators( const QString& );