diff --git a/autotests/datatypestest.cpp b/autotests/datatypestest.cpp --- a/autotests/datatypestest.cpp +++ b/autotests/datatypestest.cpp @@ -96,6 +96,19 @@ QCOMPARE(org.telephone(), QLatin1String("+55-1234-345")); QCOMPARE(org.url(), QUrl(QLatin1String("http://www.jreast.co.jp/e/"))); + tt.setProvider(org); + flight.setProvider(org); + res.setProvider(org); + bus.setProvider(org); + QCOMPARE(tt.provider().name(), QLatin1String("JR East")); + QCOMPARE(tt.provider().email(), QLatin1String("nowhere@nowhere.com")); + QCOMPARE(flight.provider().name(), QLatin1String("JR East")); + QCOMPARE(flight.provider().email(), QLatin1String("nowhere@nowhere.com")); + QCOMPARE(res.provider().name(), QLatin1String("JR East")); + QCOMPARE(res.provider().email(), QLatin1String("nowhere@nowhere.com")); + QCOMPARE(bus.provider().name(), QLatin1String("JR East")); + QCOMPARE(bus.provider().email(), QLatin1String("nowhere@nowhere.com")); + } void testQmlCompatibility() diff --git a/src/datatypes/bustrip.h b/src/datatypes/bustrip.h --- a/src/datatypes/bustrip.h +++ b/src/datatypes/bustrip.h @@ -27,6 +27,8 @@ class BusTripPrivate; +class Organization; + /** A bus trip. * @see https://schema.org/BusTrip */ @@ -41,6 +43,7 @@ KITINERARY_PROPERTY(QDateTime, departureTime, setDepartureTime) KITINERARY_PROPERTY(QString, busName, setBusName) KITINERARY_PROPERTY(QString, busNumber, setBusNumber) + KITINERARY_PROPERTY(KItinerary::Organization, provider, setProvider) Q_PROPERTY(QString departureTimeLocalized READ departureTimeLocalized STORED false CONSTANT) Q_PROPERTY(QString arrivalTimeLocalized READ arrivalTimeLocalized STORED false CONSTANT) diff --git a/src/datatypes/bustrip.cpp b/src/datatypes/bustrip.cpp --- a/src/datatypes/bustrip.cpp +++ b/src/datatypes/bustrip.cpp @@ -16,6 +16,7 @@ */ #include "bustrip.h" +#include "organization.h" #include "place.h" #include "datatypes_p.h" @@ -34,6 +35,7 @@ QDateTime departureTime; QString busName; QString busNumber; + Organization provider; }; KITINERARY_MAKE_SIMPLE_CLASS(BusTrip) @@ -45,6 +47,7 @@ KITINERARY_MAKE_PROPERTY(BusTrip, QDateTime, departureTime, setDepartureTime) KITINERARY_MAKE_PROPERTY(BusTrip, QString, busName, setBusName) KITINERARY_MAKE_PROPERTY(BusTrip, QString, busNumber, setBusNumber) +KITINERARY_MAKE_PROPERTY(BusTrip, Organization, provider, setProvider) QString BusTrip::departureTimeLocalized() const { diff --git a/src/datatypes/flight.h b/src/datatypes/flight.h --- a/src/datatypes/flight.h +++ b/src/datatypes/flight.h @@ -29,6 +29,8 @@ class AirlinePrivate; +class Organization; + /** An airline. * @see https://schema.org/Airline */ @@ -56,6 +58,7 @@ KITINERARY_PROPERTY(QDateTime, departureTime, setDepartureTime) KITINERARY_PROPERTY(KItinerary::Airport, arrivalAirport, setArrivalAirport) KITINERARY_PROPERTY(QDateTime, arrivalTime, setArrivalTime) + KITINERARY_PROPERTY(KItinerary::Organization, provider, setProvider) // Google extension for boarding pass data KITINERARY_PROPERTY(QDateTime, boardingTime, setBoardingTime) diff --git a/src/datatypes/flight.cpp b/src/datatypes/flight.cpp --- a/src/datatypes/flight.cpp +++ b/src/datatypes/flight.cpp @@ -17,6 +17,7 @@ #include "flight.h" #include "place.h" +#include "organization.h" #include "datatypes_p.h" #include @@ -49,6 +50,7 @@ QDateTime boardingTime; QString departureGate; QDate departureDay; + Organization provider; }; KITINERARY_MAKE_SIMPLE_CLASS(Flight) @@ -60,6 +62,7 @@ KITINERARY_MAKE_PROPERTY(Flight, QDateTime, arrivalTime, setArrivalTime) KITINERARY_MAKE_PROPERTY(Flight, QDateTime, boardingTime, setBoardingTime) KITINERARY_MAKE_PROPERTY(Flight, QString, departureGate, setDepartureGate) +KITINERARY_MAKE_PROPERTY(Flight, Organization, provider, setProvider) QDate Flight::departureDay() const { diff --git a/src/datatypes/reservation.h b/src/datatypes/reservation.h --- a/src/datatypes/reservation.h +++ b/src/datatypes/reservation.h @@ -27,6 +27,8 @@ class ReservationPrivate; +class Organization; + /** Abstract base class for reservations. * @see https://schema.org/Reservation */ @@ -37,6 +39,7 @@ KITINERARY_PROPERTY(QVariant, reservationFor, setReservationFor) KITINERARY_PROPERTY(QVariant, reservedTicket, setReservedTicket) KITINERARY_PROPERTY(QVariant, underName, setUnderName) + KITINERARY_PROPERTY(Organization, provider, setProvider) // Google extension KITINERARY_PROPERTY(QUrl, cancelReservationUrl, setCancelReservationUrl) diff --git a/src/datatypes/reservation.cpp b/src/datatypes/reservation.cpp --- a/src/datatypes/reservation.cpp +++ b/src/datatypes/reservation.cpp @@ -16,6 +16,7 @@ */ #include "reservation.h" +#include "organization.h" #include "datatypes_p.h" #include @@ -39,6 +40,7 @@ QUrl url; QString pkpassPassTypeIdentifier; QString pkpassSerialNumber; + Organization provider; }; KITINERARY_MAKE_ABSTRACT_CLASS(Reservation) @@ -52,6 +54,7 @@ KITINERARY_MAKE_PROPERTY(Reservation, QUrl, url, setUrl) KITINERARY_MAKE_PROPERTY(Reservation, QString, pkpassPassTypeIdentifier, setPkpassPassTypeIdentifier) KITINERARY_MAKE_PROPERTY(Reservation, QString, pkpassSerialNumber, setPkpassSerialNumber) +KITINERARY_MAKE_PROPERTY(Reservation, Organization, provider, setProvider) class LodgingReservationPrivate : public ReservationPrivate { diff --git a/src/datatypes/traintrip.h b/src/datatypes/traintrip.h --- a/src/datatypes/traintrip.h +++ b/src/datatypes/traintrip.h @@ -29,6 +29,8 @@ class TrainTripPrivate; +class Organization; + /** A train trip. * @see https://schema.org/TrainTrip */ @@ -43,6 +45,7 @@ KITINERARY_PROPERTY(QDateTime, departureTime, setDepartureTime) KITINERARY_PROPERTY(QString, trainName, setTrainName) KITINERARY_PROPERTY(QString, trainNumber, setTrainNumber) + KITINERARY_PROPERTY(KItinerary::Organization, provider, setProvider) Q_PROPERTY(QString departureTimeLocalized READ departureTimeLocalized STORED false CONSTANT) Q_PROPERTY(QString arrivalTimeLocalized READ arrivalTimeLocalized STORED false CONSTANT) diff --git a/src/datatypes/traintrip.cpp b/src/datatypes/traintrip.cpp --- a/src/datatypes/traintrip.cpp +++ b/src/datatypes/traintrip.cpp @@ -16,6 +16,7 @@ */ #include "traintrip.h" +#include "organization.h" #include "place.h" #include "datatypes_p.h" @@ -31,6 +32,7 @@ QDateTime arrivalTime; QString departurePlatform; TrainStation departureStation; + Organization provider; QDateTime departureTime; QString trainName; QString trainNumber; @@ -43,6 +45,7 @@ KITINERARY_MAKE_PROPERTY(TrainTrip, QString, departurePlatform, setDeparturePlatform) KITINERARY_MAKE_PROPERTY(TrainTrip, TrainStation, departureStation, setDeparatureStation) KITINERARY_MAKE_PROPERTY(TrainTrip, QDateTime, departureTime, setDepartureTime) +KITINERARY_MAKE_PROPERTY(TrainTrip, Organization, provider, setProvider) KITINERARY_MAKE_PROPERTY(TrainTrip, QString, trainName, setTrainName) KITINERARY_MAKE_PROPERTY(TrainTrip, QString, trainNumber, setTrainNumber)