diff options
author | Hugo Parente Lima <hugo.pl@gmail.com> | 2010-12-09 16:03:03 -0200 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:47:57 -0300 |
commit | 94d8426d1c47d6e761f07073b7e7c5960da9497e (patch) | |
tree | 9f17f6eff2850f8f3ddaceac86d881b0cae1bedc /tests/QtDeclarative/registertype.py | |
parent | a6955f9fed375c78d34de53ab00169257c61c114 (diff) |
Add tests for qmlregisterType function and qml list properties.
Reviewer: Marcelo Lira <marcelo.lira@openbossa.org>
Luciano Wolf <luciano.wolf@openbossa.org>
Diffstat (limited to 'tests/QtDeclarative/registertype.py')
-rw-r--r-- | tests/QtDeclarative/registertype.py | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/tests/QtDeclarative/registertype.py b/tests/QtDeclarative/registertype.py new file mode 100644 index 000000000..434dac1ef --- /dev/null +++ b/tests/QtDeclarative/registertype.py @@ -0,0 +1,92 @@ + +import sys +import unittest +import helper +from PySide.QtCore import * +from PySide.QtGui import * +from PySide.QtDeclarative import * + +class PieSlice (QDeclarativeItem): + + def __init__(self, parent = None): + QDeclarativeItem.__init__(self, parent) + # need to disable this flag to draw inside a QDeclarativeItem + self.setFlag(QGraphicsItem.ItemHasNoContents, False) + self._color = QColor() + self._fromAngle = 0 + self._angleSpan = 0 + + def getColor(self): + return self._color + + def setColor(self, value): + self._color = value + + def getFromAngle(self): + return self._angle + + def setFromAngle(self, value): + self._fromAngle = value + + def getAngleSpan(self): + return self._angleSpan + + def setAngleSpan(self, value): + self._angleSpan = value + + color = Property(QColor, getColor, setColor) + fromAngle = Property(int, getFromAngle, setFromAngle) + angleSpan = Property(int, getAngleSpan, setAngleSpan) + + def paint(self, painter, options, widget): + global paintCalled + pen = QPen(self._color, 2) + painter.setPen(pen); + painter.setRenderHints(QPainter.Antialiasing, True); + painter.drawPie(self.boundingRect(), self._fromAngle * 16, self._angleSpan * 16); + paintCalled = True + +class PieChart (QDeclarativeItem): + + def __init__(self, parent = None): + QDeclarativeItem.__init__(self, parent) + self._name = u'' + self._slices = [] + + def getName(self): + return self._name + + def setName(self, value): + self._name = value + + name = Property(unicode, getName, setName) + + def appendSlice(self, _slice): + global appendCalled + _slice.setParentItem(self) + self._slices.append(_slice) + appendCalled = True + + slices = ListProperty(PieSlice, append=appendSlice) + +appendCalled = False +paintCalled = False + +class TestQmlSupport(unittest.TestCase): + + def testIt(self): + app = QApplication([]) + + qmlRegisterType(PieChart, 'Charts', 1, 0, 'PieChart'); + qmlRegisterType(PieSlice, "Charts", 1, 0, "PieSlice"); + + view = QDeclarativeView() + view.setSource(QUrl.fromLocalFile(helper.adjust_filename('registertype.qml', __file__))) + view.show() + QTimer.singleShot(250, view.close) + app.exec_() + self.assertTrue(appendCalled) + self.assertTrue(paintCalled) + +if __name__ == '__main__': + unittest.main() |