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

List:       kde-commits
Subject:    KDE/kdelibs/kjsembed/kjsembed
From:       Sebastian Sauer <mail () dipe ! org>
Date:       2008-03-27 9:22:29
Message-ID: 1206609749.024046.17597.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 790709 by sebsauer:

handle array=>variantlist also in the extractVariant() method.

 M  +5 -5      qobject_binding.cpp  
 M  +8 -3      variant_binding.cpp  


--- trunk/KDE/kdelibs/kjsembed/kjsembed/qobject_binding.cpp #790708:790709
@@ -545,12 +545,12 @@
                     }
                 }
             }
-            else {
-                QVariant v = KJSEmbed::extractVariant(exec, args[idx]);
-                if (! v.isNull()) {
-                    return new Value<QVariant>(v);
-                }
+
+            QVariant v = KJSEmbed::extractVariant(exec, args[idx]);
+            if (! v.isNull()) {
+                return new Value<QVariant>(v);
             }
+
             break;
     }
 
--- trunk/KDE/kdelibs/kjsembed/kjsembed/variant_binding.cpp #790708:790709
@@ -418,12 +418,17 @@
     KJSEmbed::VariantBinding *imp = \
KJSEmbed::extractBindingImp<KJSEmbed::VariantBinding>(exec,  value );  if( imp )
         return imp->variant();
-    else if( value->type() == KJS::StringType)
+    if( value->type() == KJS::StringType)
         return QVariant(toQString(value->toString(exec)));
-    else if( value->type() == KJS::NumberType)
+    if( value->type() == KJS::NumberType)
         return QVariant(value->toNumber(exec));
-    else if( value->type() == KJS::BooleanType)
+    if( value->type() == KJS::BooleanType)
         return QVariant(value->toBoolean(exec));
+
+    KJS::JSObject *obj = value->toObject( exec );
+    if ( obj && toQString(obj->className()) == "Array" )
+        return convertArrayToList( exec, value );
+
     return QVariant();
 }
 


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

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