46 lines
1.3 KiB
C++
46 lines
1.3 KiB
C++
// Copyright (C) 2023 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
|
|
|
#include "birthdayparty.h"
|
|
#include "person.h"
|
|
|
|
#include <QCoreApplication>
|
|
#include <QDebug>
|
|
#include <QQmlComponent>
|
|
#include <QQmlEngine>
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
QCoreApplication app(argc, argv);
|
|
|
|
QQmlEngine engine;
|
|
QQmlComponent component(&engine);
|
|
component.loadFromModule("People", "Main");
|
|
std::unique_ptr<BirthdayParty> party{ qobject_cast<BirthdayParty *>(component.create()) };
|
|
|
|
if (party && party->host()) {
|
|
qInfo() << party->host()->name() << "is having a birthday!";
|
|
|
|
if (qobject_cast<Boy *>(party->host()))
|
|
qInfo() << "He is inviting:";
|
|
else
|
|
qInfo() << "She is inviting:";
|
|
|
|
Person *bestShoe = nullptr;
|
|
for (qsizetype ii = 0; ii < party->guestCount(); ++ii) {
|
|
Person *guest = party->guest(ii);
|
|
qInfo() << " " << guest->name();
|
|
|
|
if (!bestShoe || bestShoe->shoe()->price() < guest->shoe()->price())
|
|
bestShoe = guest;
|
|
}
|
|
if (bestShoe)
|
|
qInfo() << bestShoe->name() << "is wearing the best shoes!";
|
|
|
|
return EXIT_SUCCESS;
|
|
}
|
|
|
|
qWarning() << component.errors();
|
|
return EXIT_FAILURE;
|
|
}
|