25 static const QMap<QString, QString> cat2hr
27 { LAN::CatIM, QObject::tr (
"Instant messaging") },
28 { LAN::CatOrganizer, QObject::tr (
"Organizer") },
29 { LAN::CatDownloads, QObject::tr (
"Downloads") },
30 { LAN::CatPackageManager, QObject::tr (
"Package manager") },
31 { LAN::CatMediaPlayer, QObject::tr (
"Media player") },
32 { LAN::CatTerminal, QObject::tr (
"Terminal") },
33 { LAN::CatNews, QObject::tr (
"News") },
34 { LAN::CatGeneric, QObject::tr (
"Generic") }
41 static const QMap<QString, QStringList> cat2types
49 LAN::TypeIMMUCHighlight,
52 LAN::TypeIMStatusChange,
53 LAN::TypeIMSubscrGrant,
54 LAN::TypeIMSubscrRequest,
55 LAN::TypeIMSubscrRevoke,
57 LAN::TypeIMSubscrUnsub,
58 LAN::TypeIMEventTuneChange,
59 LAN::TypeIMEventMoodChange,
60 LAN::TypeIMEventActivityChange,
61 LAN::TypeIMEventLocationChange
67 LAN::TypeOrganizerEventDue
73 LAN::TypeDownloadError,
74 LAN::TypeDownloadFinished
78 LAN::CatPackageManager,
80 LAN::TypePackageUpdated
86 LAN::TypeMediaPlaybackStatus
92 LAN::TypeTerminalActivity,
93 LAN::TypeTerminalInactivity,
100 LAN::TypeNewsSourceUpdated,
101 LAN::TypeNewsSourceBroken
111 return cat2types.value (category);
121 static const QMap<QString, QString> type2hr
123 { LAN::TypeIMAttention, QObject::tr (
"Attention request") },
124 { LAN::TypeIMIncFile, QObject::tr (
"Incoming file transfer request") },
125 { LAN::TypeIMIncMsg, QObject::tr (
"Incoming chat message") },
126 { LAN::TypeIMMUCHighlight, QObject::tr (
"MUC highlight") },
127 { LAN::TypeIMMUCInvite, QObject::tr (
"MUC invitation") },
128 { LAN::TypeIMMUCMsg, QObject::tr (
"General MUC message") },
129 { LAN::TypeIMStatusChange, QObject::tr (
"Contact status change") },
130 { LAN::TypeIMSubscrGrant, QObject::tr (
"Authorization granted") },
131 { LAN::TypeIMSubscrRevoke, QObject::tr (
"Authorization revoked") },
132 { LAN::TypeIMSubscrRequest, QObject::tr (
"Authorization requested") },
133 { LAN::TypeIMSubscrSub, QObject::tr (
"Contact subscribed") },
134 { LAN::TypeIMSubscrUnsub, QObject::tr (
"Contact unsubscribed") },
135 { LAN::TypeIMEventTuneChange, QObject::tr (
"Contact's tune changed") },
136 { LAN::TypeIMEventMoodChange, QObject::tr (
"Contact's mood changed") },
137 { LAN::TypeIMEventActivityChange, QObject::tr (
"Contact's activity changed") },
138 { LAN::TypeIMEventLocationChange, QObject::tr (
"Contact's location changed") },
140 { LAN::TypeOrganizerEventDue, QObject::tr (
"Event is due") },
142 { LAN::TypeDownloadError, QObject::tr (
"Download error") },
143 { LAN::TypeDownloadFinished, QObject::tr (
"Download finished") },
145 { LAN::TypePackageUpdated, QObject::tr (
"Package updated") },
147 { LAN::TypeMediaPlaybackStatus, QObject::tr (
"Media playback status changed") },
149 { LAN::TypeTerminalBell, QObject::tr (
"Bell in a terminal") },
150 { LAN::TypeTerminalActivity, QObject::tr (
"Activity in a terminal") },
151 { LAN::TypeTerminalInactivity, QObject::tr (
"Inactivity in a terminal") },
153 { LAN::TypeNewsSourceUpdated, QObject::tr (
"News source got updated") },
154 { LAN::TypeNewsSourceBroken, QObject::tr (
"News source is detected to be broken") },
156 { LAN::TypeGeneric, QObject::tr (
"Generic") }
158 return type2hr.value (type, type);
248 if (var.metaType ().id () != expected)
250 qCritical () <<
"expected" << QMetaType { expected } <<
"; got" << var.metaType () << var;
254 const auto ensureExpected = [&] (
auto... types)
256 if (((expected == types) || ...))
258 ((qCritical () <<
"expected metatype" << QMetaType { expected } <<
"for matcher supporting") << ... << QMetaType { types });
263 return Visit (matcher,
270 case QMetaType::QString:
271 return Matches (var.toString (), m);
272 case QMetaType::QStringList:
273 return Matches (var.toStringList (), m);
274 case QMetaType::QUrl:
275 return Matches (var.toUrl (), m);
277 qCritical () <<
"unexpected metatype" << QMetaType { expected } <<
"for string matcher";