From 1fd14c4c99567dd79190b7299122f8d7fae899d9 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Thu, 14 Nov 2013 17:31:18 +0100 Subject: [PATCH] Disable the Javascript profiler while there is no data available. With V4 the Javascript profiler is unusable. In order not to suggest to the user that it is actually usable, we disable it if it doesn't show any data. However, when profiling applications that don't use V4, yet, the JS profiler actually works and has to be enabled. Change-Id: Iecb97c0940addd157c5ebe229edb614448cc0554 Reviewed-by: Kai Koehne --- src/plugins/qmlprofiler/qv8profilereventview.cpp | 9 ++++++++- src/plugins/qmlprofiler/qv8profilereventview.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmlprofiler/qv8profilereventview.cpp b/src/plugins/qmlprofiler/qv8profilereventview.cpp index fdc3ee95925..5b3226b5574 100644 --- a/src/plugins/qmlprofiler/qv8profilereventview.cpp +++ b/src/plugins/qmlprofiler/qv8profilereventview.cpp @@ -135,6 +135,7 @@ QV8ProfilerEventsWidget::QV8ProfilerEventsWidget(QWidget *parent, connect(d->m_eventTree, SIGNAL(eventSelected(int)), d->m_eventParents, SLOT(displayEvent(int))); connect(d->m_eventChildren, SIGNAL(eventClicked(int)), d->m_eventTree, SLOT(selectEvent(int))); connect(d->m_eventParents, SIGNAL(eventClicked(int)), d->m_eventTree, SLOT(selectEvent(int))); + connect(d->v8Model, SIGNAL(changed()), this, SLOT(updateEnabledState())); // widget arrangement QVBoxLayout *groupLayout = new QVBoxLayout; @@ -156,7 +157,7 @@ QV8ProfilerEventsWidget::QV8ProfilerEventsWidget(QWidget *parent, d->m_profilerTool = profilerTool; d->m_viewContainer = container; - + setEnabled(false); } QV8ProfilerEventsWidget::~QV8ProfilerEventsWidget() @@ -164,11 +165,17 @@ QV8ProfilerEventsWidget::~QV8ProfilerEventsWidget() delete d; } +void QV8ProfilerEventsWidget::updateEnabledState() +{ + setEnabled(!d->v8Model->isEmpty()); +} + void QV8ProfilerEventsWidget::clear() { d->m_eventTree->clear(); d->m_eventChildren->clear(); d->m_eventParents->clear(); + setEnabled(false); } QModelIndex QV8ProfilerEventsWidget::selectedItem() const diff --git a/src/plugins/qmlprofiler/qv8profilereventview.h b/src/plugins/qmlprofiler/qv8profilereventview.h index d32b499c1c2..2d366750939 100644 --- a/src/plugins/qmlprofiler/qv8profilereventview.h +++ b/src/plugins/qmlprofiler/qv8profilereventview.h @@ -74,6 +74,7 @@ signals: public slots: void updateSelectedEvent(int eventId) const; void selectBySourceLocation(const QString &filename, int line, int column); + void updateEnabledState(); protected: void contextMenuEvent(QContextMenuEvent *ev);