diff options
author | hjk <hjk@theqtcompany.com> | 2015-01-29 12:24:40 +0100 |
---|---|---|
committer | hjk <hjk@theqtcompany.com> | 2015-01-29 11:32:59 +0000 |
commit | 7f6dbbb3f606d8c6e62ffa5726e312b7d009a5b4 (patch) | |
tree | 35b6b4201c66997f396d5307058d08fa513d3843 /src/plugins/debugger/pdb/pdbengine.cpp | |
parent | 39ab4b378337ffbd4d1cce068d20e53da5bcc827 (diff) | |
download | qt-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.cpp | 19 |
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 |