]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Allow setting / getting QByteArray preference item in Python modules.
authorvsr <vsr@opencascade.com>
Thu, 11 Aug 2016 06:43:21 +0000 (09:43 +0300)
committerrnv <rnv@opencascade.com>
Thu, 18 Aug 2016 13:17:05 +0000 (16:17 +0300)
- Additional change to previous commit - revert a way QByteArray value is stored in the string.

src/Qtx/QtxResourceMgr.cxx

index d0d2d356d3dc3399ca7cb2086938694802cc1bb2..022fb88a8dea29a6b34cfb90260302be27d73da8 100644 (file)
@@ -1573,11 +1573,13 @@ bool QtxResourceMgr::value( const QString& sect, const QString& name, QByteArray
   if ( !value( sect, name, val, true ) )
     return false;
 
-  if ( val.startsWith( QLatin1String("@ByteArray(") ) && 
-       val.endsWith( QLatin1Char(')' ) ) ) {
+  if ( val.startsWith( "@ByteArray(" ) && val.endsWith( ')' ) ) {
     baVal = QByteArray( val.midRef( 11, val.size() - 12 ).toLatin1() );
   }
   else  {
+    if ( val.startsWith( "@ByteArray[" ) && val.endsWith( ']' ) ) {
+      val = val.mid( 11, val.size() - 12 );
+    }
     baVal.clear();
     QStringList lst = val.split( QRegExp( "[\\s|,]" ), QString::SkipEmptyParts );
     for ( QStringList::ConstIterator it = lst.begin(); it != lst.end(); ++it )
@@ -2058,11 +2060,15 @@ void QtxResourceMgr::setValue( const QString& sect, const QString& name, const Q
   if ( checkExisting() && value( sect, name, res ) && res == val )
     return;
 
-  QString result;
-  result = QLatin1String("@ByteArray(");
-  result += QString::fromLatin1(val.constData(), val.size());
-  result += QLatin1Char(')');
+  char buf[8];
+  QStringList lst;
+  for ( int i = 0; i < val.size();  i++ )
+  {
+    ::sprintf( buf, "#%02X", (unsigned char)val.at( i ) );
+    lst.append( QString( buf ) );
+  }
 
+  QString result = QString( "@ByteArray[%1]" ).arg( lst.join( " " ) );
   setResource( sect, name, result );
 }