aboutsummaryrefslogtreecommitdiffstats
path: root/PySide/QtCore
diff options
context:
space:
mode:
authorLauro Neto <lauro.neto@openbossa.org>2010-02-22 15:35:13 -0300
committerLauro Neto <lauro.neto@openbossa.org>2010-02-22 15:35:13 -0300
commitb5128919aaa92862dec02c268a2e94c742425a9f (patch)
treeb32c606afe824da8ec13a3c7cc00c9dd5ffb87f9 /PySide/QtCore
parent82e214967cc048cee380c5e97d3c3ad78d3a923a (diff)
Adding conversion file for QChar
Diffstat (limited to 'PySide/QtCore')
-rw-r--r--PySide/QtCore/qchar_conversions.h25
-rw-r--r--PySide/QtCore/typesystem_core.xml1
2 files changed, 26 insertions, 0 deletions
diff --git a/PySide/QtCore/qchar_conversions.h b/PySide/QtCore/qchar_conversions.h
new file mode 100644
index 000000000..2429926d1
--- /dev/null
+++ b/PySide/QtCore/qchar_conversions.h
@@ -0,0 +1,25 @@
+namespace Shiboken {
+
+inline bool Shiboken::Converter<QChar >::isConvertible(PyObject* pyobj)
+{
+ return SbkPySide_QtCore_QChar_SpecialCharacter_Check(pyobj)
+ || SbkQLatin1Char_Check(pyobj)
+ || (PyString_Check(pyobj) && (PyString_Size(pyobj) == 1))
+ || PyInt_Check(pyobj);
+}
+
+inline QChar Shiboken::Converter<QChar >::toCpp(PyObject* pyobj)
+{
+ if (!Shiboken_TypeCheck(pyobj, QChar)) {
+ if (SbkPySide_QtCore_QChar_SpecialCharacter_Check(pyobj))
+ return QChar(Shiboken::Converter<QChar::SpecialCharacter >::toCpp(pyobj));
+ else if (SbkQLatin1Char_Check(pyobj))
+ return QChar(Shiboken::Converter<QLatin1Char >::toCpp(pyobj));
+ else if (PyString_Check(pyobj) && PyString_Size(pyobj) == 1)
+ return QChar(Shiboken::Converter<char >::toCpp(pyobj));
+ else if (PyInt_Check(pyobj))
+ return QChar(Shiboken::Converter<int >::toCpp(pyobj));
+ }
+ return *SbkQChar_cptr(pyobj);
+}
+}
diff --git a/PySide/QtCore/typesystem_core.xml b/PySide/QtCore/typesystem_core.xml
index 34c46a6d8..5348d665c 100644
--- a/PySide/QtCore/typesystem_core.xml
+++ b/PySide/QtCore/typesystem_core.xml
@@ -1136,6 +1136,7 @@
<modify-function signature="operator=(const QString*)" remove="all" />
</value-type>
<value-type name="QChar" hash-function="qHash">
+ <conversion-rule file="qchar_conversions.h" />
<modify-function signature="QChar(uchar)" remove="all"/>
<modify-function signature="QChar(short)" remove="all"/>
<modify-function signature="QChar(ushort)" remove="all"/>