MCPcopy Create free account
hub / github.com/apitrace/apitrace / writeValue

Function writeValue

gui/saverthread.cpp:122–203  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

120}
121
122static void
123writeValue(trace::Writer &writer, const QVariant &var, unsigned &id)
124{
125 int arrayType = QMetaType::type("ApiArray");
126 int bitmaskType = QMetaType::type("ApiBitmask");
127 int structType = QMetaType::type("ApiStruct");
128 int pointerType = QMetaType::type("ApiPointer");
129 int enumType = QMetaType::type("ApiEnum");
130 int type = var.userType();
131
132 switch(type) {
133 case QVariant::Bool:
134 writer.writeBool(var.toBool());
135 break;
136 case QVariant::ByteArray: {
137 QByteArray ba = var.toByteArray();
138 writer.writeBlob((const void*)ba.constData(), ba.size());
139 }
140 break;
141 case QVariant::Double:
142 writer.writeDouble(var.toDouble());
143 break;
144 case QMetaType::Float:
145 writer.writeFloat(var.toFloat());
146 break;
147 case QVariant::Int:
148 writer.writeSInt(var.toInt());
149 break;
150 case QVariant::LongLong:
151 writer.writeSInt(var.toLongLong());
152 break;
153 case QVariant::String: {
154 QString str = var.toString();
155 writer.writeString(str.toLocal8Bit().constData(), str.length());
156 }
157 break;
158 case QVariant::UInt:
159 writer.writeUInt(var.toInt());
160 break;
161 case QVariant::ULongLong:
162 writer.writeUInt(var.toLongLong());
163 break;
164 default:
165 if (type == arrayType) {
166 ApiArray array = var.value<ApiArray>();
167 QVector<QVariant> vals = array.values();
168 writer.beginArray(vals.count());
169 foreach(QVariant el, vals) {
170 writer.beginElement();
171 writeValue(writer, el, ++id);
172 writer.endElement();
173 }
174 writer.endArray();
175 } else if (type == bitmaskType) {
176 ApiBitmask bm = var.value<ApiBitmask>();
177 trace::BitmaskSig *sig = createBitmaskSig(bm, ++id);
178 writer.writeBitmask(sig, bm.value());
179 deleteBitmaskSig(sig);

Callers 1

foreachFunction · 0.85

Calls 15

createBitmaskSigFunction · 0.85
deleteBitmaskSigFunction · 0.85
createStructSigFunction · 0.85
deleteStructSigFunction · 0.85
createEnumSigFunction · 0.85
deleteEnumSigFunction · 0.85
toBoolMethod · 0.80
writeDoubleMethod · 0.80
toDoubleMethod · 0.80
toFloatMethod · 0.80
valuesMethod · 0.80
writeBitmaskMethod · 0.80

Tested by

no test coverage detected