diff options
author | Hugo Parente Lima <hugo.lima@openbossa.org> | 2010-06-08 09:57:21 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.lima@openbossa.org> | 2010-06-10 14:57:42 -0300 |
commit | ccd189d30c284e9a67a802193ef05c4149108f9a (patch) | |
tree | 9cad80bbabd36375c7dac046b386cc599bf3f942 /PySide/QtCore | |
parent | e39bfefde9edda662f51eeaf9a482f209c7f1217 (diff) |
Add checkType method to PySide custom converters.
Diffstat (limited to 'PySide/QtCore')
-rw-r--r-- | PySide/QtCore/qchar_conversions.h | 9 | ||||
-rw-r--r-- | PySide/QtCore/qstring_conversions.h | 8 | ||||
-rw-r--r-- | PySide/QtCore/qstringref_conversions.h | 3 | ||||
-rw-r--r-- | PySide/QtCore/qvariant_conversions.h | 5 |
4 files changed, 19 insertions, 6 deletions
diff --git a/PySide/QtCore/qchar_conversions.h b/PySide/QtCore/qchar_conversions.h index ab477efc8..1ebcb646b 100644 --- a/PySide/QtCore/qchar_conversions.h +++ b/PySide/QtCore/qchar_conversions.h @@ -1,12 +1,17 @@ namespace Shiboken { template<> -class Converter<QChar> +struct Converter<QChar> { -public: + static bool checkType(PyObject* pyObj) + { + return PyString_Check(pyObj) && (PyString_Size(pyObj) == 1); + } + static bool isConvertible(PyObject* pyObj) { return (PyString_Check(pyObj) && (PyString_Size(pyObj) == 1)) + || pyObj == Py_None || PyInt_Check(pyObj); } diff --git a/PySide/QtCore/qstring_conversions.h b/PySide/QtCore/qstring_conversions.h index 392f0e7b7..04b46f4ea 100644 --- a/PySide/QtCore/qstring_conversions.h +++ b/PySide/QtCore/qstring_conversions.h @@ -1,9 +1,13 @@ namespace Shiboken { template<> -class Converter<QString> +struct Converter<QString> { -public: + static bool checkType(PyObject* pyObj) + { + return PyString_Check(pyObj) || PyUnicode_Check(pyObj); + } + static bool isConvertible(PyObject* pyObj) { return PyString_Check(pyObj) diff --git a/PySide/QtCore/qstringref_conversions.h b/PySide/QtCore/qstringref_conversions.h index 11e1b9c62..db3eefcae 100644 --- a/PySide/QtCore/qstringref_conversions.h +++ b/PySide/QtCore/qstringref_conversions.h @@ -7,8 +7,7 @@ struct Converter<QStringRef> : public Converter<QString> static PyObject* toPython(const QStringRef& cppObj) { - const QString* str = cppObj.string(); - return Converter<QString>::toPython(*str); + return Converter<QString>::toPython(cppObj.toString()); } static QStringRef toCpp(PyObject* pyObj) diff --git a/PySide/QtCore/qvariant_conversions.h b/PySide/QtCore/qvariant_conversions.h index f0f78a077..aa6d521fb 100644 --- a/PySide/QtCore/qvariant_conversions.h +++ b/PySide/QtCore/qvariant_conversions.h @@ -12,6 +12,11 @@ Q_DECLARE_METATYPE(PyQt_PyObject) namespace Shiboken { +inline bool Converter<QVariant>::checkType(PyObject* pyObj) +{ + return ValueTypeConverter<QVariant>::checkType(pyObj); +} + // all types are convertible to QVariant inline bool Converter<QVariant>::isConvertible(PyObject* pyObj) { |