KPublicTransport

individualtransport.cpp
1/*
2 SPDX-FileCopyrightText: 2021 Volker Krause <vkrause@kde.org>
3
4 SPDX-License-Identifier: LGPL-2.0-or-later
5*/
6
7#include "individualtransport.h"
8#include "json_p.h"
9#include "datatypes_p.h"
10#include "variant_p.h"
11
12#include <KLocalizedString>
13
14#include <QDebug>
15
16using namespace Qt::Literals::StringLiterals;
17
18namespace KPublicTransport {
19class IndividualTransportPrivate : public QSharedData
20{
21public:
22 IndividualTransport::Mode mode = IndividualTransport::Walk;
24};
25}
26
27using namespace KPublicTransport;
28
29KPUBLICTRANSPORT_MAKE_GADGET(IndividualTransport)
30KPUBLICTRANSPORT_MAKE_PROPERTY(IndividualTransport, IndividualTransport::Mode, mode, setMode)
31KPUBLICTRANSPORT_MAKE_PROPERTY(IndividualTransport, IndividualTransport::Qualifier, qualifier, setQualifier)
32
33IndividualTransport::IndividualTransport(IndividualTransport::Mode mode, IndividualTransport::Qualifier qualifier)
34 : d(new IndividualTransportPrivate)
35{
36 d->mode = mode;
37 d->qualifier = qualifier;
38}
39
40bool IndividualTransport::operator==(const IndividualTransport &other) const
41{
42 return d->mode == other.mode() && d->qualifier == other.qualifier();
43}
44
45bool IndividualTransport::operator!=(const IndividualTransport &other) const
46{
47 return d->mode != other.mode() || d->qualifier != other.qualifier();
48}
49
51{
52 switch (mode) {
53 case IndividualTransport::Bike:
54 return u"qrc:///org.kde.kpublictransport/assets/images/transport-mode-bike.svg"_s;
55 case IndividualTransport::Car:
56 return u"qrc:///org.kde.kpublictransport/assets/images/transport-mode-car.svg"_s;
57 case IndividualTransport::Walk:
58 return u"qrc:///org.kde.kpublictransport/assets/images/transport-mode-walk.svg"_s;
59 }
60
61 return u"question"_s;
62}
63
65{
67}
68
70{
71 switch (mode()) {
72 case IndividualTransport::Bike:
73 return i18nc("mode of individual transport", "Bike");
74 case IndividualTransport::Car:
75 return i18nc("mode of individual transport", "Car");
76 case IndividualTransport::Walk:
77 return i18nc("mode of individual transport", "Walk");
78 }
79 return {};
80}
81
82QJsonObject IndividualTransport::toJson(const IndividualTransport &it)
83{
84 return Json::toJson(it);
85}
86
87QJsonArray IndividualTransport::toJson(const std::vector<IndividualTransport> &its)
88{
89 return Json::toJson(its);
90}
91
92IndividualTransport IndividualTransport::fromJson(const QJsonObject &obj)
93{
94 return Json::fromJson<IndividualTransport>(obj);
95}
96
97std::vector<IndividualTransport> IndividualTransport::fromJson(const QJsonArray &array)
98{
99 return Json::fromJson<IndividualTransport>(array);
100}
101
102std::vector<IndividualTransport> IndividualTransport::fromVariant(const QVariantList &v)
103{
104 return Variant::fromVariantList<IndividualTransport>(v);
105}
106
107#include "moc_individualtransport.cpp"
Individual transport mode details for a journey section, and for specifying journey requests.
QString label
Label shortly describing this transport for display.
static std::vector< IndividualTransport > fromVariant(const QVariantList &v)
Mode
Mode of (individual) transportation.
static QJsonObject toJson(const IndividualTransport &it)
Serializes one object to JSON.
Qualifier
Qualifier on how the mode of transport is used.
@ None
not applicable, or bike is taken on public transport legs.
static IndividualTransport fromJson(const QJsonObject &obj)
Deserialize an object from JSON.
QString modeIconName
Name of an icon to represent this transport mode.
QString i18nc(const char *context, const char *text, const TYPE &arg...)
Query operations and data types for accessing realtime public transport information from online servi...
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Jan 31 2025 11:52:18 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.