diff --git a/share/qtcreator/qmljsdebugger/qdeclarativedesignview.cpp b/share/qtcreator/qmljsdebugger/qdeclarativedesignview.cpp index 9657da8..ec22184 100644 --- a/share/qtcreator/qmljsdebugger/qdeclarativedesignview.cpp +++ b/share/qtcreator/qmljsdebugger/qdeclarativedesignview.cpp @@ -47,10 +47,7 @@ #include #include #include - -#include #include -#include namespace QmlViewer { @@ -546,12 +543,6 @@ void QDeclarativeDesignView::continueExecution(qreal slowdownFactor) Q_ASSERT(slowdownFactor > 0); data->slowdownFactor = slowdownFactor; - static const qreal animSpeedSnapDelta = 0.01f; - bool useStandardSpeed = (qAbs(1.0f - data->slowdownFactor) < animSpeedSnapDelta); - - QUnifiedTimer *timer = QUnifiedTimer::instance(); - timer->setSlowdownFactor(data->slowdownFactor); - timer->setSlowModeEnabled(!useStandardSpeed); data->executionPaused = false; emit executionStarted(data->slowdownFactor); @@ -560,9 +551,6 @@ void QDeclarativeDesignView::continueExecution(qreal slowdownFactor) void QDeclarativeDesignView::pauseExecution() { - QUnifiedTimer *timer = QUnifiedTimer::instance(); - timer->setSlowdownFactor(0); - timer->setSlowModeEnabled(true); data->executionPaused = true; emit executionPaused(); @@ -574,7 +562,6 @@ void QDeclarativeDesignViewPrivate::_q_applyChangesFromClient() } - QList QDeclarativeDesignViewPrivate::filterForSelection(QList &itemlist) const { foreach(QGraphicsItem *item, itemlist) { diff --git a/src/libs/qmljsdebugclient/qdeclarativedebug.cpp b/src/libs/qmljsdebugclient/qdeclarativedebug.cpp index 064549a..14f600e 100644 --- a/src/libs/qmljsdebugclient/qdeclarativedebug.cpp +++ b/src/libs/qmljsdebugclient/qdeclarativedebug.cpp @@ -647,6 +647,21 @@ bool QDeclarativeEngineDebug::setMethodBody(int objectDebugId, const QString &me } } +bool QDeclarativeEngineDebug::setAnimationSpeed(qreal slowdownFactor) +{ + Q_D(QDeclarativeEngineDebug); + + if (d->client->isConnected()) { + QByteArray message; + QDataStream ds(&message, QIODevice::WriteOnly); + ds << QByteArray("SET_ANIM_SLOWDOWN_FACTOR") << slowdownFactor; + d->client->sendMessage(message); + return true; + } else { + return false; + } +} + QDeclarativeDebugWatch::QDeclarativeDebugWatch(QObject *parent) : QObject(parent), m_state(Waiting), m_queryId(-1), m_client(0), m_objectDebugId(-1) { diff --git a/src/libs/qmljsdebugclient/qdeclarativedebug_p.h b/src/libs/qmljsdebugclient/qdeclarativedebug_p.h index ad61641..cde2567 100644 --- a/src/libs/qmljsdebugclient/qdeclarativedebug_p.h +++ b/src/libs/qmljsdebugclient/qdeclarativedebug_p.h @@ -99,6 +99,7 @@ public: const QVariant &bindingExpression, bool isLiteralValue); bool resetBindingForObject(int objectDebugId, const QString &propertyName); bool setMethodBody(int objectDebugId, const QString &methodName, const QString &methodBody); + bool setAnimationSpeed(qreal slowdownFactor); signals: void newObjects(); diff --git a/src/plugins/qmljsinspector/qmlinspectortoolbar.cpp b/src/plugins/qmljsinspector/qmlinspectortoolbar.cpp index f6c8fc3..de8ed8a 100644 --- a/src/plugins/qmljsinspector/qmlinspectortoolbar.cpp +++ b/src/plugins/qmljsinspector/qmlinspectortoolbar.cpp @@ -170,7 +170,6 @@ void QmlInspectorToolbar::setAnimationSpeed(qreal slowdownFactor) m_menuPauseAction->setChecked(true); updatePauseAction(); } - m_emitSignals = true; } diff --git a/src/plugins/qmljsinspector/qmljsclientproxy.cpp b/src/plugins/qmljsinspector/qmljsclientproxy.cpp index 2a81eda..08e1c02 100644 --- a/src/plugins/qmljsinspector/qmljsclientproxy.cpp +++ b/src/plugins/qmljsinspector/qmljsclientproxy.cpp @@ -76,7 +76,7 @@ void ClientProxy::connectToServer() connect(m_designClient, SIGNAL(selectMarqueeToolActivated()), SIGNAL(selectMarqueeToolActivated())); connect(m_designClient, SIGNAL(animationSpeedChanged(qreal)), - SIGNAL(animationSpeedChanged(qreal))); + SLOT(setAnimationSpeedFromClient(qreal))); connect(m_designClient, SIGNAL(designModeBehaviorChanged(bool)), SIGNAL(designModeBehaviorChanged(bool))); connect(m_designClient, SIGNAL(reloaded()), this, @@ -102,7 +102,7 @@ void ClientProxy::disconnectFromServer() disconnect(m_designClient, SIGNAL(selectMarqueeToolActivated()), this, SIGNAL(selectMarqueeToolActivated())); disconnect(m_designClient, SIGNAL(animationSpeedChanged(qreal)), - this, SIGNAL(animationSpeedChanged(qreal))); + this, SLOT(setAnimationSpeedFromClient(qreal))); disconnect(m_designClient, SIGNAL(designModeBehaviorChanged(bool)), this, SIGNAL(designModeBehaviorChanged(bool))); disconnect(m_designClient, SIGNAL(selectedColorChanged(QColor)), @@ -351,10 +351,19 @@ void ClientProxy::setDesignModeBehavior(bool inDesignMode) m_designClient->setDesignModeBehavior(inDesignMode); } +// anim speed change is being requested from debuggee +void ClientProxy::setAnimationSpeedFromClient(qreal slowdownFactor) +{ + m_client->setAnimationSpeed(slowdownFactor); + emit animationSpeedChanged(slowdownFactor); +} + void ClientProxy::setAnimationSpeed(qreal slowdownFactor) { + // if toolbar sets anim speed, update design client UI if (isDesignClientConnected()) m_designClient->setAnimationSpeed(slowdownFactor); + m_client->setAnimationSpeed(slowdownFactor); } void ClientProxy::changeToColorPickerTool() diff --git a/src/plugins/qmljsinspector/qmljsclientproxy.h b/src/plugins/qmljsinspector/qmljsclientproxy.h index f7e6179..61d5138 100644 --- a/src/plugins/qmljsinspector/qmljsclientproxy.h +++ b/src/plugins/qmljsinspector/qmljsclientproxy.h @@ -120,6 +120,7 @@ private slots: void connectToServer(); void contextChanged(); + void setAnimationSpeedFromClient(qreal slowdownFactor); void onCurrentObjectsChanged(const QList &debugIds, bool requestIfNeeded = true); void updateEngineList();