QDeclarativeDebugServer: Send hello answer before any service messages
This is necessary since some services may like to send a message back immediately when its state changes to enabled. Reviewed-by: Kai Koehne (cherry picked from commit 9fa0a9319ee0f178d03f9bdc4afbabb8563b4c62)
This commit is contained in:
parent
dbbcc4dff0
commit
84a5bde0c4
|
@ -250,6 +250,17 @@ void QDeclarativeDebugServer::receiveMessage(const QByteArray &message)
|
|||
int version;
|
||||
in >> version >> d->clientPlugins;
|
||||
|
||||
// Send the hello answer immediately, since it needs to arrive before
|
||||
// the plugins below start sending messages.
|
||||
QByteArray helloAnswer;
|
||||
{
|
||||
QDataStream out(&helloAnswer, QIODevice::WriteOnly);
|
||||
out << QString(QLatin1String("QDeclarativeDebugClient")) << 0 << protocolVersion << d->plugins.keys();
|
||||
}
|
||||
d->connection->send(helloAnswer);
|
||||
|
||||
d->gotHello = true;
|
||||
|
||||
QHash<QString, QDeclarativeDebugService*>::Iterator iter = d->plugins.begin();
|
||||
for (; iter != d->plugins.end(); ++iter) {
|
||||
QDeclarativeDebugService::Status newStatus = QDeclarativeDebugService::Unavailable;
|
||||
|
@ -259,14 +270,6 @@ void QDeclarativeDebugServer::receiveMessage(const QByteArray &message)
|
|||
iter.value()->statusChanged(newStatus);
|
||||
}
|
||||
|
||||
QByteArray helloAnswer;
|
||||
{
|
||||
QDataStream out(&helloAnswer, QIODevice::WriteOnly);
|
||||
out << QString(QLatin1String("QDeclarativeDebugClient")) << 0 << protocolVersion << d->plugins.keys();
|
||||
}
|
||||
d->connection->send(helloAnswer);
|
||||
|
||||
d->gotHello = true;
|
||||
qWarning("QDeclarativeDebugServer: Connection established");
|
||||
} else {
|
||||
|
||||
|
|
Loading…
Reference in New Issue