summaryrefslogtreecommitdiff
path: root/src/plugins/debugger/breakhandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/debugger/breakhandler.cpp')
-rw-r--r--src/plugins/debugger/breakhandler.cpp75
1 files changed, 29 insertions, 46 deletions
diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp
index 3492fbbdd8..c9b63e8bfc 100644
--- a/src/plugins/debugger/breakhandler.cpp
+++ b/src/plugins/debugger/breakhandler.cpp
@@ -572,15 +572,6 @@ QVariant BreakHandler::data(const QModelIndex &mi, int role) const
static const QString empty = QString(QLatin1Char('-'));
switch (role) {
- case RequestFindSimilarBreakpointRole: {
- // Complain if data/setData are not used alternately.
- QTC_ASSERT(m_lastFoundQueried, return false);
- QVariant value = QVariant::fromValue(m_lastFound);
- m_lastFoundQueried = false;
- m_lastFound = 0; // Reset for "safety".
- return value;
- }
-
case CurrentThreadIdRole:
QTC_ASSERT(m_engine, return QVariant());
return m_engine->threadsHandler()->currentThreadId();
@@ -714,16 +705,6 @@ Qt::ItemFlags BreakHandler::flags(const QModelIndex &index) const
bool BreakHandler::setData(const QModelIndex &index, const QVariant &value, int role)
{
switch (role) {
- case RequestFindSimilarBreakpointRole: {
- // Complain if data/setData are not used alternately.
- QTC_ASSERT(!m_lastFoundQueried, return false);
- BreakpointData *needle = value.value<BreakpointData *>();
- QTC_ASSERT(needle, return false);
- m_lastFound = findSimilarBreakpoint(needle);
- m_lastFoundQueried = true;
- return true;
- }
-
case RequestActivateBreakpointRole: {
const BreakpointData *data = at(value.toInt());
QTC_ASSERT(data, return false);
@@ -739,14 +720,6 @@ bool BreakHandler::setData(const QModelIndex &index, const QVariant &value, int
return true;
}
- case RequestUpdateBreakpointRole: {
- BreakpointData *data = value.value<BreakpointData *>();
- QTC_ASSERT(data, return false);
- QTC_ASSERT(m_engine, return false);
- m_engine->attemptBreakpointSynchronization();
- return true;
- }
-
case RequestSynchronizeBreakpointsRole:
QTC_ASSERT(m_engine, return false);
m_engine->attemptBreakpointSynchronization();
@@ -884,14 +857,12 @@ void BreakHandler::removeBreakpoint(int index)
return;
removeBreakpointHelper(index);
emit layoutChanged();
- //saveBreakpoints();
}
void BreakHandler::removeBreakpoint(BreakpointData *data)
{
removeBreakpointHelper(m_bp.indexOf(data));
emit layoutChanged();
- //saveBreakpoints();
}
void BreakHandler::toggleBreakpointEnabled(BreakpointData *data)
@@ -905,7 +876,6 @@ void BreakHandler::toggleBreakpointEnabled(BreakpointData *data)
m_enabled.removeAll(data);
m_disabled.append(data);
}
- //saveBreakpoints();
updateMarkers();
}
@@ -913,7 +883,7 @@ void BreakHandler::appendBreakpoint(BreakpointData *data)
{
append(data);
emit layoutChanged();
- saveBreakpoints();
+ saveBreakpoints(); // FIXME: remove?
updateMarkers();
}
@@ -922,27 +892,40 @@ void BreakHandler::removeAllBreakpoints()
for (int index = size(); --index >= 0;)
removeBreakpointHelper(index);
emit layoutChanged();
- //saveBreakpoints();
updateMarkers();
}
+BreakpointData *BreakHandler::findBreakpoint(const QString &fileName, int lineNumber)
+{
+ foreach (BreakpointData *data, m_bp)
+ if (data->isLocatedAt(fileName, lineNumber))
+ return data;
+ return 0;
+}
+
void BreakHandler::toggleBreakpoint(const QString &fileName, int lineNumber)
{
- for (int index = size(); --index >= 0;) {
- BreakpointData *data = m_bp.at(index);
- if (data->isLocatedAt(fileName, lineNumber)) {
- removeBreakpointHelper(index);
- emit layoutChanged();
- return;
- }
+ BreakpointData *data = findBreakpoint(fileName, lineNumber);
+ if (data) {
+ removeBreakpoint(data);
+ } else {
+ data = new BreakpointData;
+ data->fileName = fileName;
+ data->lineNumber = QByteArray::number(lineNumber);
+ data->pending = true;
+ data->setMarkerFileName(fileName);
+ data->setMarkerLineNumber(lineNumber);
+ appendBreakpoint(data);
+ m_engine->attemptBreakpointSynchronization();
}
- BreakpointData *data = new BreakpointData;
- data->fileName = fileName;
- data->lineNumber = QByteArray::number(lineNumber);
- data->pending = true;
- data->setMarkerFileName(fileName);
- data->setMarkerLineNumber(lineNumber);
- appendBreakpoint(data);
+}
+
+void BreakHandler::toggleBreakpointEnabled(const QString &fileName, int lineNumber)
+{
+ BreakpointData *data = findBreakpoint(fileName, lineNumber);
+ QTC_ASSERT(data, return);
+ data->enabled = !data->enabled;
+ data->updateMarker();
m_engine->attemptBreakpointSynchronization();
}