From 2cb2290da37008dbe4a2d2199d33d90ac21faaf3 Mon Sep 17 00:00:00 2001
From: Christiaan Janssen <christiaan.janssen@nokia.com>
Date: Mon, 13 Feb 2012 14:06:47 +0100
Subject: [PATCH] QmlProfiler: sending start profiling message

Will be used by the client to show status in the GUI.
When profiling is stopped, data is sent immediately,
therefore no "stop profiling" message.

Change-Id: Idd12069a9707296b87e305e8b3cbf8e324989a3f
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
---
 .../debugger/qdeclarativeprofilerservice.cpp     | 16 +++++++++++++++-
 .../debugger/qdeclarativeprofilerservice_p.h     |  2 ++
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/src/declarative/debugger/qdeclarativeprofilerservice.cpp b/src/declarative/debugger/qdeclarativeprofilerservice.cpp
index c5b6b65031..17ee3e5836 100644
--- a/src/declarative/debugger/qdeclarativeprofilerservice.cpp
+++ b/src/declarative/debugger/qdeclarativeprofilerservice.cpp
@@ -124,6 +124,11 @@ bool QDeclarativeProfilerService::stopProfiling()
     return profilerInstance()->stopProfilingImpl();
 }
 
+void QDeclarativeProfilerService::sendStartedProfilingMessage()
+{
+    profilerInstance()->sendStartedProfilingMessageImpl();
+}
+
 void QDeclarativeProfilerService::addEvent(EventType t)
 {
     profilerInstance()->addEventImpl(t);
@@ -174,7 +179,7 @@ bool QDeclarativeProfilerService::startProfilingImpl()
     bool success = false;
     if (!profilingEnabled()) {
         setProfilingEnabled(true);
-        addEventImpl(StartTrace);
+        sendStartedProfilingMessageImpl();
         success = true;
     }
     return success;
@@ -191,6 +196,15 @@ bool QDeclarativeProfilerService::stopProfilingImpl()
     return success;
 }
 
+void QDeclarativeProfilerService::sendStartedProfilingMessageImpl()
+{
+    if (!QDeclarativeDebugService::isDebuggingEnabled() || !m_enabled)
+        return;
+
+    QDeclarativeProfilerData ed = {m_timer.nsecsElapsed(), (int)Event, (int)StartTrace, QString(), -1, -1, 0, 0};
+    QDeclarativeDebugService::sendMessage(ed.toByteArray());
+}
+
 void QDeclarativeProfilerService::addEventImpl(EventType event)
 {
     if (!QDeclarativeDebugService::isDebuggingEnabled() || !m_enabled)
diff --git a/src/declarative/debugger/qdeclarativeprofilerservice_p.h b/src/declarative/debugger/qdeclarativeprofilerservice_p.h
index f5ca8ec294..d29690b6d6 100644
--- a/src/declarative/debugger/qdeclarativeprofilerservice_p.h
+++ b/src/declarative/debugger/qdeclarativeprofilerservice_p.h
@@ -130,6 +130,7 @@ public:
 
     static bool startProfiling();
     static bool stopProfiling();
+    static void sendStartedProfilingMessage();
     static void addEvent(EventType);
     static void startRange(RangeType);
     static void rangeData(RangeType, const QString &);
@@ -151,6 +152,7 @@ protected:
 private:
     bool startProfilingImpl();
     bool stopProfilingImpl();
+    void sendStartedProfilingMessageImpl();
     void addEventImpl(EventType);
     void startRangeImpl(RangeType);
     void rangeDataImpl(RangeType, const QString &);
-- 
GitLab