X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=wizard%2Fqvariant_converter_old.py;h=ee410b9f0ce8bb5fa15eb9215c1d8bcbf4b929a1;hb=57dfb183e24175bc782647d4e6aebe31063f3881;hp=7d3afe0f117aaa8aae72cc0f4a23e2a0f181a666;hpb=4fa9bf0336b75d453fd0ed8ab6a6db33b70a6aa9;p=bertos.git diff --git a/wizard/qvariant_converter_old.py b/wizard/qvariant_converter_old.py index 7d3afe0f..ee410b9f 100644 --- a/wizard/qvariant_converter_old.py +++ b/wizard/qvariant_converter_old.py @@ -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 # +""" +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))