Attempt to resolve the QVariant conversion problems on pyqt <= 4.4.3
[bertos.git] / wizard / qvariant_converter_old.py
1 #!/usr/bin/env python
2 # encoding: utf-8
3 #
4 # Copyright 2009 Develer S.r.l. (http://www.develer.com/)
5 # All rights reserved.
6 #
7 # $Id:$
8 #
9 # Author: Lorenzo Berni <duplo@develer.com>
10 #
11
12 from PyQt4.QtCore import *
13
14 def getString(qvariant):
15     string = unicode(qvariant.toString())
16     return string
17
18 def convertString(string):
19     return QVariant(string)
20
21 def getStringList(qvariant):
22     string_list = []
23     for element in qvariant.toStringList():
24         string_list.append(unicode(element))
25     return string_list
26
27 def convertStringList(string_list):
28     result = []
29     for element in string_list:
30         result.append(QString(element))
31     return QVariant(QStringList(result))
32
33 def getStringDict(qvariant):
34     dict_str_str = {}
35     qvariant_item = qvariant.toPyObject()
36     if qvariant_item == NotImplemented:
37         qvariant_item = {}
38     for key, value in qvariant_item.items():
39         dict_str_str[unicode(key)] = unicode(value.toString())
40     return dict_str_str
41
42 def convertStringDict(string_dict):
43     result = {}
44     for key, value in string_dict.items():
45         result[QString(key)] = QVariant(QString(value))
46     return QVariant(result)
47
48 def getBool(qvariant):
49     return qvariant.toBool()
50
51 def convertBool(boolean):
52     return QVariant(boolean)
53
54 def getBoolDict(qvariant):
55     dict_str_bool = {}
56     qvariant_item = qvariant.toPyObject()
57     if qvariant_item == NotImplemented:
58         qvariant_item = {}
59     for key, value in qvariant_item.items():
60         dict_str_bool[unicode(key)] = value.toBool()
61     return dict_str_bool
62
63 def convertBoolDict(dict_str_bool):
64     result = {}
65     for key, value in dict_str_bool:
66         result[QString(key)] = QVariant(value)
67     return QVariant(result)
68
69 def getDict(qvariant):
70     dict_str_variant = {}
71     qvariant_item = qvariant.toPyObject()
72     if qvariant_item == NotImplemented:
73         qvariant_item = {}
74     for key, value in qvariant_item.items():
75         dict_str_variant[unicode(key)] = value
76     return dict_str_variant
77
78 def convertDict(dict_str_variant):
79     result = {}
80     for key, value in dict_str_variant.items():
81         if type(value) == str or type(value) == unicode:
82             result[QString(key)] = QVariant(QString(value))
83         elif type(value) == list:
84             result[QString(key)] = QVariant(QStringList(value))
85         elif type(value) == dict:
86             result[QString(key)] = QVariant(convertDict(value))
87     return QVariant(result)