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"