MCPcopy Create free account
hub / github.com/Vector35/debugger / updateUI

Method updateUI

ui/ui.cpp:1075–1350  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1073
1074
1075void DebuggerUI::updateUI(const DebuggerEvent& event)
1076{
1077 switch (event.type)
1078 {
1079 case DetachedEventType:
1080 case QuitDebuggingEventType:
1081 case TargetExitedEventType:
1082 {
1083 ViewFrame* frame = m_context->getCurrentViewFrame();
1084 if (!frame)
1085 break;
1086
1087 // Workaround for https://github.com/Vector35/debugger/issues/367
1088 auto settings = Settings::Instance();
1089 bool oldRestoreView = false;
1090 if (settings->Contains("ui.files.restore.viewState"))
1091 {
1092 oldRestoreView = settings->Get<bool>("ui.files.restore.viewState");
1093 if (oldRestoreView)
1094 settings->Set("ui.files.restore.viewState", false);
1095 }
1096
1097 FileContext* fileContext = frame->getFileContext();
1098 auto tab = m_context->getTabForFile(fileContext);
1099 ViewFrame* newFrame = m_context->openFileContext(fileContext);
1100 QCoreApplication::processEvents();
1101
1102 if (newFrame)
1103 {
1104 newFrame->navigate(m_controller->GetData(), m_controller->GetData()->GetEntryPoint(), true, true);
1105 m_context->closeTab(tab);
1106 fileContext->refreshDataViewCache();
1107 openDebuggerSideBar(newFrame);
1108 QCoreApplication::processEvents();
1109 }
1110 else
1111 {
1112 LogWarn("fail to navigate to the original view");
1113 }
1114
1115 if (oldRestoreView)
1116 settings->Set("ui.files.restore.viewState", true);
1117
1118 break;
1119 }
1120
1121 case LaunchFailureEventType:
1122 {
1123 QMessageBox::critical(nullptr, QString::fromStdString(event.data.errorData.shortError),
1124 QString::fromStdString(event.data.errorData.error));
1125 break;
1126 }
1127
1128 case TargetStoppedEventType:
1129 case ActiveThreadChangedEvent:
1130 {
1131 // If there is no function at the current address, define one. This might be a little aggressive,
1132 // but given that we are lacking the ability to "show as code", this feels like an OK workaround.

Callers

nothing calls this directly

Calls 5

GetDataMethod · 0.45
GetLiveViewMethod · 0.45
GetInputFileMethod · 0.45

Tested by

no test coverage detected