From 8f4246a522aa02c9e1d7e44ab6a18d13075d53b9 Mon Sep 17 00:00:00 2001 From: Hugo Parente Lima Date: Wed, 1 Sep 2010 20:58:41 -0300 Subject: Fix bug#125 - "QAbstractTextDocumentLayout.registerHandler apparently not working" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added class QPyTextObject which inherits from QObject and QTextObjectInterface to solve the issue with registerHandler, the same approach used by PyQt. Reviewer: Luciano Wolf Renato Araújo --- tests/QtGui/CMakeLists.txt | 1 + tests/QtGui/qabstracttextdocumentlayout_test.py | 46 +++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 tests/QtGui/qabstracttextdocumentlayout_test.py (limited to 'tests') 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() + -- cgit v1.2.3