OSDN Git Service

QmlProfiler: Don't emit recordingChanged signal if service gets enabled
authorKai Koehne <kai.koehne@nokia.com>
Wed, 24 Aug 2011 12:38:54 +0000 (14:38 +0200)
committerKai Koehne <kai.koehne@nokia.com>
Wed, 24 Aug 2011 14:10:26 +0000 (16:10 +0200)
Change-Id: I1cba56b92d83edb2ed54b731f9815c77d04cfd9e
Reviewed-on: http://codereview.qt.nokia.com/3500
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Christiaan Janssen <christiaan.janssen@nokia.com>
src/libs/qmljsdebugclient/qmlprofilertraceclient.cpp

index 62e8bd5..1a22afe 100644 (file)
@@ -36,14 +36,18 @@ namespace QmlJsDebugClient {
 
 class QmlProfilerTraceClientPrivate {
 public:
-    QmlProfilerTraceClientPrivate()
-        : inProgressRanges(0)
+    QmlProfilerTraceClientPrivate(QmlProfilerTraceClient *_q)
+        : q(_q)
+        ,  inProgressRanges(0)
         , maximumTime(0)
         , recording(false)
     {
         ::memset(rangeCount, 0, MaximumQmlEventType * sizeof(int));
     }
 
+    void sendRecordingStatus();
+
+    QmlProfilerTraceClient *q;
     qint64 inProgressRanges;
     QStack<qint64> rangeStartTimes[MaximumQmlEventType];
     QStack<QStringList> rangeDatas[MaximumQmlEventType];
@@ -59,9 +63,17 @@ using namespace QmlJsDebugClient;
 
 static const int GAP_TIME = 150;
 
+void QmlProfilerTraceClientPrivate::sendRecordingStatus()
+{
+    QByteArray ba;
+    QDataStream stream(&ba, QIODevice::WriteOnly);
+    stream << recording;
+    q->sendMessage(ba);
+}
+
 QmlProfilerTraceClient::QmlProfilerTraceClient(QDeclarativeDebugConnection *client)
     : QDeclarativeDebugClient(QLatin1String("CanvasFrameRate"), client)
-    , d(new QmlProfilerTraceClientPrivate)
+    , d(new QmlProfilerTraceClientPrivate(this))
 {
 }
 
@@ -86,22 +98,19 @@ void QmlProfilerTraceClient::setRecording(bool v)
     if (v == d->recording)
         return;
 
+    d->recording = v;
+
     if (status() == Enabled) {
-        QByteArray ba;
-        QDataStream stream(&ba, QIODevice::WriteOnly);
-        stream << v;
-        sendMessage(ba);
+        d->sendRecordingStatus();
     }
 
-    d->recording = v;
     emit recordingChanged(v);
 }
 
 void QmlProfilerTraceClient::statusChanged(Status status)
 {
     if (status == Enabled) {
-        d->recording = !d->recording;
-        setRecording(!d->recording);
+        d->sendRecordingStatus();
         emit enabled();
     }
 }