1#ifndef DIRECTEDMESSAGETOOLTIPUTILS_H
2#define DIRECTEDMESSAGETOOLTIPUTILS_H
9namespace DirectedMessageTooltipUtils {
11inline QString joinHumanList(
const QStringList &items) {
14 if (items.size() == 1)
16 return items.mid(0, items.size() - 1).join(
", ") +
17 QStringLiteral(
" and ") + items.last();
20inline QString routingTooltipFromTexts(
const QStringList &hops) {
24 return QString(
"Relay to %1").arg(hops.first());
26 const QString destination = hops.last();
27 const QStringList relays = hops.mid(0, hops.size() - 1);
28 return QString(
"Routing through %1 to %2")
29 .arg(joinHumanList(relays), destination);
32inline QString relayTooltip(
const QString &chainText,
33 const QList<QPair<int, int>> &hops) {
35 hopTexts.reserve(hops.size());
36 for (
const auto &hop : hops)
37 hopTexts.append(chainText.mid(hop.first, hop.second));
38 return routingTooltipFromTexts(hopTexts);