diff options
author | hjk <[email protected]> | 2011-11-25 18:50:54 +0100 |
---|---|---|
committer | hjk <[email protected]> | 2011-11-25 18:53:02 +0100 |
commit | add5c8cb7a506f159b1660396acf7f327861ba93 (patch) | |
tree | 02f0ef7a05996fa4ec4e81f0a420bd5e7034de86 /src/plugins/debugger/watchhandler.cpp | |
parent | 20cb2fe5a36cf59c6192099acd9535428ab550c8 (diff) |
debugger: test the data that ends up displayed, not the raw data
Change-Id: I9453abd43299416e8d8535f9567fe96ff976e413
Reviewed-by: hjk <[email protected]>
Diffstat (limited to 'src/plugins/debugger/watchhandler.cpp')
-rw-r--r-- | src/plugins/debugger/watchhandler.cpp | 73 |
1 files changed, 46 insertions, 27 deletions
diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index aacebc23321..5ff800585bc 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -691,6 +691,43 @@ static inline QString expression(const WatchItem *item) return QString(); } +QString WatchModel::display(const WatchItem *item, int col) const +{ + QString result; + switch (col) { + case 0: + if (item->name.isEmpty()) + result = tr("<Edit>"); + else if (item->name == QLatin1String("*") && item->parent) + result = QLatin1Char('*') + item->parent->name; + else + result = removeInitialNamespace(item->name); + break; + case 1: + result = removeInitialNamespace( + truncateValue(formattedValue(*item))); + if (item->referencingAddress) { + result += QLatin1String(" @"); + result += QString::fromLatin1(item->hexAddress()); + } + break; + case 2: + result = removeNamespaces(displayType(*item)); + break; + default: + break; + } + return result; +} + +QString WatchModel::displayForAutoTest(const QByteArray &iname) const +{ + const WatchItem *item = findItem(iname, m_root); + if (item) + return display(item, 1) + QLatin1Char(' ') + display(item, 2); + return QString(); +} + QVariant WatchModel::data(const QModelIndex &idx, int role) const { const WatchItem *item = watchItem(idx); @@ -724,33 +761,8 @@ QVariant WatchModel::data(const QModelIndex &idx, int role) const } } - case Qt::DisplayRole: { - QString result; - switch (idx.column()) { - case 0: - if (data.name.isEmpty()) - result = tr("<Edit>"); - else if (data.name == QLatin1String("*") && item->parent) - result = QLatin1Char('*') + item->parent->name; - else - result = removeInitialNamespace(data.name); - break; - case 1: - result = removeInitialNamespace( - truncateValue(formattedValue(data))); - if (data.referencingAddress) { - result += QLatin1String(" @"); - result += QString::fromLatin1(data.hexAddress()); - } - break; - case 2: - result = removeNamespaces(displayType(data)); - break; - default: - break; - } - return result; - } + case Qt::DisplayRole: + return display(item, idx.column()); case Qt::ToolTipRole: return debuggerCore()->boolSetting(UseToolTipsInLocalsView) @@ -1657,6 +1669,13 @@ const WatchData *WatchHandler::findItem(const QByteArray &iname) const return model->findItem(iname, model->m_root); } +QString WatchHandler::displayForAutoTest(const QByteArray &iname) const +{ + const WatchModel *model = modelForIName(iname); + QTC_ASSERT(model, return 0); + return model->displayForAutoTest(iname); +} + QModelIndex WatchHandler::itemIndex(const QByteArray &iname) const { if (const WatchModel *model = modelForIName(iname)) |