File indexing completed on 2024-05-12 04:42:42

0001 /*
0002     SPDX-FileCopyrightText: 2021 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "individualtransport.h"
0008 #include "json_p.h"
0009 #include "datatypes_p.h"
0010 #include "variant_p.h"
0011 
0012 #include <QDebug>
0013 
0014 namespace KPublicTransport {
0015 class IndividualTransportPrivate : public QSharedData
0016 {
0017 public:
0018     IndividualTransport::Mode mode = IndividualTransport::Walk;
0019     IndividualTransport::Qualifier qualifier = IndividualTransport::None;
0020 };
0021 }
0022 
0023 using namespace KPublicTransport;
0024 
0025 KPUBLICTRANSPORT_MAKE_GADGET(IndividualTransport)
0026 KPUBLICTRANSPORT_MAKE_PROPERTY(IndividualTransport, IndividualTransport::Mode, mode, setMode)
0027 KPUBLICTRANSPORT_MAKE_PROPERTY(IndividualTransport, IndividualTransport::Qualifier, qualifier, setQualifier)
0028 
0029 IndividualTransport::IndividualTransport(IndividualTransport::Mode mode, IndividualTransport::Qualifier qualifier)
0030     : d(new IndividualTransportPrivate)
0031 {
0032     d->mode = mode;
0033     d->qualifier = qualifier;
0034 }
0035 
0036 bool IndividualTransport::operator==(const IndividualTransport &other) const
0037 {
0038     return d->mode == other.mode() && d->qualifier == other.qualifier();
0039 }
0040 
0041 bool IndividualTransport::operator!=(const IndividualTransport &other) const
0042 {
0043     return d->mode != other.mode() || d->qualifier != other.qualifier();
0044 }
0045 
0046 QJsonObject IndividualTransport::toJson(const IndividualTransport &it)
0047 {
0048     return Json::toJson(it);
0049 }
0050 
0051 QJsonArray IndividualTransport::toJson(const std::vector<IndividualTransport> &its)
0052 {
0053     return Json::toJson(its);
0054 }
0055 
0056 IndividualTransport IndividualTransport::fromJson(const QJsonObject &obj)
0057 {
0058     return Json::fromJson<IndividualTransport>(obj);
0059 }
0060 
0061 std::vector<IndividualTransport> IndividualTransport::fromJson(const QJsonArray &array)
0062 {
0063     return Json::fromJson<IndividualTransport>(array);
0064 }
0065 
0066 std::vector<IndividualTransport> IndividualTransport::fromVariant(const QVariantList &v)
0067 {
0068     return Variant::fromVariantList<IndividualTransport>(v);
0069 }
0070 
0071 #include "moc_individualtransport.cpp"