From f4587e9bcc6bbb6398e56c29f411df2f2a88b5d7 Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@38d2e660-2303-0410-9eaa-f027e97ec537> Date: Mon, 13 Jul 2009 13:05:40 +0000 Subject: [PATCH] Add module for compatibility with the new QVariant rapresentation in PyQt 4.5.x git-svn-id: https://src.develer.com/svnoss/bertos/trunk@2757 38d2e660-2303-0410-9eaa-f027e97ec537 --- wizard/qvariant_converter.py | 6 +- wizard/qvariant_converter_newer.py | 105 +++++++++++++++++++++++++++++ 2 files changed, 109 insertions(+), 2 deletions(-) create mode 100644 wizard/qvariant_converter_newer.py diff --git a/wizard/qvariant_converter.py b/wizard/qvariant_converter.py index 8c4cfd87..81181965 100644 --- a/wizard/qvariant_converter.py +++ b/wizard/qvariant_converter.py @@ -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 index 00000000..5335032f --- /dev/null +++ b/wizard/qvariant_converter_newer.py @@ -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 +# + +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) -- 2.25.1