Fix bug 926 - "qmlRegisterType does not work with QObject"

Reviewer: Luciano Wolf <luciano.wolf@openbossa.org>
          Lauro Neto <lauro.neto@openbossa.org>
This commit is contained in:
Hugo Parente Lima 2011-07-20 10:41:31 -03:00
commit 0a41e336ba
7 changed files with 119 additions and 32 deletions

View file

@ -6,6 +6,7 @@ PYSIDE_TEST(bug_814.py)
PYSIDE_TEST(bug_825.py)
PYSIDE_TEST(bug_847.py)
PYSIDE_TEST(bug_915.py)
PYSIDE_TEST(bug_926.py)
PYSIDE_TEST(qdeclarativenetwork_test.py)
PYSIDE_TEST(qdeclarativeview_test.py)
PYSIDE_TEST(connect_python_qml.py)

View file

@ -0,0 +1,38 @@
import sys
import unittest
from helper import adjust_filename
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtDeclarative import *
class MyClass (QObject):
def __init__(self):
super(MyClass,self).__init__()
self.__url = QUrl()
def getUrl(self):
return self.__url
def setUrl(self,value):
newUrl = QUrl(value)
if (newUrl != self.__url):
self.__url = newUrl
self.urlChanged.emit()
urlChanged = Signal()
urla = Property(QUrl, getUrl, setUrl, notify = urlChanged)
class TestBug926 (unittest.TestCase):
def testIt(self):
app = QApplication([])
qmlRegisterType(MyClass,'Example',1,0,'MyClass')
view = QDeclarativeView()
view.setSource(QUrl.fromLocalFile(adjust_filename('bug_926.qml', __file__)))
self.assertEqual(len(view.errors()), 0)
view.show()
QTimer.singleShot(0, app.quit)
app.exec_()
if __name__ == '__main__':
unittest.main()

View file

@ -0,0 +1,17 @@
import Qt 4.7
import Example 1.0
Rectangle {
width: 100
height: 62
MyClass {
id: myClass
urla: "http://www.pyside.org"
}
Text {
id: name
text: myClass.urla
}
}