Update preset.
[bertos.git] / wizard / qvariant_converter_old.py
index 7d3afe0f117aaa8aae72cc0f4a23e2a0f181a666..ee410b9f0ce8bb5fa15eb9215c1d8bcbf4b929a1 100644 (file)
@@ -1,18 +1,49 @@
 #!/usr/bin/env python
 # encoding: utf-8
 #
-# Copyright 2009 Develer S.r.l. (http://www.develer.com/)
-# All rights reserved.
+# This file is part of BeRTOS.
+#
+# Bertos is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+#
+# Copyright 2008 Develer S.r.l. (http://www.develer.com/)
 #
-# $Id:$
 #
 # Author: Lorenzo Berni <duplo@develer.com>
 #
 
+"""
+Awful module for the conversion from python types to qvariant, for make the wizard compatible with older version of pyqt (<= 4.4.3)
+"""
+
 from PyQt4.QtCore import *
+import pickle
 
 def getString(qvariant):
-    string = unicode(qvariant.toString())
+    if type(qvariant) == str or type(qvariant) == unicode:
+        string = qvariant
+    else:
+        string = unicode(qvariant.toString())
     return string
 
 def convertString(string):
@@ -20,8 +51,11 @@ def convertString(string):
 
 def getStringList(qvariant):
     string_list = []
-    for element in qvariant.toStringList():
-        string_list.append(unicode(element))
+    if type(qvariant) == list:
+        string_list = qvariant
+    else:
+        for element in qvariant.toStringList():
+            string_list.append(unicode(element))
     return string_list
 
 def convertStringList(string_list):
@@ -31,19 +65,16 @@ def convertStringList(string_list):
     return QVariant(QStringList(result))
 
 def getStringDict(qvariant):
-    dict_str_str = {}
-    qvariant_item = qvariant.toPyObject()
-    if qvariant_item == NotImplemented:
-        qvariant_item = {}
-    for key, value in qvariant_item.items():
-        dict_str_str[unicode(key)] = unicode(value.toString())
+    a = str(qvariant.toByteArray())
+    if len(a) == 0:
+        dict_str_str = {}
+    else:
+        dict_str_str = pickle.loads(a)
     return dict_str_str
 
-def convertStringDict(string_dict):
-    result = {}
-    for key, value in string_dict.items():
-        result[QString(key)] = QVariant(QString(value))
-    return QVariant(result)
+def convertStringDict(dict_str_str):
+    a = pickle.dumps(dict_str_str)
+    return QVariant(QByteArray(a))
 
 def getBool(qvariant):
     return qvariant.toBool()
@@ -52,36 +83,25 @@ def convertBool(boolean):
     return QVariant(boolean)
 
 def getBoolDict(qvariant):
-    dict_str_bool = {}
-    qvariant_item = qvariant.toPyObject()
-    if qvariant_item == NotImplemented:
-        qvariant_item = {}
-    for key, value in qvariant_item.items():
-        dict_str_bool[unicode(key)] = value.toBool()
+    a = str(qvariant.toByteArray())
+    if len(a) == 0:
+        dict_str_bool = {}
+    else:
+        dict_str_bool = pickle.loads(a)
     return dict_str_bool
 
 def convertBoolDict(dict_str_bool):
-    result = {}
-    for key, value in dict_str_bool:
-        result[QString(key)] = QVariant(value)
-    return QVariant(result)
+    a = pickle.dumps(dict_str_bool)
+    return QVariant(QByteArray(a))
 
 def getDict(qvariant):
-    dict_str_variant = {}
-    qvariant_item = qvariant.toPyObject()
-    if qvariant_item == NotImplemented:
-        qvariant_item = {}
-    for key, value in qvariant_item.items():
-        dict_str_variant[unicode(key)] = value
-    return dict_str_variant
+    a = str(qvariant.toByteArray())
+    if len(a) == 0:
+        dict_str_bool = {}
+    else:
+        dict_str_bool = pickle.loads(a)
+    return dict_str_bool
 
 def convertDict(dict_str_variant):
-    result = {}
-    for key, value in dict_str_variant.items():
-        if type(value) == str or type(value) == unicode:
-            result[QString(key)] = QVariant(QString(value))
-        elif type(value) == list:
-            result[QString(key)] = QVariant(QStringList(value))
-        elif type(value) == dict:
-            result[QString(key)] = QVariant(convertDict(value))
-    return QVariant(result)
+    a = pickle.dumps(dict_str_variant)
+    return QVariant(QByteArray(a))