diff options
author | Hugo Parente Lima <hugo.pl@gmail.com> | 2010-09-01 20:58:41 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2010-09-02 15:07:59 -0300 |
commit | 8f4246a522aa02c9e1d7e44ab6a18d13075d53b9 (patch) | |
tree | 34e4551d31960708e3850ca03f8231211dd3fcd3 /tests/QtGui | |
parent | 94ce2814e9a3709ab7d60f3acee6576fe9476b1d (diff) |
Fix bug#125 - "QAbstractTextDocumentLayout.registerHandler apparently not working"
Added class QPyTextObject which inherits from QObject and QTextObjectInterface to
solve the issue with registerHandler, the same approach used by PyQt.
Reviewer: Luciano Wolf <luciano.wolf@openbossa.org>
Renato Araújo <renato.filho@openbossa.org>
Diffstat (limited to 'tests/QtGui')
-rw-r--r-- | tests/QtGui/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/QtGui/qabstracttextdocumentlayout_test.py | 46 |
2 files changed, 47 insertions, 0 deletions
diff --git a/tests/QtGui/CMakeLists.txt b/tests/QtGui/CMakeLists.txt index b73e1ce13..80d415a0d 100644 --- a/tests/QtGui/CMakeLists.txt +++ b/tests/QtGui/CMakeLists.txt @@ -14,6 +14,7 @@ PYSIDE_TEST(missing_symbols_test.py) PYSIDE_TEST(paint_event_test.py) PYSIDE_TEST(parent_method_test.py) PYSIDE_TEST(python_properties_test.py) +PYSIDE_TEST(qabstracttextdocumentlayout_test.py) PYSIDE_TEST(qapplication_exit_segfault_test.py) PYSIDE_TEST(qapplication_singleton_test.py) PYSIDE_TEST(qapp_test.py) diff --git a/tests/QtGui/qabstracttextdocumentlayout_test.py b/tests/QtGui/qabstracttextdocumentlayout_test.py new file mode 100644 index 000000000..e3fe40e31 --- /dev/null +++ b/tests/QtGui/qabstracttextdocumentlayout_test.py @@ -0,0 +1,46 @@ +import unittest +import colorsys + +from PySide.QtCore import * +from PySide.QtGui import * +from helper import UsesQApplication + +class Foo(QPyTextObject): + called = False + + def intrinsicSize(self, doc, posInDocument, format): + Foo.called = True + return QSizeF(10, 10) + + def drawObject(self, painter, rect, doc, posInDocument, format): + pass + +class QAbstractTextDocumentLayoutTest(UsesQApplication): + + objectType = QTextFormat.UserObject + 1 + + def foo(self): + fmt = QTextCharFormat() + fmt.setObjectType(QAbstractTextDocumentLayoutTest.objectType) + + cursor = self.textEdit.textCursor() + cursor.insertText(unichr(0xfffc), fmt) + self.textEdit.setTextCursor(cursor) + self.textEdit.close() + + def testIt(self): + + self.textEdit = QTextEdit() + self.textEdit.show() + + interface = Foo() + self.textEdit.document().documentLayout().registerHandler(QAbstractTextDocumentLayoutTest.objectType, interface) + + QTimer.singleShot(0, self.foo) + self.app.exec_() + + self.assertTrue(Foo.called) + +if __name__ == "__main__": + unittest.main() + |