MCPcopy Create free account
hub / github.com/KDAB/GammaRay / flagsToString

Function flagsToString

core/metaenum.h:48–73  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

46
47template<typename T, typename F, std::size_t N>
48QString flagsToString(T flags, const Value<F> (&lookupTable)[N])
49{
50 QStringList l;
51 T handledFlags = T();
52
53 for (std::size_t i = 0; i < N; ++i) {
54 if (flags & lookupTable[i].value) {
55 l.push_back(QString::fromUtf8(lookupTable[i].name));
56 }
57 handledFlags |= lookupTable[i].value;
58 }
59
60 if (flags & ~handledFlags) {
61 l.push_back(QStringLiteral("flag 0x") + QString::number(qulonglong(flags & ~handledFlags), 16));
62 }
63
64 if (l.isEmpty()) {
65 // check if we have a special 0-value
66 for (std::size_t i = 0; i < N; ++i) {
67 if (lookupTable[i].value == 0)
68 return QString::fromUtf8(lookupTable[i].name);
69 }
70 return QStringLiteral("<none>");
71 }
72 return l.join(QStringLiteral("|"));
73}
74
75// functors for easy use with VariantHandler::registerStringConverter
76namespace detail {

Callers 4

operator()Method · 0.85
cellDataChangedMethod · 0.85
dataMethod · 0.85

Calls 1

isEmptyMethod · 0.45

Tested by 2

cellDataChangedMethod · 0.68