Fix QTreeWidget parent rules.

QTreeWidget.clear() - remove all child ref from the current widget
QTreeWidgetItem.parent() - use default policy for returned value

Fix bug #547

Reviewer: Marcelo Lira <marcelo.lira@openbossa.org>
          Hugo Parente Lima <hugo.pl@gmail.com>
This commit is contained in:
Renato Araujo Oliveira Filho 2010-12-27 18:59:32 -03:00
commit a74d92adce
3 changed files with 60 additions and 0 deletions

View file

@ -21,6 +21,7 @@ PYSIDE_TEST(bug_480.py)
PYSIDE_TEST(bug_500.py)
PYSIDE_TEST(bug_512.py)
PYSIDE_TEST(bug_525.py)
PYSIDE_TEST(bug_547.py)
PYSIDE_TEST(bug_549.py)
PYSIDE_TEST(customproxywidget_test.py)
PYSIDE_TEST(deepcopy_test.py)

39
tests/QtGui/bug_547.py Normal file
View file

@ -0,0 +1,39 @@
""" Unittest for bug #547 """
""" http://bugs.openbossa.org/show_bug.cgi?id=547 """
from PySide import QtGui
import sys
import unittest
class MyMainWindow(unittest.TestCase):
def testClearFunction(self):
app = QtGui.QApplication(sys.argv)
self._tree = QtGui.QTreeWidget()
self._tree.setColumnCount(2)
self._i1 = None
self._i11 = None
self._updateTree()
self.assertEqual(sys.getrefcount(self._i1), 3)
self.assertEqual(sys.getrefcount(self._i11), 3)
self._i11.parent().setExpanded(True)
self._i11.setExpanded(True)
self._updateTree()
self.assertEqual(sys.getrefcount(self._i1), 3)
self.assertEqual(sys.getrefcount(self._i11), 3)
def _updateTree(self):
self._tree.clear()
if self._i1 and self._i11:
self.assertEqual(sys.getrefcount(self._i1), 2)
self.assertEqual(sys.getrefcount(self._i11), 2)
self._i1 = QtGui.QTreeWidgetItem(self._tree, ['1', ])
self._i11 = QtGui.QTreeWidgetItem(self._i1, ['11', ])
if __name__ == '__main__':
unittest.main()