aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/debugger/watchhandler.cpp
diff options
context:
space:
mode:
authorhjk <[email protected]>2010-06-23 15:13:51 +0200
committerhjk <[email protected]>2010-06-23 16:16:32 +0200
commita25fd01a10ca06db9dac027eba0bf8118f0d901c (patch)
tree6dc442f46b99292952cf83d5ccc179383d76c2e2 /src/plugins/debugger/watchhandler.cpp
parentbb0f033b92e522527081c7e73a201e6feeceac1f (diff)
debugger: simplify handling of context menu actions of the Locals&Watchers view
Diffstat (limited to 'src/plugins/debugger/watchhandler.cpp')
-rw-r--r--src/plugins/debugger/watchhandler.cpp75
1 files changed, 40 insertions, 35 deletions
diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp
index 2118ddd9ea4..92b71279f61 100644
--- a/src/plugins/debugger/watchhandler.cpp
+++ b/src/plugins/debugger/watchhandler.cpp
@@ -184,7 +184,7 @@ void WatchModel::endCycle()
m_fetchTriggered.clear();
emit enableUpdates(true);
}
-
+
DebuggerEngine *WatchModel::engine() const
{
return m_handler->m_engine;
@@ -744,28 +744,49 @@ bool WatchModel::setData(const QModelIndex &index, const QVariant &value, int ro
plugin()->clearCppCodeModelSnapshot();
return true;
}
+
+ case RequestWatchPointRole: {
+ engine()->watchPoint(value.toPoint());
+ return true;
+ }
}
WatchItem &data = *watchItem(index);
- if (role == LocalsExpandedRole) {
- if (value.toBool()) {
- // Should already have been triggered by fetchMore()
- //QTC_ASSERT(m_handler->m_expandedINames.contains(data.iname), /**/);
- m_handler->m_expandedINames.insert(data.iname);
- } else {
- m_handler->m_expandedINames.remove(data.iname);
- }
- } else if (role == LocalsTypeFormatRole) {
- m_handler->setFormat(data.type, value.toInt());
- engine()->updateWatchData(data);
- } else if (role == LocalsIndividualFormatRole) {
- const int format = value.toInt();
- if (format == -1) {
- m_handler->m_individualFormats.remove(data.addr);
- } else {
- m_handler->m_individualFormats[data.addr] = format;
+
+ switch (role) {
+ case LocalsExpandedRole:
+ if (value.toBool()) {
+ // Should already have been triggered by fetchMore()
+ //QTC_ASSERT(m_handler->m_expandedINames.contains(data.iname), /**/);
+ m_handler->m_expandedINames.insert(data.iname);
+ } else {
+ m_handler->m_expandedINames.remove(data.iname);
+ }
+ break;
+
+ case LocalsTypeFormatRole:
+ m_handler->setFormat(data.type, value.toInt());
+ engine()->updateWatchData(data);
+ break;
+
+ case LocalsIndividualFormatRole: {
+ const int format = value.toInt();
+ if (format == -1) {
+ m_handler->m_individualFormats.remove(data.addr);
+ } else {
+ m_handler->m_individualFormats[data.addr] = format;
+ }
+ engine()->updateWatchData(data);
+ break;
}
- engine()->updateWatchData(data);
+
+ case RequestRemoveWatchExpressionRole:
+ m_handler->removeWatchExpression(value.toString());
+ break;
+
+ case RequestWatchExpressionRole:
+ m_handler->watchExpression(value.toString());
+ break;
}
emit dataChanged(index, index);
return true;
@@ -1065,10 +1086,6 @@ WatchHandler::WatchHandler(DebuggerEngine *engine)
m_watchers = new WatchModel(this, WatchersWatch);
m_tooltips = new WatchModel(this, TooltipsWatch);
- connect(theDebuggerAction(WatchExpression),
- SIGNAL(triggered()), this, SLOT(watchExpression()));
- connect(theDebuggerAction(RemoveWatchExpression),
- SIGNAL(triggered()), this, SLOT(removeWatchExpression()));
connect(theDebuggerAction(ShowStdNamespace),
SIGNAL(triggered()), this, SLOT(emitAllChanged()));
connect(theDebuggerAction(ShowQtNamespace),
@@ -1198,12 +1215,6 @@ void WatchHandler::removeData(const QByteArray &iname)
model->destroyItem(item);
}
-void WatchHandler::watchExpression()
-{
- if (QAction *action = qobject_cast<QAction *>(sender()))
- watchExpression(action->data().toString());
-}
-
QByteArray WatchHandler::watcherName(const QByteArray &exp)
{
return "watch." + QByteArray::number(m_watcherNames[exp]);
@@ -1323,12 +1334,6 @@ void WatchHandler::showEditValue(const WatchData &data)
}
}
-void WatchHandler::removeWatchExpression()
-{
- if (QAction *action = qobject_cast<QAction *>(sender()))
- removeWatchExpression(action->data().toString());
-}
-
void WatchHandler::removeWatchExpression(const QString &exp0)
{
QByteArray exp = exp0.toLatin1();