Add module for compatibility with the new QVariant rapresentation in PyQt 4.5.x
author(no author) <(no author)@38d2e660-2303-0410-9eaa-f027e97ec537>
Mon, 13 Jul 2009 13:05:40 +0000 (13:05 +0000)
committer(no author) <(no author)@38d2e660-2303-0410-9eaa-f027e97ec537>
Mon, 13 Jul 2009 13:05:40 +0000 (13:05 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@2757 38d2e660-2303-0410-9eaa-f027e97ec537

wizard/qvariant_converter.py
wizard/qvariant_converter_newer.py [new file with mode: 0644]

index 8c4cfd87bf0fa0c405e952e0b0aebab926247363..81181965121f979cc457a930f06e344c94e6d2ea 100644 (file)
@@ -35,7 +35,9 @@
 
 from PyQt4.QtCore import PYQT_VERSION_STR
 
-if PYQT_VERSION_STR > "4.4.3":
+if PYQT_VERSION_STR <= "4.4.3":
+    from qvariant_converter_old import *
+elif PYQT_VERSION_STR < "4.5.0":
     from qvariant_converter_new import *
 else:
-    from qvariant_converter_old import *
+    from qvariant_converter_newer import *
diff --git a/wizard/qvariant_converter_newer.py b/wizard/qvariant_converter_newer.py
new file mode 100644 (file)
index 0000000..5335032
--- /dev/null
@@ -0,0 +1,105 @@
+#!/usr/bin/env python
+# encoding: utf-8
+#
+# This file is part of slimqc.
+#
+# Slimqc 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 2009 Develer S.r.l. (http://www.develer.com/)
+#
+# $Id:$
+#
+# Author: Lorenzo Berni <duplo@develer.com>
+#
+
+from PyQt4.QtCore import *
+
+def getString(qvariant):
+    if type(qvariant) != QVariant:
+        return qvariant
+    string = unicode(qvariant.toString())
+    return string
+
+def convertString(string):
+    return QVariant(string)
+
+def getStringList(qvariant):
+    if type(qvariant) != QVariant:
+        return qvariant
+    string_list = [unicode(string) for string in qvariant.toStringList()]
+    return string_list
+
+def convertStringList(string_list):
+    return QVariant(QStringList(string_list))
+
+def getStringDict(qvariant):
+    dict_str_str = {}
+    try:
+        for key, value in qvariant.toPyObject().items():
+            dict_str_str[unicode(key)] = unicode(value)
+    except:
+        pass
+    return dict_str_str
+
+def convertStringDict(string_dict):
+    result_dict = {}
+    for key, value in string_dict.items():
+        result_dict[QString(key)] = QString(value)
+    return QVariant(result_dict)
+
+def getBool(qvariant):
+    return qvariant.toBool()
+
+def convertBool(boolean):
+    return QVariant(boolean)
+
+def getBoolDict(qvariant):
+    dict_str_bool = {}
+    try:
+        for key, value in qvariant.toPyObject().items():
+            dict_str_bool[unicode(key)] = value.toBool()
+    except:
+        pass
+    return dict_str_bool
+
+def convertBoolDict(dict_str_bool):
+    result_dict = {}
+    for key, value in dict_str_bool.items():
+        result_dict[QString(key)] = QVariant(value)
+    return QVariant(result_dict)
+
+def getDict(qvariant):
+    dict_str_variant = {}
+    try:
+        for key, value in qvariant.toPyObject().items():
+            dict_str_variant[unicode(key)] = value
+    except:
+        pass
+    return dict_str_variant
+
+def convertDict(dict_str_variant):
+    result_dict = {}
+    for key, value in dict_str_variant.items():
+        result_dict[QString(key)] = value
+    return QVariant(result_dict)