//////////////////////////////////////////////////////////////// // Context menu void QmlProfilerTraceView::contextMenuEvent(QContextMenuEvent *ev) { QMenu menu; QAction *viewAllAction = 0; QAction *getLocalStatsAction = 0; QAction *getGlobalStatsAction = 0; QmlProfilerTool *profilerTool = qobject_cast<QmlProfilerTool *>(d->m_profilerTool); QPoint position = ev->globalPos(); if (profilerTool) { QList <QAction *> commonActions = profilerTool->profilerContextMenuActions(); foreach (QAction *act, commonActions) { menu.addAction(act); } }
//////////////////////////////////////////////////////////////// // Context menu void QmlProfilerTraceView::contextMenuEvent(QContextMenuEvent *ev) { QMenu menu; QAction *viewAllAction = 0; QmlProfilerTool *profilerTool = qobject_cast<QmlProfilerTool *>(d->m_profilerTool); if (profilerTool) menu.addActions(profilerTool->profilerContextMenuActions()); menu.addSeparator(); QAction *getLocalStatsAction = menu.addAction(tr("Limit Events Pane to Current Range")); if (!d->m_viewContainer->hasValidSelection()) getLocalStatsAction->setEnabled(false); QAction *getGlobalStatsAction = menu.addAction(tr("Reset Events Pane")); if (d->m_viewContainer->hasGlobalStats()) getGlobalStatsAction->setEnabled(false); if (!d->m_modelProxy->isEmpty()) { menu.addSeparator(); viewAllAction = menu.addAction(tr("Reset Zoom")); } QAction *selectedAction = menu.exec(ev->globalPos()); if (selectedAction) { if (selectedAction == viewAllAction) { d->m_zoomControl->setRange( d->m_modelManager->traceTime()->startTime(), d->m_modelManager->traceTime()->endTime()); } if (selectedAction == getLocalStatsAction) { d->m_viewContainer->getStatisticsInRange( d->m_viewContainer->selectionStart(), d->m_viewContainer->selectionEnd()); } if (selectedAction == getGlobalStatsAction) { d->m_viewContainer->getStatisticsInRange(-1, -1); } } }
void QmlProfilerTraceView::showContextMenu(QPoint position) { QMenu menu; QAction *viewAllAction = 0; QmlProfilerTool *profilerTool = qobject_cast<QmlProfilerTool *>(d->m_profilerTool); if (profilerTool) menu.addActions(profilerTool->profilerContextMenuActions()); menu.addSeparator(); QAction *getLocalStatsAction = menu.addAction(tr("Limit Events Pane to Current Range")); if (!d->m_viewContainer->hasValidSelection()) getLocalStatsAction->setEnabled(false); QAction *getGlobalStatsAction = menu.addAction(tr("Show Full Range in Events Pane")); if (d->m_viewContainer->hasGlobalStats()) getGlobalStatsAction->setEnabled(false); if (d->m_zoomControl->traceDuration() > 0) { menu.addSeparator(); viewAllAction = menu.addAction(tr("Reset Zoom")); } QAction *selectedAction = menu.exec(position); if (selectedAction) { if (selectedAction == viewAllAction) { d->m_zoomControl->setRange(d->m_zoomControl->traceStart(), d->m_zoomControl->traceEnd()); } if (selectedAction == getLocalStatsAction) { d->m_viewContainer->getStatisticsInRange( d->m_viewContainer->selectionStart(), d->m_viewContainer->selectionEnd()); } if (selectedAction == getGlobalStatsAction) d->m_viewContainer->getStatisticsInRange(-1, -1); } }