diff options
author | Ulf Hermann <ulf.hermann@digia.com> | 2013-11-28 14:42:03 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@digia.com> | 2013-12-03 09:47:03 +0100 |
commit | 06a23c6da5a91c338396c3cbf8aa4d3c9d6fb838 (patch) | |
tree | 6785b4adc2734b3c3dae1114f289a5917ecff317 | |
parent | 2d028ceec46d3cf6a8469e235724636875734f33 (diff) |
QmlProfiler: Handle enable and show signals for zoomslider in C++
As it's hard to pass arguments for signals from non-QML-mapped objects
to QML objects handle the signal in C++ instead and just directly set
the properties.
Task-number: QTCREATORBUG-10943
Change-Id: I039f6938db3d7e64ca1a4bcff2f0f6aa79c65219
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
-rw-r--r-- | src/plugins/qmlprofiler/qml/MainView.qml | 2 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qmlprofilertraceview.cpp | 18 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qmlprofilertraceview.h | 2 |
3 files changed, 17 insertions, 5 deletions
diff --git a/src/plugins/qmlprofiler/qml/MainView.qml b/src/plugins/qmlprofiler/qml/MainView.qml index 8d8fe25d69..bc40aa5437 100644 --- a/src/plugins/qmlprofiler/qml/MainView.qml +++ b/src/plugins/qmlprofiler/qml/MainView.qml @@ -514,8 +514,6 @@ Rectangle { x: 0 y: 0 - function toggleEnabled() {enabled = !enabled} - function toggleVisible() {visible = !visible} function updateZoomLevel() { zoomSlider.externalUpdate = true; zoomSlider.value = Math.pow((view.endTime - view.startTime) / qmlProfilerModelProxy.traceDuration(), 1 / zoomSlider.exponent) * zoomSlider.maximumValue; diff --git a/src/plugins/qmlprofiler/qmlprofilertraceview.cpp b/src/plugins/qmlprofiler/qmlprofilertraceview.cpp index 645c17b60b..395be21696 100644 --- a/src/plugins/qmlprofiler/qmlprofilertraceview.cpp +++ b/src/plugins/qmlprofiler/qmlprofilertraceview.cpp @@ -192,10 +192,22 @@ void QmlProfilerTraceView::reset() connect(this, SIGNAL(jumpToNext()), rootObject, SLOT(nextEvent())); connect(rootObject, SIGNAL(selectedEventChanged(int)), this, SIGNAL(selectedEventChanged(int))); connect(rootObject, SIGNAL(changeToolTip(QString)), this, SLOT(updateToolTip(QString))); + connect(this, SIGNAL(enableToolbar(bool)), this, SLOT(setZoomSliderEnabled(bool))); + connect(this, SIGNAL(showZoomSlider(bool)), this, SLOT(setZoomSliderVisible(bool))); +} - QObject *zoomSlider = rootObject->findChild<QObject*>(QLatin1String("zoomSliderToolBar")); - connect(this, SIGNAL(enableToolbar(bool)), zoomSlider, SLOT(toggleEnabled())); - connect(this, SIGNAL(showZoomSlider(bool)), zoomSlider, SLOT(toggleVisible())); +void QmlProfilerTraceView::setZoomSliderEnabled(bool enabled) +{ + QQuickItem *zoomSlider = d->m_mainView->rootObject()->findChild<QQuickItem*>(QLatin1String("zoomSliderToolBar")); + if (zoomSlider->isEnabled() != enabled) + zoomSlider->setEnabled(enabled); +} + +void QmlProfilerTraceView::setZoomSliderVisible(bool visible) +{ + QQuickItem *zoomSlider = d->m_mainView->rootObject()->findChild<QQuickItem*>(QLatin1String("zoomSliderToolBar")); + if (zoomSlider->isVisible() != visible) + zoomSlider->setVisible(visible); } QWidget *QmlProfilerTraceView::createToolbar() diff --git a/src/plugins/qmlprofiler/qmlprofilertraceview.h b/src/plugins/qmlprofiler/qmlprofilertraceview.h index da8f66966a..d027a4dabf 100644 --- a/src/plugins/qmlprofiler/qmlprofilertraceview.h +++ b/src/plugins/qmlprofiler/qmlprofilertraceview.h @@ -102,6 +102,8 @@ private slots: void profilerStateChanged(); void clientRecordingChanged(); void serverRecordingChanged(); + void setZoomSliderEnabled(bool enabled); + void setZoomSliderVisible(bool visible); signals: void gotoSourceLocation(const QString &fileUrl, int lineNumber, int columNumber); |