1 /*
2     SPDX-FileCopyrightText: 2018 Volker Krause <vkrause@kde.org>
3 
4     SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #include "barcode.h"
8 #include "pass.h"
9 #include "pass_p.h"
10 
11 #include <QJsonObject>
12 
13 using namespace KPkPass;
14 
15 namespace KPkPass
16 {
17 class BarcodePrivate
18 {
19 public:
20     const Pass *pass = nullptr;
21     QJsonObject obj;
22 };
23 }
24 
Barcode()25 Barcode::Barcode()
26     : d(new BarcodePrivate)
27 {
28 }
29 
Barcode(const QJsonObject & obj,const Pass * pass)30 Barcode::Barcode(const QJsonObject &obj, const Pass *pass)
31     : d(new BarcodePrivate)
32 {
33     d->pass = pass;
34     d->obj = obj;
35 }
36 
37 Barcode::~Barcode() = default;
38 
alternativeText() const39 QString Barcode::alternativeText() const
40 {
41     if (d->pass) {
42         return d->pass->d->message(d->obj.value(QLatin1String("altText")).toString());
43     }
44     return {};
45 }
46 
format() const47 Barcode::Format KPkPass::Barcode::format() const
48 {
49     const auto format = d->obj.value(QLatin1String("format")).toString();
50     if (format == QLatin1String("PKBarcodeFormatQR")) {
51         return QR;
52     } else if (format == QLatin1String("PKBarcodeFormatPDF417")) {
53         return PDF417;
54     } else if (format == QLatin1String("PKBarcodeFormatAztec")) {
55         return Aztec;
56     } else if (format == QLatin1String("PKBarcodeFormatCode128")) {
57         return Code128;
58     }
59     return Invalid;
60 }
61 
message() const62 QString Barcode::message() const
63 {
64     return d->obj.value(QLatin1String("message")).toString();
65 }
66 
messageEncoding() const67 QString Barcode::messageEncoding() const
68 {
69     return d->obj.value(QLatin1String("messageEncoding")).toString();
70 }
71