From ffee3f98afed26ea61d03714546ae2255e42897d Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Wed, 1 Jul 2009 14:15:10 +0200
Subject: [PATCH] debugger: fix regression in QVariant dumper

---
 share/qtcreator/gdbmacros/gdbmacros.cpp | 4 ++--
 src/plugins/debugger/watchutils.cpp     | 3 +++
 tests/manual/gdbdebugger/simple/app.cpp | 8 ++++++++
 3 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/share/qtcreator/gdbmacros/gdbmacros.cpp b/share/qtcreator/gdbmacros/gdbmacros.cpp
index e7594707feb..03840ac854d 100644
--- a/share/qtcreator/gdbmacros/gdbmacros.cpp
+++ b/share/qtcreator/gdbmacros/gdbmacros.cpp
@@ -2460,7 +2460,7 @@ static void qDumpQVariant(QDumper &d)
         d.putItem("value", "(invalid)");
     } else if (value.isEmpty()) {
         d.beginItem("value");
-            d.put("(").put(v.typeName()).put(") ").put(qPrintable(value));
+            d.put("(").put(v.typeName()).put(") ");
         d.endItem();
     } else {
         QByteArray ba;
@@ -2469,7 +2469,7 @@ static void qDumpQVariant(QDumper &d)
         ba += ") ";
         ba += qPrintable(value);
         d.putItem("value", ba);
-        d.putItem("valueencoded", "4");
+        d.putItem("valueencoded", "5");
     }
     d.putItem("type", NS"QVariant");
     d.putItem("numchild", (isInvalid ? "0" : "1"));
diff --git a/src/plugins/debugger/watchutils.cpp b/src/plugins/debugger/watchutils.cpp
index 883d6cba1f7..60b75fdc761 100644
--- a/src/plugins/debugger/watchutils.cpp
+++ b/src/plugins/debugger/watchutils.cpp
@@ -376,6 +376,9 @@ QString decodeData(const QByteArray &ba, int encoding)
             const QByteArray decodedBa = QByteArray::fromBase64(ba);
             return QString::fromUtf16(reinterpret_cast<const ushort *>(decodedBa.data()), decodedBa.size() / 2);
         }
+        case 5: { //  base64 encoded 8 bit data, without quotes (see 1)
+            return quoteUnprintableLatin1(QByteArray::fromBase64(ba));
+        }
     }
     return QCoreApplication::translate("Debugger", "<Encoding error>");
 }
diff --git a/tests/manual/gdbdebugger/simple/app.cpp b/tests/manual/gdbdebugger/simple/app.cpp
index d4cd03b4bc0..b8b327af50e 100644
--- a/tests/manual/gdbdebugger/simple/app.cpp
+++ b/tests/manual/gdbdebugger/simple/app.cpp
@@ -468,6 +468,7 @@ void testQObject(int &argc, char *argv[])
 #endif
     QString str = QString::fromUtf8("XXXXXXXXXXXXXXyyXXX ö");
     QLabel l(str);
+    l.setObjectName("Some Label");
     l.show();
     app.exec();
 }
@@ -915,7 +916,13 @@ void testQVariant1()
 
 void testQVariant2()
 {
+    QVariant value;
+    QVariant::Type t = QVariant::String;
+    value = QVariant(t, (void*)0);
+    *(QString*)value.data() = QString("XXX");
+
     int i = 1;
+#if 0
     QVariant var;
     var.setValue(1);
     var.setValue(2);
@@ -927,6 +934,7 @@ void testQVariant2()
     var.setValue(QStringList() << "World" << "Hello");
     var.setValue(QStringList() << "Hello" << "Hello");
     var.setValue(QStringList() << "World" << "Hello" << "Hello");
+#endif
 #if 0
     QVariant var3;
     QHostAddress ha("127.0.0.1");
-- 
GitLab