[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdepim/certmanager/lib/backends/qgpgme
From:       David Faure <faure () kde ! org>
Date:       2004-03-08 20:59:42
Message-ID: 20040308205942.9FE9699AA () office ! kde ! org
[Download RAW message or body]

CVS commit by faure: 

Fixed parsing and saving of lists with multiple items (now that gpgconf got fixed too)


  M +26 -19    qgpgmecryptoconfig.cpp   1.11


--- kdepim/certmanager/lib/backends/qgpgme/qgpgmecryptoconfig.cpp  #1.10:1.11
@@ -377,24 +377,30 @@ QGpgMECryptoConfigEntry::QGpgMECryptoCon
                     || mArgType == Kleo::CryptoConfigEntry::ArgType_Path
                     || mArgType == Kleo::CryptoConfigEntry::ArgType_URL );
-  if ( isString ) {
-    if ( value.isEmpty() )
-      mValue = QVariant( QString::null ); // not set  [ok with lists too?]
-    else {
-      Q_ASSERT( value[0] == '"' ); // see README.gpgconf
-      value = value.mid( 1 );
-    }
-  }
 
-  if ( !mValue.isValid() ) {
     if ( isList() ) {
       QValueList<QVariant> lst;
       QStringList items = QStringList::split( ',', value );
       for( QStringList::const_iterator valit = items.begin(); valit != items.end(); ++valit ) {
-        lst << QVariant( gpgconf_unescape( *valit ) );
+      QString val = *valit;
+      if ( isString ) {
+        if ( val.isEmpty() )
+          lst << QString::null;
+        else {
+          Q_ASSERT( val[0] == '"' ); // see README.gpgconf
+          lst << QVariant( gpgconf_unescape( val.mid( 1 ) ) );
+        }
+      } else
+        lst << QVariant( gpgconf_unescape( val ) );
       }
       mValue = lst;
+  } else { // not a list
+    if ( isString ) {
+      if ( value.isEmpty() )
+        mValue = QVariant( QString::null ); // not set  [ok with lists too?]
+      else {
+        Q_ASSERT( value[0] == '"' ); // see README.gpgconf
+        mValue = QVariant( gpgconf_unescape( value.mid( 1 ) ) );
+      }
     }
-    else
-      mValue = QVariant( gpgconf_unescape( value ) );
   }
   mDirty = false;
@@ -664,7 +670,8 @@ QString QGpgMECryptoConfigEntry::outputS
       QStringList lst = mValue.toStringList();
       for( QStringList::iterator it = lst.begin(); it != lst.end(); ++it ) {
-        *it = gpgconf_escape( *it );
+        if ( !(*it).isNull() )
+          *it = gpgconf_escape( *it ).prepend( "\"" ); // TODO: null vs empty difference?
       }
-      QString res = lst.join( "," ).prepend( "\"" );
+      QString res = lst.join( "," );
       kdDebug() << res << endl;
       return res;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic