From cac6c2d474ae1bf42de3e8138cda71c9e5391437 Mon Sep 17 00:00:00 2001 From: Aurindam Jana Date: Thu, 15 Dec 2011 17:52:22 +0100 Subject: DeclarativeDebug: Add version info to service plugins Send the version info of each plugin alongwith the plugin names to client. Change-Id: I223689b32cdc5b0c48a4f508330033352b427937 Reviewed-by: Kai Koehne --- .../debugger/qdeclarativedebugclient.cpp | 45 ++++++++++++++++++++-- 1 file changed, 41 insertions(+), 4 deletions(-) (limited to 'src/declarative/debugger/qdeclarativedebugclient.cpp') diff --git a/src/declarative/debugger/qdeclarativedebugclient.cpp b/src/declarative/debugger/qdeclarativedebugclient.cpp index 5018e9535e..9d5b88c319 100644 --- a/src/declarative/debugger/qdeclarativedebugclient.cpp +++ b/src/declarative/debugger/qdeclarativedebugclient.cpp @@ -75,7 +75,7 @@ public: QIODevice *device; bool gotHello; - QStringList serverPlugins; + QHash serverPlugins; QHash plugins; void advertisePlugins(); @@ -130,7 +130,21 @@ void QDeclarativeDebugConnectionPrivate::readyRead() int version = -1; pack >> version; if (version == protocolVersion) { - pack >> serverPlugins; + QStringList pluginNames; + QList pluginVersions; + pack >> pluginNames; + if (!pack.isEmpty()) + pack >> pluginVersions; + + const int pluginNamesSize = pluginNames.size(); + const int pluginVersionsSize = pluginVersions.size(); + for (int i = 0; i < pluginNamesSize; ++i) { + float pluginVersion = 1.0; + if (i < pluginVersionsSize) + pluginVersion = pluginVersions.at(i); + serverPlugins.insert(pluginNames.at(i), pluginVersion); + } + validHello = true; } } @@ -163,8 +177,23 @@ void QDeclarativeDebugConnectionPrivate::readyRead() if (op == 1) { // Service Discovery - QStringList oldServerPlugins = serverPlugins; - pack >> serverPlugins; + QHash oldServerPlugins = serverPlugins; + serverPlugins.clear(); + + QStringList pluginNames; + QList pluginVersions; + pack >> pluginNames; + if (!pack.isEmpty()) + pack >> pluginVersions; + + const int pluginNamesSize = pluginNames.size(); + const int pluginVersionsSize = pluginVersions.size(); + for (int i = 0; i < pluginNamesSize; ++i) { + float pluginVersion = 1.0; + if (i < pluginVersionsSize) + pluginVersion = pluginVersions.at(i); + serverPlugins.insert(pluginNames.at(i), pluginVersion); + } QHash::Iterator iter = plugins.begin(); for (; iter != plugins.end(); ++iter) { @@ -345,6 +374,14 @@ QString QDeclarativeDebugClient::name() const return d->name; } +float QDeclarativeDebugClient::serviceVersion() const +{ + Q_D(const QDeclarativeDebugClient); + if (d->connection->d->serverPlugins.contains(d->name)) + return d->connection->d->serverPlugins.value(d->name); + return -1; +} + QDeclarativeDebugClient::Status QDeclarativeDebugClient::status() const { Q_D(const QDeclarativeDebugClient); -- cgit v1.2.3