1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
// SPDX-FileCopyrightText: 2021 Jonah BrĂ¼chert <jbb@kaidan.im>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
#include "phonenumberlist.h"
namespace ranges = std::ranges;
PhoneNumberList::PhoneNumberList(const QString &phoneNumbers)
: QVector<PhoneNumber>()
{
const auto individualNumbers = phoneNumbers.split(u'~', Qt::SkipEmptyParts);
reserve(individualNumbers.size());
ranges::transform(individualNumbers, std::back_inserter(*this), [](const QString &number) {
return PhoneNumber(number);
});
}
PhoneNumberList::PhoneNumberList(const QStringList &phoneNumbers)
: QVector<PhoneNumber>()
{
for (const auto &phone : phoneNumbers) {
emplace_back(phone);
}
}
QString PhoneNumberList::toString() const
{
QStringList individualNumbers;
individualNumbers.reserve(size());
ranges::transform(*this, std::back_inserter(individualNumbers), [](const PhoneNumber &number) {
return number.toInternational();
});
return individualNumbers.join(u'~');
}
QList<QString> PhoneNumberList::toStringList() const
{
QList<QString> numbers;
for (auto it = begin(); it != end(); ++it) {
numbers.push_back(it->toString());
}
return numbers;
}
|