aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/debugger/watchhandler.cpp
diff options
context:
space:
mode:
authorhjk <[email protected]>2011-11-25 18:50:54 +0100
committerhjk <[email protected]>2011-11-25 18:53:02 +0100
commitadd5c8cb7a506f159b1660396acf7f327861ba93 (patch)
tree02f0ef7a05996fa4ec4e81f0a420bd5e7034de86 /src/plugins/debugger/watchhandler.cpp
parent20cb2fe5a36cf59c6192099acd9535428ab550c8 (diff)
debugger: test the data that ends up displayed, not the raw data
Diffstat (limited to 'src/plugins/debugger/watchhandler.cpp')
-rw-r--r--src/plugins/debugger/watchhandler.cpp73
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))