| 25 | } |
| 26 | |
| 27 | bool ReverseDebugPlugin::start() |
| 28 | { |
| 29 | auto &ctx = dpfInstance.serviceContext(); |
| 30 | windowService = ctx.service<WindowService>(WindowService::name()); |
| 31 | if (!windowService) { |
| 32 | qCritical() << "Failed, can't found window service"; |
| 33 | abort(); |
| 34 | } |
| 35 | |
| 36 | auto mTools = ActionManager::instance()->actionContainer(M_TOOLS); |
| 37 | auto mEventRecorder = ActionManager::instance()->createContainer(M_TOOLS_EVENTRECORDER); |
| 38 | mEventRecorder->menu()->setTitle(tr("Event recorder")); |
| 39 | mTools->addMenu(mEventRecorder); |
| 40 | |
| 41 | auto actionInit = [&](QAction *action, QString actionID) { |
| 42 | auto cmd = ActionManager::instance()->registerAction(action, actionID); |
| 43 | mEventRecorder->addAction(cmd); |
| 44 | }; |
| 45 | |
| 46 | auto recoredAction = new QAction(tr("Record"), mEventRecorder); |
| 47 | actionInit(recoredAction, A_EVENT_RECORDER_RECORD); |
| 48 | auto replayAction = new QAction(tr("Replay"), mEventRecorder); |
| 49 | actionInit(replayAction, A_EVENT_RECORDER_REPLAY); |
| 50 | |
| 51 | reverseDebug = new ReverseDebuggerMgr(this); |
| 52 | connect(recoredAction, &QAction::triggered, reverseDebug, &ReverseDebuggerMgr::recored); |
| 53 | connect(replayAction, &QAction::triggered, reverseDebug, &ReverseDebuggerMgr::replay); |
| 54 | |
| 55 | windowService->addContextWidget(tr("Ev&ent Recorder"), new AbstractWidget(reverseDebug->getWidget()), false); |
| 56 | |
| 57 | return true; |
| 58 | } |
| 59 | |
| 60 | dpf::Plugin::ShutdownFlag ReverseDebugPlugin::stop() |
| 61 | { |
no test coverage detected