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