From e838a3dd7c72c8400a4788e1f4161baf6bfd5c9c Mon Sep 17 00:00:00 2001 From: Christiaan Janssen Date: Wed, 6 Apr 2011 16:04:18 +0200 Subject: [PATCH] QmlProfiler: added 'clear view' Reviewed-by: Kai Koehne --- src/plugins/qmlprofiler/qml/MainView.qml | 25 ++++++++++++++------- src/plugins/qmlprofiler/qmlprofilertool.cpp | 7 +++++- src/plugins/qmlprofiler/qmlprofilertool.h | 2 ++ src/plugins/qmlprofiler/tracewindow.cpp | 14 ++++++++++++ src/plugins/qmlprofiler/tracewindow.h | 1 + 5 files changed, 40 insertions(+), 9 deletions(-) diff --git a/src/plugins/qmlprofiler/qml/MainView.qml b/src/plugins/qmlprofiler/qml/MainView.qml index 297c6ceabf9..e2128d11877 100644 --- a/src/plugins/qmlprofiler/qml/MainView.qml +++ b/src/plugins/qmlprofiler/qml/MainView.qml @@ -54,15 +54,19 @@ Rectangle { root.updateCursorPosition(); } + function clearAll() { + Plotter.reset(); + view.clearData(); + rangeMover.x = 2 + rangeMover.opacity = 0 + } + //handle debug data coming from C++ Connections { target: connection onEvent: { if (Plotter.valuesdone) { - Plotter.reset(); - view.clearData(); - rangeMover.x = 2 - rangeMover.opacity = 0 + root.clearAll(); } if (!Plotter.valuesdone && event === 0) //### only handle paint event @@ -71,10 +75,7 @@ Rectangle { onRange: { if (Plotter.valuesdone) { - Plotter.reset(); - view.clearData(); - rangeMover.x = 2 - rangeMover.opacity = 0 + root.clearAll(); } if (!Plotter.valuesdone) @@ -84,6 +85,7 @@ Rectangle { onComplete: { Plotter.valuesdone = true; Plotter.calcFps(); + view.visible = true; view.setRanges(Plotter.ranges); view.updateTimeline(); canvas.requestPaint(); @@ -91,6 +93,13 @@ Rectangle { rangeMover.opacity = 1 } + onClear: { + root.clearAll(); + Plotter.valuesdone = false; + canvas.requestPaint(); + view.visible = false; + } + } // Elapsed diff --git a/src/plugins/qmlprofiler/qmlprofilertool.cpp b/src/plugins/qmlprofiler/qmlprofilertool.cpp index 6992ffd8ebd..23da1e3baa6 100644 --- a/src/plugins/qmlprofiler/qmlprofilertool.cpp +++ b/src/plugins/qmlprofiler/qmlprofilertool.cpp @@ -86,7 +86,7 @@ public: virtual QWidget *toolBarWidget() { return m_tool->createToolBarWidget(); } virtual QWidget *paneWidget() { return m_tool->createTimeLineWidget(); } - virtual void clearContents() { /*TODO*/ } + virtual void clearContents() { m_tool->clearDisplay(); } virtual void setFocus() { /*TODO*/ } virtual bool hasFocus() const { return false; /*TODO*/ } virtual bool canFocus() const { return false; /*TODO*/ } @@ -350,6 +350,11 @@ bool QmlProfilerTool::canRunRemotely() const return true; } +void QmlProfilerTool::clearDisplay() +{ + d->m_traceWindow->clearDisplay(); +} + void QmlProfilerTool::attach() { if (!d->m_isAttached) { diff --git a/src/plugins/qmlprofiler/qmlprofilertool.h b/src/plugins/qmlprofiler/qmlprofilertool.h index ee721d8bef9..f7d12972d7b 100644 --- a/src/plugins/qmlprofiler/qmlprofilertool.h +++ b/src/plugins/qmlprofiler/qmlprofilertool.h @@ -63,6 +63,8 @@ public: bool canRunRemotely() const; + void clearDisplay(); + public slots: void connectClient(); void disconnectClient(); diff --git a/src/plugins/qmlprofiler/tracewindow.cpp b/src/plugins/qmlprofiler/tracewindow.cpp index 8c70afe0e2a..f1ec839a0e5 100644 --- a/src/plugins/qmlprofiler/tracewindow.cpp +++ b/src/plugins/qmlprofiler/tracewindow.cpp @@ -110,6 +110,7 @@ public: public slots: void setRecording(bool); + void clearView(); signals: void complete(); @@ -122,6 +123,7 @@ signals: void recordingChanged(bool arg); void enabled(); + void clear(); protected: virtual void statusChanged(Status); @@ -149,6 +151,12 @@ TracePlugin::TracePlugin(QDeclarativeDebugConnection *client) ::memset(m_rangeCount, 0, MaximumRangeType * sizeof(int)); } +void TracePlugin::clearView() +{ + ::memset(m_rangeCount, 0, MaximumRangeType * sizeof(int)); + emit clear(); +} + void TracePlugin::setRecording(bool v) { if (v == m_recording) @@ -312,6 +320,12 @@ void TraceWindow::updateTimer() emit timeChanged(m_view->rootObject()->property("elapsedTime").toDouble()); } +void TraceWindow::clearDisplay() +{ + if (m_plugin) + m_plugin->clearView(); +} + void TraceWindow::setRecordAtStart(bool record) { m_recordAtStart = record; diff --git a/src/plugins/qmlprofiler/tracewindow.h b/src/plugins/qmlprofiler/tracewindow.h index bdd5a546bb3..091ba0219cc 100644 --- a/src/plugins/qmlprofiler/tracewindow.h +++ b/src/plugins/qmlprofiler/tracewindow.h @@ -71,6 +71,7 @@ public: public slots: void updateCursorPosition(); void updateTimer(); + void clearDisplay(); signals: void viewUpdated();