Prison
13class Prison::MeCardPrivate
22 std::vector<Element> elements;
25bool MeCardPrivate::Element::operator<(
QStringView other)
const
31 : d(new MeCardPrivate())
35MeCard::MeCard(
MeCard &&other) noexcept
36 : d(std::move(other.d))
43 std::swap(d, other.d);
52 if (idx <= 0 || idx >= data.
size() - 1) {
60 while (remaining.size() > 0) {
62 if (keyIdx <= 0 || keyIdx + 2 >= remaining.size()) {
67 auto elemIdx = keyIdx + 1;
69 for (; elemIdx < remaining.size() - 1; ++elemIdx) {
70 auto c = remaining.
at(elemIdx);
71 if (elemIdx == (keyIdx + 1) && c ==
QLatin1Char(
'"')) {
83 c = remaining.at(elemIdx);
88 const auto key = remaining.left(keyIdx);
89 auto it = std::lower_bound(m.d->elements.begin(), m.d->elements.end(), key);
90 if (it == m.d->elements.end()) {
91 m.d->elements.push_back(MeCardPrivate::Element());
92 it = std::prev(m.d->elements.end());
93 }
else if ((*it).key != key) {
94 it = m.d->elements.insert(it, MeCardPrivate::Element());
97 (*it).values.push_back(
value);
99 remaining = remaining.mid(elemIdx + 1);
102 if (m.d->elements.empty()) {
111 return d->header.toString();
121 const auto it = std::lower_bound(d->elements.begin(), d->elements.end(), key);
122 if (it != d->elements.end() && (*it).key == key && (*it).values.
size() == 1) {
123 return (*it).values.at(0);
130 const auto it = std::lower_bound(d->elements.begin(), d->elements.end(), key);
131 if (it != d->elements.end() && (*it).key == key) {
140 for (
const auto &element : std::as_const(d->elements)) {
141 if (element.values.size() > 1) {
142 map.insert(element.key.toString(), element.values);
144 map.insert(element.key.toString(), element.values.at(0));
Parser for the MeCard format.
static std::optional< MeCard > parse(const QString &data)
Parse the given string.
QStringView headerView() const
Get the MeCard header as a string view.
QVariantMap toVariantMap() const
Get the parsed data as QVariantMap.
QStringList values(QStringView key) const
Get the list of values for a given key.
MeCard & operator=(MeCard &&other) noexcept
Move assignment.
QString value(QStringView key) const
Get the value for a given key.
QString header() const
Get the MeCard header.
Provides classes and methods for generating barcodes.
const QChar at(qsizetype position) const const
qsizetype indexOf(QChar ch, qsizetype from, Qt::CaseSensitivity cs) const const
qsizetype size() const const
QStringView left(qsizetype length) const const
QStringView mid(qsizetype start, qsizetype length) const const
qsizetype indexOf(QChar c, qsizetype from, Qt::CaseSensitivity cs) const const
qsizetype size() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri May 10 2024 11:43:48 by
doxygen 1.10.0 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.