summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2022-10-06 16:35:41 +0200
committerRémi Verschelde <rverschelde@gmail.com>2022-10-06 16:35:41 +0200
commit0c23a2cfe3ad897e1e49008629c135764b2c155c (patch)
tree85d690fcc8968dcd01f5ef6b60d06287d895de12
parent6b0ab4d4af714097042111b2a9bce5aa697f6e70 (diff)
parent4d29346a7413db874b03525112211a1368036d4d (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.cpp16
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).");