diff options
author | hjk <[email protected]> | 2012-01-12 16:03:42 +0100 |
---|---|---|
committer | hjk <[email protected]> | 2012-01-12 16:05:36 +0100 |
commit | e29a3254092b2872cc843101c86d3e11daba48dd (patch) | |
tree | 1937efdffadef28015f590f59d587c34a05a9aec /src/plugins/debugger/watchhandler.cpp | |
parent | f09e849c960d9b9b2f22f141c98f1cf75f537b19 (diff) |
debugger: also translate special strings when editing values in L&E
Task-number: QTCREATORBUG-5839
Change-Id: I5720a679d2ef29cf870e12760964525bec141d0e
Reviewed-by: hjk <[email protected]>
Diffstat (limited to 'src/plugins/debugger/watchhandler.cpp')
-rw-r--r-- | src/plugins/debugger/watchhandler.cpp | 61 |
1 files changed, 32 insertions, 29 deletions
diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index 03e4bd27240..366877071c4 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -431,6 +431,36 @@ static QString quoteUnprintable(const QString &str) return encoded; } +static QString translate(const QString &str) +{ + if (str.startsWith(QLatin1Char('<'))) { + if (str == QLatin1String("<Edit>")) + return WatchHandler::tr("<Edit>"); + if (str == QLatin1String("<empty>")) + return WatchHandler::tr("<empty>"); + if (str == QLatin1String("<uninitialized>")) + return WatchHandler::tr("<uninitialized>"); + if (str == QLatin1String("<invalid>")) + return WatchHandler::tr("<invalid>"); + if (str == QLatin1String("<not accessible>")) + return WatchHandler::tr("<not accessible>"); + if (str.endsWith(QLatin1String(" items>"))) { + // '<10 items>' or '<>10 items>' (more than) + bool ok; + const bool moreThan = str.at(1) == QLatin1Char('>'); + const int numberPos = moreThan ? 2 : 1; + const int len = str.indexOf(QLatin1Char(' ')) - numberPos; + const int size = str.mid(numberPos, len).toInt(&ok); + QTC_ASSERT(ok, qWarning("WatchHandler: Invalid item count '%s'", + qPrintable(str))) + return moreThan ? + WatchHandler::tr("<more than %n items>", 0, size) : + WatchHandler::tr("<%n items>", 0, size); + } + } + return quoteUnprintable(str); +} + QString WatchModel::formattedValue(const WatchData &data) const { const QByteArray qtNamespace = engine()->qtNamespace(); @@ -469,34 +499,7 @@ QString WatchModel::formattedValue(const WatchData &data) const return reformatInteger(integer, format); } - QString result = value; - if (result.startsWith(QLatin1Char('<'))) { - if (result == QLatin1String("<Edit>")) - return WatchHandler::tr("<Edit>"); - if (result == QLatin1String("<empty>")) - return WatchHandler::tr("<empty>"); - if (result == QLatin1String("<uninitialized>")) - return WatchHandler::tr("<uninitialized>"); - if (result == QLatin1String("<invalid>")) - return WatchHandler::tr("<invalid>"); - if (result == QLatin1String("<not accessible>")) - return WatchHandler::tr("<not accessible>"); - if (result.endsWith(QLatin1String(" items>"))) { - // '<10 items>' or '<>10 items>' (more than) - bool ok; - const bool moreThan = result.at(1) == QLatin1Char('>'); - const int numberPos = moreThan ? 2 : 1; - const int len = result.indexOf(QLatin1Char(' ')) - numberPos; - const int size = result.mid(numberPos, len).toInt(&ok); - QTC_ASSERT(ok, qWarning("WatchHandler: Invalid item count '%s'", - qPrintable(result))) - return moreThan ? - WatchHandler::tr("<more than %n items>", 0, size) : - WatchHandler::tr("<%n items>", 0, size); - } - } - - return quoteUnprintable(result); + return translate(value); } // Get a pointer address from pointer values reported by the debugger. @@ -554,7 +557,7 @@ static inline QVariant editValue(const WatchData &d) stringValue.replace(QLatin1String("\n"), QLatin1String("\\n")); } } - return QVariant(stringValue); + return QVariant(translate(stringValue)); } bool WatchModel::canFetchMore(const QModelIndex &index) const |