aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHugo Parente Lima <hugo.pl@gmail.com>2010-09-01 15:06:17 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2010-09-01 16:55:00 -0300
commit5c0d39b9dc18450364399f68ba0db3b19a9605c8 (patch)
tree92c408b78e39db7cdd119c906c2281e7aa939d3b
parente0a5ca517f60b24fed19ac406300be8d103730b4 (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.cpp4
-rw-r--r--PySide/QtCore/qstring_conversions.h4
-rw-r--r--tests/QtCore/CMakeLists.txt1
-rw-r--r--tests/QtCore/qabstractitemmodel_test.py21
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()
+