MCPcopy Create free account
hub / github.com/Codeya-IDE/deepin-ide / handleEvents

Method handleEvents

src/plugins/debugger/dap/dapdebugger.cpp:848–980  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

846}
847
848void DAPDebugger::handleEvents(const dpf::Event &event)
849{
850 QString topic = event.topic();
851 QString data = event.data().toString();
852 if (topic == T_BUILDER) {
853 if (data == D_BUILD_STATE) {
854 int state = event.property(P_STATE).toInt();
855 BuildCommandInfo commandInfo = qvariant_cast<BuildCommandInfo>(event.property(P_ORIGINCMD));
856 if (commandInfo.uuid == d->currentBuildUuid) {
857 int buildSuccess = 0;
858 if (state == buildSuccess && d->runState == kPreparing)
859 start();
860 }
861 }
862 }
863
864 if (event.data() == debugger.prepareDebugDone.name) {
865 bool succeed = event.property(debugger.prepareDebugDone.pKeys[0]).toBool();
866 QString errorMsg = event.property(debugger.prepareDebugDone.pKeys[1]).toString();
867 if (!succeed) {
868 printOutput(errorMsg, OutputPane::ErrorMessage);
869 updateRunState(kPreparing);
870 } else {
871 auto &ctx = dpfInstance.serviceContext();
872 LanguageService *service = ctx.service<LanguageService>(LanguageService::name());
873 if (service) {
874 auto generator = service->create<LanguageGenerator>(d->activeProjectKitName);
875 if (generator) {
876 QMap<QString, QVariant> param = generator->getDebugArguments(getActiveProjectInfo(), d->currentOpenedFileName);
877 requestDebugPort(param, d->activeProjectKitName, false);
878 }
879 }
880 }
881 } else if (event.data() == debugger.prepareDebugProgress.name) {
882 printOutput(event.property(debugger.prepareDebugProgress.pKeys[0]).toString());
883 } else if (event.data() == project.activatedProject.name) {
884 d->projectInfo = qvariant_cast<ProjectInfo>(event.property("projectInfo"));
885 d->activeProjectKitName = d->projectInfo.kitName();
886 } else if (event.data() == project.deletedProject.name) {
887 auto prjInfo = event.property("projectInfo").value<dpfservice::ProjectInfo>();
888 if (d->projectInfo.isSame(prjInfo)) {
889 abortDebug();
890 d->activeProjectKitName.clear();
891 }
892 } else if (event.data() == editor.switchedFile.name) {
893 QString filePath = event.property(editor.switchedFile.pKeys[0]).toString();
894 if (d->currentOpenedFileName != filePath) {
895 d->currentOpenedFileName = filePath;
896 }
897 } else if (event.data() == editor.fileOpened.name) {
898 QString filePath = event.property(editor.switchedFile.pKeys[0]).toString();
899 d->currentOpenedFileName = filePath;
900 if (d->breakpointModel.breakpointSize() > 0) {
901 for (auto index = 0; index < d->breakpointModel.breakpointSize(); index++) {
902 auto bp = d->breakpointModel.BreakpointAt(index);
903 if (bp.filePath == filePath)
904 editor.addBreakpoint(filePath, bp.lineNumber - 1, bp.enabled);
905 }

Callers

nothing calls this directly

Calls 15

topicMethod · 0.80
breakpointSizeMethod · 0.80
setPlaceholderTextMethod · 0.80
addContentMethod · 0.80
insertMethod · 0.80
conditionMethod · 0.80
toListMethod · 0.80
nameFunction · 0.50
toStringMethod · 0.45
dataMethod · 0.45
propertyMethod · 0.45
getDebugArgumentsMethod · 0.45

Tested by

no test coverage detected