From 69fb75b627d478796f95518a66353a543d588fe3 Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Wed, 18 Aug 2010 13:51:49 +0200
Subject: [PATCH] debugger: fix 2.x regression: allow assignment to structure
 members

---
 src/plugins/debugger/watchhandler.cpp | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp
index b4cfd13f26e..a4adf74e506 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;
-- 
GitLab