aboutsummaryrefslogtreecommitdiffstats
path: root/examples/declarative/referenceexamples/valuesource
diff options
context:
space:
mode:
Diffstat (limited to 'examples/declarative/referenceexamples/valuesource')
-rw-r--r--examples/declarative/referenceexamples/valuesource/birthdayparty.py76
-rw-r--r--examples/declarative/referenceexamples/valuesource/doc/valuesource.rst20
-rw-r--r--examples/declarative/referenceexamples/valuesource/example.qml27
-rw-r--r--examples/declarative/referenceexamples/valuesource/happybirthdaysong.py47
-rw-r--r--examples/declarative/referenceexamples/valuesource/main.py51
-rw-r--r--examples/declarative/referenceexamples/valuesource/person.py46
-rw-r--r--examples/declarative/referenceexamples/valuesource/valuesource.pyproject3
7 files changed, 0 insertions, 270 deletions
diff --git a/examples/declarative/referenceexamples/valuesource/birthdayparty.py b/examples/declarative/referenceexamples/valuesource/birthdayparty.py
deleted file mode 100644
index 3bc75e819..000000000
--- a/examples/declarative/referenceexamples/valuesource/birthdayparty.py
+++ /dev/null
@@ -1,76 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-from PySide6.QtCore import QDate, QObject, ClassInfo, Property, QTime, Signal
-from PySide6.QtQml import QmlAnonymous, QmlAttached, QmlElement, ListProperty
-
-from person import Person
-
-
-# To be used on the @QmlElement decorator
-# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.valuesource.people"
-QML_IMPORT_MAJOR_VERSION = 1
-
-
-@QmlAnonymous
-class BirthdayPartyAttached(QObject):
-
- def __init__(self, parent=None):
- super().__init__(parent)
- self._rsvp = QDate()
-
- @Property(QDate)
- def rsvp(self):
- return self._rsvp
-
- @rsvp.setter
- def rsvp(self, d):
- self._rsvp = d
-
-
-@QmlElement
-@ClassInfo(DefaultProperty="guests")
-@QmlAttached(BirthdayPartyAttached)
-class BirthdayParty(QObject):
-
- partyStarted = Signal(QTime)
-
- def __init__(self, parent=None):
- super().__init__(parent)
- self._host = None
- self._guests = []
-
- def startParty(self):
- self.partyStarted.emit(QTime.currentTime())
-
- @Property(Person)
- def host(self):
- return self._host
-
- @host.setter
- def host(self, h):
- self._host = h
-
- @Property(str)
- def announcement(self):
- return ""
-
- @announcement.setter
- def announcement(self, a):
- print(a)
-
- def guest(self, n):
- return self._guests[n]
-
- def guestCount(self):
- return len(self._guests)
-
- def appendGuest(self, guest):
- self._guests.append(guest)
-
- @staticmethod
- def qmlAttachedProperties(self, o):
- return BirthdayPartyAttached(o)
-
- guests = ListProperty(Person, appendGuest)
diff --git a/examples/declarative/referenceexamples/valuesource/doc/valuesource.rst b/examples/declarative/referenceexamples/valuesource/doc/valuesource.rst
deleted file mode 100644
index 81fbc827f..000000000
--- a/examples/declarative/referenceexamples/valuesource/doc/valuesource.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-.. _qml-valuesource-example:
-
-Extending QML - Value Source Example
-====================================
-
-This example builds on the :ref:`qml-adding-types-example`,
-the :ref:`qml-attached-properties-example`,
-the :ref:`qml-default-property-example`,
-the :ref:`qml-inheritance-and-coercion-example` and
-the :ref:`qml-object-and-list-property-types-example`.
-
-It demonstrates implementing a
-`property value source <https://doc.qt.io/qt-6/qtqml-cppintegration-definetypes.html#property-value-sources>`_
-in Python.
-
-Running the Example
--------------------
-
-The main.py file in the example includes a simple shell application that
-loads and runs the QML snippet shown below.
diff --git a/examples/declarative/referenceexamples/valuesource/example.qml b/examples/declarative/referenceexamples/valuesource/example.qml
deleted file mode 100644
index cb9683f3a..000000000
--- a/examples/declarative/referenceexamples/valuesource/example.qml
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2022 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-import examples.valuesource.people
-
-BirthdayParty {
- HappyBirthdaySong on announcement { name: "Bob Jones" }
-
- onPartyStarted: (time) => { console.log("This party started rockin' at " + time); }
-
- host: Boy {
- name: "Bob Jones"
- shoe_size: 12
- }
-
- Boy {
- name: "Leo Hodges"
- BirthdayParty.rsvp: "2009-07-06"
- }
- Boy {
- name: "Jack Smith"
- }
- Girl {
- name: "Anne Brown"
- BirthdayParty.rsvp: "2009-07-01"
- }
-}
diff --git a/examples/declarative/referenceexamples/valuesource/happybirthdaysong.py b/examples/declarative/referenceexamples/valuesource/happybirthdaysong.py
deleted file mode 100644
index cffddd39e..000000000
--- a/examples/declarative/referenceexamples/valuesource/happybirthdaysong.py
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-from PySide6.QtCore import QObject, QTimer, Property, Slot
-from PySide6.QtQml import QmlElement, QPyQmlPropertyValueSource
-
-# To be used on the @QmlElement decorator
-# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.valuesource.people"
-QML_IMPORT_MAJOR_VERSION = 1
-
-
-@QmlElement
-class HappyBirthdaySong(QPyQmlPropertyValueSource):
-
- def __init__(self, parent=None):
- super().__init__(parent)
-
- self.m_target = None
- self.m_name = ""
- self.m_line = -1
- self.m_lyrics = []
-
- self.m_timer = QTimer(self)
- self.m_timer.timeout.connect(self.advance)
- self.m_timer.start(1000)
-
- def setTarget(self, property):
- self.m_target = property
-
- @Property(str)
- def name(self):
- return self.m_name
-
- @name.setter
- def name(self, n):
- self.m_name = n
- self.m_lyrics = ["Happy birthday to you,",
- "Happy birthday to you,",
- f"Happy birthday dear {self.m_name},",
- "Happy birthday to you!",
- ""]
-
- @Slot()
- def advance(self):
- self.m_line = (self.m_line + 1) % len(self.m_lyrics)
- self.m_target.write(self.m_lyrics[self.m_line])
diff --git a/examples/declarative/referenceexamples/valuesource/main.py b/examples/declarative/referenceexamples/valuesource/main.py
deleted file mode 100644
index c3ded4be9..000000000
--- a/examples/declarative/referenceexamples/valuesource/main.py
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-"""PySide6 port of the qml/examples/qml/referenceexamples/valuesource example from Qt v6.x"""
-
-from pathlib import Path
-import sys
-
-from PySide6.QtCore import QCoreApplication, QUrl
-from PySide6.QtQml import QQmlComponent, QQmlEngine, qmlAttachedPropertiesObject
-
-from person import Boy, Girl
-from birthdayparty import BirthdayParty
-from happybirthdaysong import HappyBirthdaySong
-
-
-app = QCoreApplication(sys.argv)
-qml_file = Path(__file__).parent / "example.qml"
-url = QUrl.fromLocalFile(qml_file)
-engine = QQmlEngine()
-component = QQmlComponent(engine, url)
-party = component.create()
-if not party:
- print(component.errors())
- del engine
- sys.exit(-1)
-host = party.host
-print(f"{host.name} is having a birthday!")
-if isinstance(host, Boy):
- print("He is inviting:")
-else:
- print("She is inviting:")
-for g in range(party.guestCount()):
- guest = party.guest(g)
- name = guest.name
-
- rsvp_date = None
- attached = qmlAttachedPropertiesObject(BirthdayParty, guest, False)
- if attached:
- rsvp_date = attached.rsvp.toString()
- if rsvp_date:
- print(f" {name} RSVP date: {rsvp_date}")
- else:
- print(f" {name} RSVP date: Hasn't RSVP'd")
-
-party.startParty()
-
-r = app.exec()
-
-del engine
-sys.exit(r)
diff --git a/examples/declarative/referenceexamples/valuesource/person.py b/examples/declarative/referenceexamples/valuesource/person.py
deleted file mode 100644
index 5cd04e38a..000000000
--- a/examples/declarative/referenceexamples/valuesource/person.py
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-from PySide6.QtCore import QObject, Property
-from PySide6.QtQml import QmlAnonymous, QmlElement
-
-# To be used on the @QmlElement decorator
-# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "examples.valuesource.people"
-QML_IMPORT_MAJOR_VERSION = 1
-
-
-@QmlAnonymous
-class Person(QObject):
- def __init__(self, parent=None):
- super().__init__(parent)
- self._name = ''
- self._shoe_size = 0
-
- @Property(str)
- def name(self):
- return self._name
-
- @name.setter
- def name(self, n):
- self._name = n
-
- @Property(int)
- def shoe_size(self):
- return self._shoe_size
-
- @shoe_size.setter
- def shoe_size(self, s):
- self._shoe_size = s
-
-
-@QmlElement
-class Boy(Person):
- def __init__(self, parent=None):
- super().__init__(parent)
-
-
-@QmlElement
-class Girl(Person):
- def __init__(self, parent=None):
- super().__init__(parent)
diff --git a/examples/declarative/referenceexamples/valuesource/valuesource.pyproject b/examples/declarative/referenceexamples/valuesource/valuesource.pyproject
deleted file mode 100644
index a782d5c8a..000000000
--- a/examples/declarative/referenceexamples/valuesource/valuesource.pyproject
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "files": ["main.py", "birthdayparty.py", "happybirthdaysong.py", "person.py", "example.qml"]
-}