aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@digia.com>2013-11-28 14:42:03 +0100
committerUlf Hermann <ulf.hermann@digia.com>2013-12-03 09:47:03 +0100
commit06a23c6da5a91c338396c3cbf8aa4d3c9d6fb838 (patch)
tree6785b4adc2734b3c3dae1114f289a5917ecff317
parent2d028ceec46d3cf6a8469e235724636875734f33 (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.qml2
-rw-r--r--src/plugins/qmlprofiler/qmlprofilertraceview.cpp18
-rw-r--r--src/plugins/qmlprofiler/qmlprofilertraceview.h2
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);