QmlEngine: handling breakpoint insertions/removals

Reviewed-by: hjk
This commit is contained in:
Christiaan Janssen
2010-11-30 11:35:17 +01:00
parent 0269e60bac
commit 4b7d826daa

View File

@@ -467,11 +467,15 @@ void QmlEngine::attemptBreakpointSynchronization()
handler->setEngine(id, this); handler->setEngine(id, this);
} }
//bool updateNeeded = false;
JSAgentBreakpoints breakpoints; JSAgentBreakpoints breakpoints;
foreach (BreakpointId id, handler->engineBreakpointIds(this)) { foreach (BreakpointId id, handler->engineBreakpointIds(this)) {
if (handler->state(id) == BreakpointInsertRequested) if (handler->state(id) == BreakpointRemoveRequested) {
handler->notifyBreakpointRemoveProceeding(id);
handler->notifyBreakpointRemoveOk(id);
} else {
if (handler->state(id) == BreakpointInsertRequested) {
handler->notifyBreakpointInsertProceeding(id); handler->notifyBreakpointInsertProceeding(id);
}
QString processedFilename = handler->fileName(id); QString processedFilename = handler->fileName(id);
#ifdef Q_OS_MACX #ifdef Q_OS_MACX
// Qt Quick Applications by default copy the qml directory to buildDir()/X.app/Contents/Resources // Qt Quick Applications by default copy the qml directory to buildDir()/X.app/Contents/Resources
@@ -486,6 +490,10 @@ void QmlEngine::attemptBreakpointSynchronization()
bp.lineNumber = handler->lineNumber(id); bp.lineNumber = handler->lineNumber(id);
bp.functionName = handler->functionName(id).toUtf8(); bp.functionName = handler->functionName(id).toUtf8();
breakpoints.insert(bp); breakpoints.insert(bp);
if (handler->state(id) == BreakpointInsertProceeding) {
handler->notifyBreakpointInsertOk(id);
}
}
} }
QByteArray reply; QByteArray reply;
@@ -714,7 +722,7 @@ void QmlEngine::messageReceived(const QByteArray &message)
foreach (BreakpointId id, handler->engineBreakpointIds(this)) { foreach (BreakpointId id, handler->engineBreakpointIds(this)) {
QString processedFilename = handler->fileName(id); QString processedFilename = handler->fileName(id);
if (processedFilename == file && handler->lineNumber(id) == line) { if (processedFilename == file && handler->lineNumber(id) == line) {
handler->notifyBreakpointInsertOk(id); QTC_ASSERT(handler->state(id) == BreakpointInserted,/**/);
BreakpointResponse br = handler->response(id); BreakpointResponse br = handler->response(id);
br.fileName = file; br.fileName = file;
br.lineNumber = line; br.lineNumber = line;