summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjk <qtc-committer@nokia.com>2010-08-18 13:51:49 +0200
committerhjk <qtc-committer@nokia.com>2010-08-18 13:51:49 +0200
commit69fb75b627d478796f95518a66353a543d588fe3 (patch)
tree3485784c8404919961dd9fd2d8887806491bfb81
parent991aceb0fda59e7803dc9bfd3ae602a26f03d874 (diff)
downloadqt-creator-69fb75b627d478796f95518a66353a543d588fe3.tar.gz
debugger: fix 2.x regression: allow assignment to structure members
-rw-r--r--src/plugins/debugger/watchhandler.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp
index b4cfd13f26..a4adf74e50 100644
--- a/src/plugins/debugger/watchhandler.cpp
+++ b/src/plugins/debugger/watchhandler.cpp
@@ -602,8 +602,21 @@ QVariant WatchModel::data(const QModelIndex &idx, int role) const
break;
}
- case ExpressionRole:
- return data.exp;
+ case ExpressionRole: {
+ if (!data.exp.isEmpty())
+ return data.exp;
+ if (!data.addr.isEmpty() && !data.type.isEmpty()) {
+ bool ok;
+ const quint64 addr = data.addr.toULongLong(&ok, 16);
+ if (ok && addr)
+ return QString("*(%1*)%2").arg(data.type).arg(addr);
+ }
+ WatchItem *parent = item->parent;
+ if (parent && !parent->exp.isEmpty())
+ return QString("(%1).%2")
+ .arg(QString::fromLatin1(parent->exp)).arg(data.name);
+ return QVariant();
+ }
case INameRole:
return data.iname;