From 89d49e3b2052ef96245e5e786d5f509ba4ac818b Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Fri, 3 Jul 2009 13:25:51 +0200
Subject: [PATCH] debugger: make format for all integer types selectable

---
 src/plugins/debugger/watchhandler.cpp |  4 ++--
 src/plugins/debugger/watchutils.cpp   | 13 ++++++++++---
 src/plugins/debugger/watchutils.h     |  1 +
 3 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp
index 8296d3f74e3..c37938af492 100644
--- a/src/plugins/debugger/watchhandler.cpp
+++ b/src/plugins/debugger/watchhandler.cpp
@@ -482,7 +482,7 @@ QString niceType(QString type)
 static QString formattedValue(const WatchData &data,
     int individualFormat, int typeFormat)
 {
-    if (data.type == "int") {
+    if (isIntType(data.type)) {
         int format = individualFormat == -1 ? typeFormat : individualFormat;
         int value = data.value.toInt();
         if (format == 1)
@@ -649,7 +649,7 @@ QVariant WatchModel::data(const QModelIndex &idx, int role) const
             return true;
    
         case TypeFormatListRole:
-            if (data.type == "int")
+            if (isIntType(data.type))
                 return QStringList() << tr("decimal") << tr("hexadecimal")
                     << tr("binary") << tr("octal");
             break;
diff --git a/src/plugins/debugger/watchutils.cpp b/src/plugins/debugger/watchutils.cpp
index 6933b68ff8e..0263ca51a83 100644
--- a/src/plugins/debugger/watchutils.cpp
+++ b/src/plugins/debugger/watchutils.cpp
@@ -305,18 +305,25 @@ QString extractTypeFromPTypeOutput(const QString &str)
     return res.simplified();
 }
 
-bool isIntOrFloatType(const QString &type)
+bool isIntType(const QString &type)
 {
     static const QStringList types = QStringList()
         << QLatin1String("char") << QLatin1String("int") << QLatin1String("short")
-        << QLatin1String("float") << QLatin1String("double") << QLatin1String("long")
-        << QLatin1String("bool") << QLatin1String("signed char") << QLatin1String("unsigned")
+        << QLatin1String("long") << QLatin1String("bool")
+        << QLatin1String("signed char") << QLatin1String("unsigned")
         << QLatin1String("unsigned char")
         << QLatin1String("unsigned int") << QLatin1String("unsigned long")
         << QLatin1String("long long")  << QLatin1String("unsigned long long");
     return types.contains(type);
 }
 
+bool isIntOrFloatType(const QString &type)
+{
+    static const QStringList types = QStringList()
+        << QLatin1String("float") << QLatin1String("double");
+    return isIntType(type) || types.contains(type);
+}
+
 QString sizeofTypeExpression(const QString &type)
 {
     if (type.endsWith(QLatin1Char('*')))
diff --git a/src/plugins/debugger/watchutils.h b/src/plugins/debugger/watchutils.h
index d9a43d136f9..94948499e7b 100644
--- a/src/plugins/debugger/watchutils.h
+++ b/src/plugins/debugger/watchutils.h
@@ -72,6 +72,7 @@ QString gdbQuoteTypes(const QString &type);
 bool extractTemplate(const QString &type, QString *tmplate, QString *inner);
 QString extractTypeFromPTypeOutput(const QString &str);
 bool isIntOrFloatType(const QString &type);
+bool isIntType(const QString &type);
 QString sizeofTypeExpression(const QString &type);
 QString quoteUnprintableLatin1(const QByteArray &ba);
 
-- 
GitLab