diff options
author | Hugo Parente Lima <hugo.pl@gmail.com> | 2010-09-01 15:06:17 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2010-09-01 16:55:00 -0300 |
commit | 5c0d39b9dc18450364399f68ba0db3b19a9605c8 (patch) | |
tree | 92c408b78e39db7cdd119c906c2281e7aa939d3b | |
parent | e0a5ca517f60b24fed19ac406300be8d103730b4 (diff) |
Fix bug#316 - "QAbstractItemModel.createIndex is broken"
Reviewer: Luciano Wolf <luciano.wolf@openbossa.org>
Renato Araújo <renato.filho@openbossa.org>
-rw-r--r-- | PySide/QtCore/glue/qobject_connect.cpp | 4 | ||||
-rw-r--r-- | PySide/QtCore/qstring_conversions.h | 4 | ||||
-rw-r--r-- | tests/QtCore/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/QtCore/qabstractitemmodel_test.py | 21 |
4 files changed, 26 insertions, 4 deletions
diff --git a/PySide/QtCore/glue/qobject_connect.cpp b/PySide/QtCore/glue/qobject_connect.cpp index 8578bffc2..b140374ec 100644 --- a/PySide/QtCore/glue/qobject_connect.cpp +++ b/PySide/QtCore/glue/qobject_connect.cpp @@ -2,11 +2,11 @@ static bool getReceiver(PyObject *callback, QObject **receiver, PyObject **self) { if (PyMethod_Check(callback)) { *self = PyMethod_GET_SELF(callback); - if (SbkQObject_Check(*self)) + if (Shiboken::Converter<QObject*>::checkType(*self)) *receiver = Converter<QObject*>::toCpp(*self); } else if (PyCFunction_Check(callback)) { *self = PyCFunction_GET_SELF(callback); - if (*self && SbkQObject_Check(*self)) + if (*self && Shiboken::Converter<QObject*>::checkType(*self)) *receiver = Converter<QObject*>::toCpp(*self); } else if (PyCallable_Check(callback)) { // Ok, just a callable object diff --git a/PySide/QtCore/qstring_conversions.h b/PySide/QtCore/qstring_conversions.h index d0006b889..670c01f90 100644 --- a/PySide/QtCore/qstring_conversions.h +++ b/PySide/QtCore/qstring_conversions.h @@ -18,7 +18,7 @@ struct Converter<QString> { return PyString_Check(pyObj) || PyUnicode_Check(pyObj) - || SbkQByteArray_Check(pyObj) + || Converter<QByteArray>::checkType(pyObj) || pyObj == Py_None #if PY_VERSION_HEX < 0x03000000 || (pyObj->ob_type->tp_as_buffer @@ -42,7 +42,7 @@ struct Converter<QString> return QString(Converter< char * >::toCpp(pyObj)); } else if (pyObj == Py_None) { return QString(); - } else if (SbkQByteArray_Check(pyObj)) { + } else if (Converter<QByteArray>::checkType(pyObj)) { return QString(Converter< QByteArray >::toCpp(pyObj)); } #if PY_VERSION_HEX < 0x03000000 diff --git a/tests/QtCore/CMakeLists.txt b/tests/QtCore/CMakeLists.txt index cf7727f45..4e7e8ec6b 100644 --- a/tests/QtCore/CMakeLists.txt +++ b/tests/QtCore/CMakeLists.txt @@ -7,6 +7,7 @@ PYSIDE_TEST(duck_punching_test.py) PYSIDE_TEST(hash_test.py) PYSIDE_TEST(missing_symbols_test.py) PYSIDE_TEST(qabs_test.py) +PYSIDE_TEST(qabstractitemmodel_test.py) PYSIDE_TEST(qabstracttransition_test.py) PYSIDE_TEST(qanimationgroup_test.py) PYSIDE_TEST(qbitarray_test.py) diff --git a/tests/QtCore/qabstractitemmodel_test.py b/tests/QtCore/qabstractitemmodel_test.py new file mode 100644 index 000000000..93306ca5f --- /dev/null +++ b/tests/QtCore/qabstractitemmodel_test.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- + +import unittest +from PySide.QtCore import * + +class MyModel (QAbstractListModel): + pass + +class Foo: + pass + +class TestQModelIndexInternalPointer(unittest.TestCase): + + def testInternalPointer(self): + m = MyModel() + foo = Foo() + idx = m.createIndex(0,0, foo) + +if __name__ == '__main__': + unittest.main() + |