From ede178b3ff4bfee1e7ded9066f9734ea306ff4f2 Mon Sep 17 00:00:00 2001 From: hsoft Date: Wed, 17 Jun 2009 12:12:02 +0000 Subject: [PATCH] base qt: Fixed an incompatibility with PyQt 4.5.1 (lists of non Q values couldn't be sent directly to QVariant anymore). --HG-- extra : convert_revision : svn%3Ac306627e-7827-47d3-bdf0-9a457c9553a1/trunk%4070 --- base/qt/preferences.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/base/qt/preferences.py b/base/qt/preferences.py index 64ad64d5..ab7653b9 100644 --- a/base/qt/preferences.py +++ b/base/qt/preferences.py @@ -30,9 +30,14 @@ def variant_to_py(v): elif t in (QVariant.List, QVariant.StringList): value, ok = map(variant_to_py, v.toList()), True if not ok: - raise TypeError() + raise TypeError(u"Can't convert {0} of type {1}".format(repr(v), v.type())) return value +def py_to_variant(v): + if isinstance(v, (list, tuple)): + return QVariant(map(py_to_variant, v)) + return QVariant(v) + class Preferences(object): # (width, is_visible) COLUMNS_DEFAULT_ATTRS = [] @@ -94,7 +99,7 @@ class Preferences(object): def save(self): settings = QSettings() def set_(name, value): - settings.setValue(name, QVariant(value)) + settings.setValue(name, py_to_variant(value)) set_('FilterHardness', self.filter_hardness) set_('MixFileKind', self.mix_file_kind)