summaryrefslogtreecommitdiff
path: root/src/plugins/debugger/pdb/pdbengine.cpp
diff options
context:
space:
mode:
authorhjk <hjk@theqtcompany.com>2015-01-29 12:24:40 +0100
committerhjk <hjk@theqtcompany.com>2015-01-29 11:32:59 +0000
commit7f6dbbb3f606d8c6e62ffa5726e312b7d009a5b4 (patch)
tree35b6b4201c66997f396d5307058d08fa513d3843 /src/plugins/debugger/pdb/pdbengine.cpp
parent39ab4b378337ffbd4d1cce068d20e53da5bcc827 (diff)
downloadqt-creator-7f6dbbb3f606d8c6e62ffa5726e312b7d009a5b4.tar.gz
Debugger: Use direct access to WatchItems in PDB engine
Change-Id: I4229cab0304160f1b47ee17f25fa7d30414bbe85 Reviewed-by: hjk <hjk@theqtcompany.com>
Diffstat (limited to 'src/plugins/debugger/pdb/pdbengine.cpp')
-rw-r--r--src/plugins/debugger/pdb/pdbengine.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/plugins/debugger/pdb/pdbengine.cpp b/src/plugins/debugger/pdb/pdbengine.cpp
index f19ac57661..b332b82e83 100644
--- a/src/plugins/debugger/pdb/pdbengine.cpp
+++ b/src/plugins/debugger/pdb/pdbengine.cpp
@@ -800,16 +800,20 @@ void PdbEngine::handleListLocals(const PdbResponse &response)
//qDebug() << "ALL: " << all.toString();
//GdbMi data = all.findChild("data");
- QList<WatchData> list;
WatchHandler *handler = watchHandler();
+
+ QSet<QByteArray> toDelete;
+ foreach (WatchItem *item, handler->model()->treeLevelItems<WatchItem *>(2))
+ toDelete.insert(item->d.iname);
+
foreach (const GdbMi &child, all.children()) {
- WatchData dummy;
- dummy.iname = child["iname"].data();
- dummy.name = _(child["name"].data());
- //qDebug() << "CHILD: " << child.toString();
- parseWatchData(handler->expandedINames(), dummy, child, &list);
+ WatchItem *item = new WatchItem(child["iname"].data(), _(child["name"].data()));
+ item->parseWatchData(handler->expandedINames(), child);
+ handler->insertItem(item);
+ toDelete.remove(item->d.iname);
}
- handler->insertData(list);
+
+ handler->purgeOutdatedItems(toDelete);
}
bool PdbEngine::hasCapability(unsigned cap) const
@@ -822,6 +826,5 @@ DebuggerEngine *createPdbEngine(const DebuggerStartParameters &startParameters)
return new PdbEngine(startParameters);
}
-
} // namespace Internal
} // namespace Debugger