// Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause #include "birthdayparty.h" QDate BirthdayPartyAttached::rsvp() const { return m_rsvp; } void BirthdayPartyAttached::setRsvp(QDate rsvpDate) { if (m_rsvp != rsvpDate) { m_rsvp = rsvpDate; emit rsvpChanged(); } } Person *BirthdayParty::host() const { return m_host; } void BirthdayParty::setHost(Person *host) { if (m_host != host) { m_host = host; emit hostChanged(); } } QQmlListProperty BirthdayParty::guests() { return { this, this, &BirthdayParty::appendGuest, &BirthdayParty::guestCount, &BirthdayParty::guest, &BirthdayParty::clearGuests, &BirthdayParty::replaceGuest, &BirthdayParty::removeLastGuest }; } void BirthdayParty::appendGuest(Person *guest) { m_guests.append(guest); emit guestsChanged(); } qsizetype BirthdayParty::guestCount() const { return m_guests.count(); } Person *BirthdayParty::guest(qsizetype index) const { return m_guests.at(index); } void BirthdayParty::clearGuests() { if (!m_guests.empty()) { m_guests.clear(); emit guestsChanged(); } } void BirthdayParty::replaceGuest(qsizetype index, Person *guest) { if (m_guests.size() > index) { m_guests[index] = guest; emit guestsChanged(); } } void BirthdayParty::removeLastGuest() { if (!m_guests.empty()) { m_guests.removeLast(); emit guestsChanged(); } } void BirthdayParty::appendGuest(QQmlListProperty *list, Person *guest) { static_cast(list->data)->appendGuest(guest); } void BirthdayParty::clearGuests(QQmlListProperty *list) { static_cast(list->data)->clearGuests(); } void BirthdayParty::replaceGuest(QQmlListProperty *list, qsizetype index, Person *guest) { static_cast(list->data)->replaceGuest(index, guest); } void BirthdayParty::removeLastGuest(QQmlListProperty *list) { static_cast(list->data)->removeLastGuest(); } Person *BirthdayParty::guest(QQmlListProperty *list, qsizetype index) { return static_cast(list->data)->guest(index); } qsizetype BirthdayParty::guestCount(QQmlListProperty *list) { return static_cast(list->data)->guestCount(); } void BirthdayParty::startParty() { QDateTime time = QDateTime::currentDateTime(); emit partyStarted(time); } QString BirthdayParty::announcement() const { return m_announcement; } void BirthdayParty::setAnnouncement(const QString &announcement) { if (m_announcement != announcement) { m_announcement = announcement; emit announcementChanged(); } m_display->setContent(announcement); } ThirdPartyDisplay *BirthdayParty::display() const { return m_display; } void BirthdayParty::setDisplay(ThirdPartyDisplay *display) { if (m_display != display) { m_display = display; emit displayChanged(); } } BirthdayPartyAttached *BirthdayParty::qmlAttachedProperties(QObject *object) { return new BirthdayPartyAttached(object); }