diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2010-01-13 10:36:37 +0100 |
---|---|---|
committer | con <qtc-committer@nokia.com> | 2010-01-13 11:51:19 +0100 |
commit | 4be033ae40b277240332ff55a0667c9be7883326 (patch) | |
tree | b73a7237910a0b3081dab442a93975efa396ce87 /src/plugins/debugger/watchhandler.cpp | |
parent | 5813394b17fb330b4c3fd3e2debaaeb36e877832 (diff) | |
download | qt-creator-4be033ae40b277240332ff55a0667c9be7883326.tar.gz |
Debugger/CDB: Increase limits on string size in watch data.
Introduce truncation in item view instead (full value visible in
ToolTip).
Reviewed-by: hjk
Task-number: QTCREATORBUG-305
(cherry picked from commit 55b4e6d383d7d88ce32cf19ec87d85864ddb15fd)
Diffstat (limited to 'src/plugins/debugger/watchhandler.cpp')
-rw-r--r-- | src/plugins/debugger/watchhandler.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index 3723d5b627..661df2cc8a 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -727,6 +727,18 @@ void WatchModel::emitDataChanged(int column, const QModelIndex &parentIndex) emitDataChanged(column, index(i, 0, parentIndex)); } +// Truncate value for item view, maintaining quotes +static inline QString truncateValue(QString v) +{ + enum { maxLength = 512 }; + if (v.size() < maxLength) + return v; + const bool isQuoted = v.endsWith(QLatin1Char('"')); // check for 'char* "Hallo"' + v.truncate(maxLength); + v += isQuoted ? QLatin1String("...\"") : QLatin1String("..."); + return v; +} + QVariant WatchModel::data(const QModelIndex &idx, int role) const { const WatchItem &data = *watchItem(idx); @@ -735,9 +747,9 @@ QVariant WatchModel::data(const QModelIndex &idx, int role) const case Qt::DisplayRole: { switch (idx.column()) { case 0: return data.name; - case 1: return formattedValue(data, + case 1: return truncateValue(formattedValue(data, m_handler->m_individualFormats.value(data.iname, -1), - m_handler->m_typeFormats.value(data.type, -1)); + m_handler->m_typeFormats.value(data.type, -1))); case 2: if (!data.displayedType.isEmpty()) return data.displayedType; |