aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/debugger/watchhandler.cpp
diff options
context:
space:
mode:
authorhjk <[email protected]>2010-03-17 13:25:29 +0100
committerhjk <[email protected]>2010-03-17 13:25:29 +0100
commit72d90fd5ee4ae400d46f8a5fcb85ab828a59746d (patch)
tree53abaaa00eacf99b6b690e6a9ccba02d7a7ffc88 /src/plugins/debugger/watchhandler.cpp
parentf0300b9e798211ccedbde4eb801a5b9a8b170c2f (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.cpp9
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 {