18 #include <QStringList>
22 if (psv.size() == 1) {
24 return QString(
Q_(
"?or-list-single:%1")).arg(psv[0]);
25 }
else if (psv.size() == 2) {
27 return QString(
Q_(
"?or-list:%1 or %2")).arg(psv[0], psv[1]);
31 auto result = QString(
Q_(
"?or-list:%1")).arg(psv[0]);
32 for (
int i = 1; i < psv.size() - 1; ++i) {
35 result += QString(
Q_(
"?or-list:, %1")).arg(psv[i]);
39 return result + QString(
Q_(
"?or-list:, or %1")).arg(psv.back());
45 if (psv.size() == 1) {
47 return QString(
Q_(
"?and-list-single:%1")).arg(psv[0]);
48 }
else if (psv.size() == 2) {
50 return QString(
Q_(
"?and-list:%1 and %2")).arg(psv[0], psv[1]);
54 auto result = QString(
Q_(
"?and-list:%1")).arg(psv[0]);
55 for (
int i = 1; i < psv.size() - 1; ++i) {
58 result += QString(
Q_(
"?and-list:, %1")).arg(psv[i]);
61 return result + QString(
Q_(
"?and-list:, and %1")).arg(psv.back());
65 QString
qendl() {
return QStringLiteral(
"\n"); }
70 QStringList broken = src.split(QStringLiteral(
" "), Qt::SkipEmptyParts);
74 while (!broken.isEmpty()) {
75 QString s = broken.takeFirst();
78 if (s.contains(
'\n')) {
QString strvec_to_and_list(const QVector< QString > &psv)
QString break_lines(const QString &src, int after)
QString strvec_to_or_list(const QVector< QString > &psv)