aboutsummaryrefslogtreecommitdiffstats
path: root/PySide/QtCore/qchar_conversions.h
blob: 6347c931150f92b0c409139b00492ec05695e57a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
namespace Shiboken {
inline bool Shiboken::Converter<QChar >::isConvertible(PyObject* pyObj)
{
    return PyObject_TypeCheck(pyObj, SbkType<QChar>())
         || 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 *Converter<QChar*>::toCpp(pyObj);
}

inline PyObject* Converter<QChar>::toPython(const QChar& cppObj)
{
    return ValueTypeConverter<QChar>::toPython(cppObj);
}
}