diff options
author | Renato Filho <renato.filho@openbossa.org> | 2010-07-09 18:27:39 -0300 |
---|---|---|
committer | Renato Filho <renato.filho@openbossa.org> | 2010-07-09 19:27:35 -0300 |
commit | 5cc46f2f1342e085897eefd06eda453e2f28b5bc (patch) | |
tree | fa8b36cc14ae4fa5e356cdebd3b387c8643452ce /tests | |
parent | 975edd5647f7fcebe9381ccf7d0524c736b1d069 (diff) |
Fixed layout reference control on layouts.
Reviewer: Luciano Wolf <luciano.wolf@openbossa.org>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/QtGui/qlayout_ref_test.py | 2 | ||||
-rw-r--r-- | tests/QtGui/qlayout_test.py | 31 |
2 files changed, 28 insertions, 5 deletions
diff --git a/tests/QtGui/qlayout_ref_test.py b/tests/QtGui/qlayout_ref_test.py index a6342718d..27c599c70 100644 --- a/tests/QtGui/qlayout_ref_test.py +++ b/tests/QtGui/qlayout_ref_test.py @@ -46,7 +46,7 @@ class SaveReference(UsesQApplication): l = QHBoxLayout() self.assertEqual(getrefcount(self.widget1), 2) l.addWidget(self.widget1) - self.assertEqual(getrefcount(self.widget1), 2) + self.assertEqual(getrefcount(self.widget1), 3) w = QWidget() w.setLayout(l) diff --git a/tests/QtGui/qlayout_test.py b/tests/QtGui/qlayout_test.py index ae773bb0a..88c37aa4d 100644 --- a/tests/QtGui/qlayout_test.py +++ b/tests/QtGui/qlayout_test.py @@ -2,7 +2,7 @@ import unittest import sys from helper import UsesQApplication -from PySide.QtGui import QLayout, QWidget, QPushButton, QWidgetItem +from PySide.QtGui import QLayout, QWidget, QPushButton, QWidgetItem, QHBoxLayout class MyLayout(QLayout): def __init__(self, parent=None): @@ -29,24 +29,47 @@ class MyLayout(QLayout): -#Test if a layout implemented in python, the QWidget.setLayout works -#fine because this implement som layout functions used in glue code of +#Test if a layout implemented in python, the QWidget.setLayout works +#fine because this implement som layout functions used in glue code of #QWidget, then in c++ when call a virtual function this need call the QLayout #function implemented in python class QLayoutTest(UsesQApplication): - def testOwnershipTransfer(self): b = QPushButton("teste") l = MyLayout() + l.addWidget(b) self.assertEqual(sys.getrefcount(b), 2) w = QWidget() + + #transfer ref + w.setLayout(l) + + self.assertEqual(sys.getrefcount(b), 3) + + + def testReferenceTransfer(self): + b = QPushButton("teste") + l = QHBoxLayout() + + # keep ref + l.addWidget(b) + self.assertEqual(sys.getrefcount(b), 3) + + w = QWidget() + + # transfer ref w.setLayout(l) self.assertEqual(sys.getrefcount(b), 3) + # release ref + del w + + self.assertEqual(sys.getrefcount(b), 2) + if __name__ == '__main__': unittest.main() |