diff --git a/src/plugins/qmlprofiler/qmlprofilertool.cpp b/src/plugins/qmlprofiler/qmlprofilertool.cpp index 8da32b6ac24..4f38503a3ef 100644 --- a/src/plugins/qmlprofiler/qmlprofilertool.cpp +++ b/src/plugins/qmlprofiler/qmlprofilertool.cpp @@ -294,6 +294,7 @@ void QmlProfilerTool::connectClient() { QTC_ASSERT(!d->m_client, return;) d->m_client = new QDeclarativeDebugConnection; + d->m_traceWindow->reset(d->m_client); connect(d->m_client, SIGNAL(stateChanged(QAbstractSocket::SocketState)), this, SLOT(connectionStateChanged())); d->m_connectionTimer.start(); @@ -461,7 +462,7 @@ void QmlProfilerTool::connectionStateChanged() { if (QmlProfilerPlugin::debugOutput) qWarning("QmlProfiler: connected and running"); - resetWindow(); + updateRecordingState(); break; } case QAbstractSocket::ClosingState: @@ -474,9 +475,8 @@ void QmlProfilerTool::connectionStateChanged() } } -void QmlProfilerTool::resetWindow() +void QmlProfilerTool::updateRecordingState() { - d->m_traceWindow->reset(d->m_client); if (d->m_client->isConnected()) { d->m_traceWindow->setRecording(d->m_recordingEnabled); } else { diff --git a/src/plugins/qmlprofiler/qmlprofilertool.h b/src/plugins/qmlprofiler/qmlprofilertool.h index ff3f4d63d59..90f1e98d16f 100644 --- a/src/plugins/qmlprofiler/qmlprofilertool.h +++ b/src/plugins/qmlprofiler/qmlprofilertool.h @@ -90,7 +90,7 @@ private slots: private: void connectToClient(); - void resetWindow(); + void updateRecordingState(); class QmlProfilerToolPrivate; QmlProfilerToolPrivate *d; diff --git a/src/plugins/qmlprofiler/tracewindow.cpp b/src/plugins/qmlprofiler/tracewindow.cpp index d8797582052..1a0a1ec2077 100644 --- a/src/plugins/qmlprofiler/tracewindow.cpp +++ b/src/plugins/qmlprofiler/tracewindow.cpp @@ -333,7 +333,8 @@ void TraceWindow::clearDisplay() void TraceWindow::setRecording(bool recording) { - m_plugin.data()->setRecording(recording); + if (m_plugin) + m_plugin.data()->setRecording(recording); } bool TraceWindow::isRecording() const