diff options
author | hjk <[email protected]> | 2010-03-17 13:25:29 +0100 |
---|---|---|
committer | hjk <[email protected]> | 2010-03-17 13:25:29 +0100 |
commit | 72d90fd5ee4ae400d46f8a5fcb85ab828a59746d (patch) | |
tree | 53abaaa00eacf99b6b690e6a9ccba02d7a7ffc88 /src/plugins/debugger/watchhandler.cpp | |
parent | f0300b9e798211ccedbde4eb801a5b9a8b170c2f (diff) |
debugger: merge multiple fancy views of the same object
Diffstat (limited to 'src/plugins/debugger/watchhandler.cpp')
-rw-r--r-- | src/plugins/debugger/watchhandler.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index 714f76f3156..fff4f3ce7cd 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -1350,7 +1350,8 @@ static void swapEndian(char *d, int nchar) void WatchHandler::showEditValue(const WatchData &data) { - QObject *w = m_editHandlers.value(data.iname); + const QByteArray key = data.addr.isEmpty() ? data.iname : data.addr; + QObject *w = m_editHandlers.value(key); if (data.editformat == 0x0) { m_editHandlers.remove(data.iname); delete w; @@ -1364,7 +1365,7 @@ void WatchHandler::showEditValue(const WatchData &data) if (!data.addr.isEmpty()) addr = QString::fromLatin1(data.addr); l->setWindowTitle(tr("%1 object at %2").arg(data.type, addr)); - m_editHandlers[data.iname] = l; + m_editHandlers[key] = l; } int width, height, format; QByteArray ba; @@ -1396,7 +1397,7 @@ void WatchHandler::showEditValue(const WatchData &data) if (!t) { delete w; t = new QTextEdit; - m_editHandlers[data.iname] = t; + m_editHandlers[key] = t; } QByteArray ba = QByteArray::fromHex(data.editvalue); QString str = QString::fromUtf16((ushort *)ba.constData(), ba.size()/2); @@ -1413,7 +1414,7 @@ void WatchHandler::showEditValue(const WatchData &data) p = new QProcess; p->start(cmd); p->waitForStarted(); - m_editHandlers[data.iname] = p; + m_editHandlers[key] = p; } p->write(input + "\n"); } else { |