aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/debugger/watchdata.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/debugger/watchdata.cpp')
-rw-r--r--src/plugins/debugger/watchdata.cpp39
1 files changed, 21 insertions, 18 deletions
diff --git a/src/plugins/debugger/watchdata.cpp b/src/plugins/debugger/watchdata.cpp
index 265d0bbc1be..98e382d9f26 100644
--- a/src/plugins/debugger/watchdata.cpp
+++ b/src/plugins/debugger/watchdata.cpp
@@ -300,14 +300,15 @@ QString WatchData::toString() const
return res + QLatin1Char('}');
}
-// Format a tooltip fow with aligned colon.
-static void formatToolTipRow(QTextStream &str,
- const QString &category, const QString &value)
+// Format a tooltip row with aligned colon.
+static void formatToolTipRow(QTextStream &str, const QString &category, const QString &value)
{
QString val = value.toHtmlEscaped();
val.replace(QLatin1Char('\n'), QLatin1String("<br>"));
- str << "<tr><td>" << category << "</td><td> : </td><td>"
- << val << "</td></tr>";
+ str << "<tr><td>" << category << "</td><td>";
+ if (!category.isEmpty())
+ str << ':';
+ str << "</td><td>" << val << "</td></tr>";
}
QString WatchData::toToolTip() const
@@ -320,20 +321,22 @@ QString WatchData::toToolTip() const
formatToolTipRow(str, tr("Internal Type"), QLatin1String(type));
if (!displayedType.isEmpty())
formatToolTipRow(str, tr("Displayed Type"), displayedType);
- QString val = value;
- // Automatically display hex value for unsigned integers.
- if (!val.isEmpty() && val.at(0).isDigit() && isIntType(type)) {
- bool ok;
- const quint64 intValue = val.toULongLong(&ok);
- if (ok && intValue)
- val += QLatin1String(" (hex) ") + QString::number(intValue, 16);
- }
- if (val.size() > 1000) {
- val.truncate(1000);
- val += QLatin1Char(' ');
- val += tr("... <cut off>");
+ bool ok;
+ const quint64 intValue = value.toULongLong(&ok);
+ if (ok && intValue) {
+ formatToolTipRow(str, tr("Value"), QLatin1String("(dec) ") + value);
+ formatToolTipRow(str, QString(), QLatin1String("(hex) ") + QString::number(intValue, 16));
+ formatToolTipRow(str, QString(), QLatin1String("(oct) ") + QString::number(intValue, 8));
+ formatToolTipRow(str, QString(), QLatin1String("(bin) ") + QString::number(intValue, 2));
+ } else {
+ QString val = value;
+ if (val.size() > 1000) {
+ val.truncate(1000);
+ val += QLatin1Char(' ');
+ val += tr("... <cut off>");
+ }
+ formatToolTipRow(str, tr("Value"), val);
}
- formatToolTipRow(str, tr("Value"), val);
if (address)
formatToolTipRow(str, tr("Object Address"), formatToolTipAddress(address));
if (origaddr)