aboutsummaryrefslogtreecommitdiffstats
path: root/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/birthdayparty.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/birthdayparty.py')
-rw-r--r--examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/birthdayparty.py27
1 files changed, 20 insertions, 7 deletions
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/birthdayparty.py b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/birthdayparty.py
index 52af2fe97..eacb5201d 100644
--- a/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/birthdayparty.py
+++ b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/birthdayparty.py
@@ -15,18 +15,21 @@ QML_IMPORT_MAJOR_VERSION = 1
@QmlAnonymous
class BirthdayPartyAttached(QObject):
+ rsvp_changed = Signal()
def __init__(self, parent=None):
super().__init__(parent)
self._rsvp = QDate()
- @Property(QDate)
+ @Property(QDate, notify=rsvp_changed, final=True)
def rsvp(self):
return self._rsvp
@rsvp.setter
def rsvp(self, d):
- self._rsvp = d
+ if self._rsvp != d:
+ self._rsvp = d
+ self.rsvp_changed.emit()
@QmlElement
@@ -34,30 +37,39 @@ class BirthdayPartyAttached(QObject):
@QmlAttached(BirthdayPartyAttached)
class BirthdayParty(QObject):
+ announcement_changed = Signal()
+ host_changed = Signal()
+ guests_changed = Signal()
partyStarted = Signal(QTime)
def __init__(self, parent=None):
super().__init__(parent)
+ self._announcement = ""
self._host = None
self._guests = []
def startParty(self):
self.partyStarted.emit(QTime.currentTime())
- @Property(Person)
+ @Property(Person, notify=host_changed, final=True)
def host(self):
return self._host
@host.setter
def host(self, h):
- self._host = h
+ if self._host != h:
+ self._host = h
+ self.host_changed.emit()
- @Property(str)
+ @Property(str, notify=announcement_changed, final=True)
def announcement(self):
- return ""
+ return self._announcement
@announcement.setter
def announcement(self, a):
+ if self._announcement != a:
+ self._announcement = a
+ self.announcement_changed.emit()
print(a)
def guest(self, n):
@@ -68,9 +80,10 @@ class BirthdayParty(QObject):
def appendGuest(self, guest):
self._guests.append(guest)
+ self.guests_changed.emit()
@staticmethod
def qmlAttachedProperties(self, o):
return BirthdayPartyAttached(o)
- guests = ListProperty(Person, appendGuest)
+ guests = ListProperty(Person, appendGuest, notify=guests_changed, final=True)