diff options
author | hjk <[email protected]> | 2010-06-23 15:13:51 +0200 |
---|---|---|
committer | hjk <[email protected]> | 2010-06-23 16:16:32 +0200 |
commit | a25fd01a10ca06db9dac027eba0bf8118f0d901c (patch) | |
tree | 6dc442f46b99292952cf83d5ccc179383d76c2e2 /src/plugins/debugger/watchhandler.cpp | |
parent | bb0f033b92e522527081c7e73a201e6feeceac1f (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.cpp | 75 |
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(); |