void MainWindow::fillState(bool nonDefaults) { if (nonDefaults) { ApiTraceState defaultState = m_trace->defaultState(); if (defaultState.isEmpty()) { m_ui.nonDefaultsCB->blockSignals(true); m_ui.nonDefaultsCB->setChecked(false); m_ui.nonDefaultsCB->blockSignals(false); ApiTraceFrame *firstFrame = m_trace->frameAt(0); if (!firstFrame) { return; } if (!firstFrame->isLoaded()) { m_trace->loadFrame(firstFrame); return; } ApiTraceCall *firstCall = firstFrame->calls().first(); ApiTraceEvent *oldSelected = m_selectedEvent; m_nonDefaultsLookupEvent = m_selectedEvent; m_selectedEvent = firstCall; lookupState(); m_selectedEvent = oldSelected; } } fillStateForFrame(); }
bool AITurretShapeData::onAdd() { if (!Parent::onAdd()) return false; // Copy state data from the scripting arrays into the // state structure array. If we have state data already, // we are on the client and need to leave it alone. for (U32 i = 0; i < MaxStates; i++) { StateData& s = state[i]; if (statesLoaded == false) { s.name = stateName[i]; s.transition.rest[0] = lookupState(stateTransitionNotAtRest[i]); s.transition.rest[1] = lookupState(stateTransitionAtRest[i]); s.transition.target[0] = lookupState(stateTransitionNoTarget[i]); s.transition.target[1] = lookupState(stateTransitionTarget[i]); s.transition.activated[0] = lookupState(stateTransitionDeactivated[i]); s.transition.activated[1] = lookupState(stateTransitionActivated[i]); s.transition.timeout = lookupState(stateTransitionTimeout[i]); s.waitForTimeout = stateWaitForTimeout[i]; s.timeoutValue = stateTimeoutValue[i]; s.fire = stateFire[i]; s.scan = stateScan[i]; s.scaleAnimation = stateScaleAnimation[i]; s.direction = stateDirection[i]; s.script = stateScript[i]; // Resolved at load time s.sequence = -1; } // The first state marked as "fire" is the state entered on the // client when it recieves a fire event. if (s.fire && fireState == -1) fireState = i; } // Always preload images, this is needed to avoid problems with // resolving sequences before transmission to a client. return true; }
void MainWindow::customContextMenuRequested(QPoint pos) { QModelIndex index = m_ui.callView->indexAt(pos); callItemSelected(index); if (!index.isValid()) { return; } ApiTraceEvent *event = index.data(ApiTraceModel::EventRole).value<ApiTraceEvent*>(); if (!event) { return; } QMenu menu; menu.addAction(QIcon(":/resources/media-record.png"), tr("Lookup state"), this, SLOT(lookupState())); if (event->type() == ApiTraceEvent::Call) { menu.addAction(tr("Edit"), this, SLOT(editCall())); } menu.exec(QCursor::pos()); }
void MainWindow::initConnections() { connect(m_trace, SIGNAL(startedLoadingTrace()), this, SLOT(startedLoadingTrace())); connect(m_trace, SIGNAL(loaded(int)), this, SLOT(loadProgess(int))); connect(m_trace, SIGNAL(finishedLoadingTrace()), this, SLOT(finishedLoadingTrace())); connect(m_trace, SIGNAL(startedSaving()), this, SLOT(slotStartedSaving())); connect(m_trace, SIGNAL(saved()), this, SLOT(slotSaved())); connect(m_trace, SIGNAL(changed(ApiTraceEvent*)), this, SLOT(slotTraceChanged(ApiTraceEvent*))); connect(m_trace, SIGNAL(findResult(ApiTrace::SearchRequest,ApiTrace::SearchResult,ApiTraceCall*)), this, SLOT(slotSearchResult(ApiTrace::SearchRequest,ApiTrace::SearchResult,ApiTraceCall*))); connect(m_trace, SIGNAL(foundFrameStart(ApiTraceFrame*)), this, SLOT(slotFoundFrameStart(ApiTraceFrame*))); connect(m_trace, SIGNAL(foundFrameEnd(ApiTraceFrame*)), this, SLOT(slotFoundFrameEnd(ApiTraceFrame*))); connect(m_trace, SIGNAL(foundCallIndex(ApiTraceCall*)), this, SLOT(slotJumpToResult(ApiTraceCall*))); connect(m_retracer, SIGNAL(finished(const QString&)), this, SLOT(replayFinished(const QString&))); connect(m_retracer, SIGNAL(error(const QString&)), this, SLOT(replayError(const QString&))); connect(m_retracer, SIGNAL(foundState(ApiTraceState*)), this, SLOT(replayStateFound(ApiTraceState*))); connect(m_retracer, SIGNAL(foundProfile(trace::Profile*)), this, SLOT(replayProfileFound(trace::Profile*))); connect(m_retracer, SIGNAL(foundThumbnails(const QList<QImage>&)), this, SLOT(replayThumbnailsFound(const QList<QImage>&))); connect(m_retracer, SIGNAL(retraceErrors(const QList<ApiTraceError>&)), this, SLOT(slotRetraceErrors(const QList<ApiTraceError>&))); connect(m_ui.vertexInterpretButton, SIGNAL(clicked()), m_vdataInterpreter, SLOT(interpretData())); connect(m_ui.vertexTypeCB, SIGNAL(currentIndexChanged(const QString&)), m_vdataInterpreter, SLOT(setTypeFromString(const QString&))); connect(m_ui.vertexStrideSB, SIGNAL(valueChanged(int)), m_vdataInterpreter, SLOT(setStride(int))); connect(m_ui.vertexComponentsSB, SIGNAL(valueChanged(int)), m_vdataInterpreter, SLOT(setComponents(int))); connect(m_ui.startingOffsetSB, SIGNAL(valueChanged(int)), m_vdataInterpreter, SLOT(setStartingOffset(int))); connect(m_ui.actionNew, SIGNAL(triggered()), this, SLOT(createTrace())); connect(m_ui.actionOpen, SIGNAL(triggered()), this, SLOT(openTrace())); connect(m_ui.actionQuit, SIGNAL(triggered()), this, SLOT(close())); connect(m_ui.actionFind, SIGNAL(triggered()), this, SLOT(slotSearch())); connect(m_ui.actionGo, SIGNAL(triggered()), this, SLOT(slotGoTo())); connect(m_ui.actionGoFrameStart, SIGNAL(triggered()), this, SLOT(slotGoFrameStart())); connect(m_ui.actionGoFrameEnd, SIGNAL(triggered()), this, SLOT(slotGoFrameEnd())); connect(m_ui.actionReplay, SIGNAL(triggered()), this, SLOT(replayStart())); connect(m_ui.actionProfile, SIGNAL(triggered()), this, SLOT(replayProfile())); connect(m_ui.actionStop, SIGNAL(triggered()), this, SLOT(replayStop())); connect(m_ui.actionLookupState, SIGNAL(triggered()), this, SLOT(lookupState())); connect(m_ui.actionTrim, SIGNAL(triggered()), this, SLOT(trim())); connect(m_ui.actionShowThumbnails, SIGNAL(triggered()), this, SLOT(showThumbnails())); connect(m_ui.actionOptions, SIGNAL(triggered()), this, SLOT(showSettings())); connect(m_ui.callView->selectionModel(), SIGNAL(currentChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(callItemSelected(const QModelIndex &))); connect(m_ui.callView, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(callItemActivated(const QModelIndex &))); connect(m_ui.callView, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(customContextMenuRequested(QPoint))); connect(m_ui.surfacesTreeWidget, SIGNAL(customContextMenuRequested(const QPoint &)), SLOT(showSurfacesMenu(const QPoint &))); connect(m_ui.surfacesTreeWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)), SLOT(showSelectedSurface())); connect(m_ui.detailsWebView, SIGNAL(linkClicked(const QUrl&)), this, SLOT(openHelp(const QUrl&))); connect(m_ui.nonDefaultsCB, SIGNAL(toggled(bool)), this, SLOT(fillState(bool))); connect(m_jumpWidget, SIGNAL(jumpTo(int)), SLOT(slotJumpTo(int))); connect(m_searchWidget, SIGNAL(searchNext(const QString&, Qt::CaseSensitivity)), SLOT(slotSearchNext(const QString&, Qt::CaseSensitivity))); connect(m_searchWidget, SIGNAL(searchPrev(const QString&, Qt::CaseSensitivity)), SLOT(slotSearchPrev(const QString&, Qt::CaseSensitivity))); connect(m_traceProcess, SIGNAL(tracedFile(const QString&)), SLOT(createdTrace(const QString&))); connect(m_traceProcess, SIGNAL(error(const QString&)), SLOT(traceError(const QString&))); connect(m_trimProcess, SIGNAL(trimmedFile(const QString&)), SLOT(createdTrim(const QString&))); connect(m_trimProcess, SIGNAL(error(const QString&)), SLOT(trimError(const QString&))); connect(m_ui.errorsDock, SIGNAL(visibilityChanged(bool)), m_ui.actionShowErrorsDock, SLOT(setChecked(bool))); connect(m_ui.actionShowErrorsDock, SIGNAL(triggered(bool)), m_ui.errorsDock, SLOT(setVisible(bool))); connect(m_ui.errorsTreeWidget, SIGNAL(itemActivated(QTreeWidgetItem*, int)), this, SLOT(slotErrorSelected(QTreeWidgetItem*))); connect(m_ui.actionShowProfileDialog, SIGNAL(triggered(bool)), m_profileDialog, SLOT(show())); connect(m_profileDialog, SIGNAL(jumpToCall(int)), this, SLOT(slotJumpTo(int))); }
void MainWindow::callItemActivated(const QModelIndex &index) { lookupState(); }