QmlDebugger: Log status of different services

Reviewed-by: Christiaan Janssen
This commit is contained in:
Kai Koehne
2010-09-30 14:05:20 +02:00
parent 8ad34357b8
commit 226a82d3dc
10 changed files with 102 additions and 23 deletions

View File

@@ -65,8 +65,14 @@ ClientProxy::ClientProxy(Debugger::QmlAdapter *adapter, QObject *parent)
void ClientProxy::connectToServer()
{
m_designClient = new QmlJSObserverClient(m_adapter->connection(), this);
emit connected();
if (m_designClient->status() == QDeclarativeDebugClient::Enabled)
emit connected();
m_adapter->logServiceStatusChange(m_designClient->name(), m_designClient->status());
connect(m_designClient, SIGNAL(connectedStatusChanged(QDeclarativeDebugClient::Status)),
this, SLOT(clientStatusChanged(QDeclarativeDebugClient::Status)));
connect(m_designClient, SIGNAL(currentObjectsChanged(QList<int>)),
SLOT(onCurrentObjectsChanged(QList<int>)));
connect(m_designClient, SIGNAL(colorPickerActivated()),
@@ -90,9 +96,24 @@ void ClientProxy::connectToServer()
reloadEngines();
}
void ClientProxy::clientStatusChanged(QDeclarativeDebugClient::Status status)
{
QString serviceName;
if (QDeclarativeDebugClient *client = qobject_cast<QDeclarativeDebugClient*>(sender())) {
serviceName = client->name();
}
m_adapter->logServiceStatusChange(serviceName, status);
if (status == QDeclarativeDebugClient::Enabled)
emit connected();
}
void ClientProxy::disconnectFromServer()
{
if (m_designClient) {
disconnect(m_designClient, SIGNAL(connectedStatusChanged(QDeclarativeDebugClient::Status)),
this, SLOT(clientStatusChanged(QDeclarativeDebugClient::Status)));
disconnect(m_designClient, SIGNAL(currentObjectsChanged(QList<int>)),
this, SLOT(onCurrentObjectsChanged(QList<int>)));
disconnect(m_designClient, SIGNAL(colorPickerActivated()),
@@ -164,7 +185,7 @@ void ClientProxy::onCurrentObjectsChanged(const QList< int >& debugIds, bool req
void ClientProxy::setSelectedItemsByObjectId(const QList<QDeclarativeDebugObjectReference> &objectRefs)
{
if (isConnected() && m_designClient)
if (isConnected())
m_designClient->setSelectedItemsByObjectId(objectRefs);
}
@@ -285,7 +306,7 @@ QDeclarativeDebugExpressionQuery *ClientProxy::queryExpressionResult(int objectD
void ClientProxy::clearComponentCache()
{
if (isDesignClientConnected())
if (isConnected())
m_designClient->clearComponentCache();
}
@@ -365,7 +386,7 @@ void ClientProxy::objectTreeFetched(QDeclarativeDebugQuery::State state)
buildDebugIdHashRecursive(it);
emit objectTreeUpdated();
if (isDesignClientConnected()) {
if (isConnected()) {
if (!m_designClient->selectedItemIds().isEmpty())
onCurrentObjectsChanged(m_designClient->selectedItemIds(), false);
@@ -410,76 +431,70 @@ void ClientProxy::buildDebugIdHashRecursive(const QDeclarativeDebugObjectReferen
void ClientProxy::reloadQmlViewer()
{
if (isDesignClientConnected())
if (isConnected())
m_designClient->reloadViewer();
}
void ClientProxy::setDesignModeBehavior(bool inDesignMode)
{
if (isDesignClientConnected())
if (isConnected())
m_designClient->setDesignModeBehavior(inDesignMode);
}
void ClientProxy::setAnimationSpeed(qreal slowdownFactor)
{
if (isDesignClientConnected())
if (isConnected())
m_designClient->setAnimationSpeed(slowdownFactor);
}
void ClientProxy::changeToColorPickerTool()
{
if (isDesignClientConnected())
if (isConnected())
m_designClient->changeToColorPickerTool();
}
void ClientProxy::changeToZoomTool()
{
if (isDesignClientConnected())
if (isConnected())
m_designClient->changeToZoomTool();
}
void ClientProxy::changeToSelectTool()
{
if (isDesignClientConnected())
if (isConnected())
m_designClient->changeToSelectTool();
}
void ClientProxy::changeToSelectMarqueeTool()
{
if (isDesignClientConnected())
if (isConnected())
m_designClient->changeToSelectMarqueeTool();
}
void ClientProxy::createQmlObject(const QString &qmlText, int parentDebugId,
const QStringList &imports, const QString &filename)
{
if (isDesignClientConnected())
if (isConnected())
m_designClient->createQmlObject(qmlText, parentDebugId, imports, filename);
}
void ClientProxy::destroyQmlObject(int debugId)
{
if (isDesignClientConnected())
if (isConnected())
m_designClient->destroyQmlObject(debugId);
}
void ClientProxy::reparentQmlObject(int debugId, int newParent)
{
if (isDesignClientConnected())
if (isConnected())
m_designClient->reparentQmlObject(debugId, newParent);
}
void ClientProxy::setContextPathIndex(int contextIndex)
{
if (isDesignClientConnected())
if (isConnected())
m_designClient->setContextPathIndex(contextIndex);
}
bool ClientProxy::isDesignClientConnected() const
{
return (m_designClient && m_adapter->isConnected());
}
void ClientProxy::reloadEngines()
{
if (m_engineQuery) {
@@ -518,7 +533,8 @@ Debugger::QmlAdapter *ClientProxy::qmlAdapter() const
bool ClientProxy::isConnected() const
{
return m_adapter->isConnected();
return m_designClient && m_designClient->status() == QDeclarativeDebugClient::Enabled
&& m_client && m_client->status() == QDeclarativeEngineDebug::Enabled;
}
void ClientProxy::newObjects()