diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2022-10-06 16:35:41 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2022-10-06 16:35:41 +0200 |
commit | 0c23a2cfe3ad897e1e49008629c135764b2c155c (patch) | |
tree | 85d690fcc8968dcd01f5ef6b60d06287d895de12 | |
parent | 6b0ab4d4af714097042111b2a9bce5aa697f6e70 (diff) | |
parent | 4d29346a7413db874b03525112211a1368036d4d (diff) |
Merge pull request #66977 from akien-mga/editor-fix-opening-source-code
Debugger: Fix fetching source to link C++ error on GitHub
-rw-r--r-- | editor/debugger/script_editor_debugger.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/editor/debugger/script_editor_debugger.cpp b/editor/debugger/script_editor_debugger.cpp index 6bc1536cb9..622ad00502 100644 --- a/editor/debugger/script_editor_debugger.cpp +++ b/editor/debugger/script_editor_debugger.cpp @@ -1563,8 +1563,22 @@ void ScriptEditorDebugger::_item_menu_id_pressed(int p_option) { ti = ti->get_parent(); } - // We only need the first child here (C++ source stack trace). + // Find the child with the "C++ Source". + // It's not at a fixed position as "C++ Error" may come first. TreeItem *ci = ti->get_first_child(); + const String cpp_source = "<" + TTR("C++ Source") + ">"; + while (ci) { + if (ci->get_text(0) == cpp_source) { + break; + } + ci = ci->get_next(); + } + + if (!ci) { + WARN_PRINT_ED("No C++ source reference is available for this error."); + return; + } + // Parse back the `file:line @ method()` string. const Vector<String> file_line_number = ci->get_text(1).split("@")[0].strip_edges().split(":"); ERR_FAIL_COND_MSG(file_line_number.size() < 2, "Incorrect C++ source stack trace file:line format (please report)."); |