MCPcopy Create free account
hub / github.com/KDE/kdevelop / handleUpdate

Method handleUpdate

plugins/debuggercommon/mivariable.cpp:262–310  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

260}
261
262void MIVariable::handleUpdate(const Value& var)
263{
264 if (var.hasField(QStringLiteral("type_changed"))
265 && var[QStringLiteral("type_changed")].literal() == QLatin1String("true"))
266 {
267 deleteChildren();
268 // FIXME: verify that this check is right.
269 setHasMore(var[QStringLiteral("new_num_children")].toInt() != 0);
270 fetchMoreChildren();
271 }
272
273 if (var.hasField(QStringLiteral("in_scope")) && var[QStringLiteral("in_scope")].literal() == QLatin1String("false"))
274 {
275 setInScope(false);
276 }
277 else
278 {
279 setInScope(true);
280
281 if (var.hasField(QStringLiteral("new_num_children"))) {
282 int nc = var[QStringLiteral("new_num_children")].toInt();
283 Q_ASSERT(nc != -1);
284 setHasMore(false);
285 while (childCount() > nc) {
286 TreeItem *c = child(childCount()-1);
287 removeChild(childCount()-1);
288 delete c;
289 }
290 }
291
292 if (var.hasField(QStringLiteral("new_children")))
293 {
294 const Value& children = var[QStringLiteral("new_children")];
295 if (m_debugSession) {
296 for (int i = 0; i < children.size(); ++i) {
297 createChild(children[i]);
298 // it's automatically appended to this's children list
299 }
300 }
301 }
302
303 if (var.hasField(QStringLiteral("type_changed")) && var[QStringLiteral("type_changed")].literal() == QLatin1String("true")) {
304 setType(var[QStringLiteral("new_type")].literal());
305 }
306 setValueToValueFieldOf(var);
307 setChanged(true);
308 setHasMore(var.hasField(QStringLiteral("has_more")) && var[QStringLiteral("has_more")].toInt());
309 }
310}
311
312const QString& MIVariable::varobj() const
313{

Callers 1

handleVarUpdateMethod · 0.80

Calls 8

fetchMoreChildrenFunction · 0.85
childFunction · 0.85
createChildFunction · 0.85
setTypeFunction · 0.85
hasFieldMethod · 0.80
literalMethod · 0.80
toIntMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected