diff options
Diffstat (limited to 'editor/script_editor_debugger.cpp')
| -rw-r--r-- | editor/script_editor_debugger.cpp | 24 | 
1 files changed, 23 insertions, 1 deletions
diff --git a/editor/script_editor_debugger.cpp b/editor/script_editor_debugger.cpp index 629b5b63fb..86ab84909e 100644 --- a/editor/script_editor_debugger.cpp +++ b/editor/script_editor_debugger.cpp @@ -193,6 +193,12 @@ public:  	}  }; +void ScriptEditorDebugger::debug_copy() { +	String msg = reason->get_text(); +	if (msg == "") return; +	OS::get_singleton()->set_clipboard(msg); +} +  void ScriptEditorDebugger::debug_next() {  	ERR_FAIL_COND(!breaked); @@ -338,6 +344,7 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da  		step->set_disabled(!can_continue);  		next->set_disabled(!can_continue);  		_set_reason_text(error, MESSAGE_ERROR); +		copy->set_disabled(false);  		breaked = true;  		dobreak->set_disabled(true);  		docontinue->set_disabled(false); @@ -354,6 +361,7 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da  	} else if (p_msg == "debug_exit") {  		breaked = false; +		copy->set_disabled(true);  		step->set_disabled(true);  		next->set_disabled(true);  		reason->set_text(""); @@ -612,7 +620,9 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da  			if (!EditorNode::get_log()->is_visible()) {  				if (EditorNode::get_singleton()->are_bottom_panels_hidden()) { -					EditorNode::get_singleton()->make_bottom_panel_item_visible(EditorNode::get_log()); +					if (EDITOR_GET("run/output/always_open_output_on_play")) { +						EditorNode::get_singleton()->make_bottom_panel_item_visible(EditorNode::get_log()); +					}  				}  			}  			EditorNode::get_log()->add_message(t); @@ -938,6 +948,8 @@ void ScriptEditorDebugger::_notification(int p_what) {  			inspector->edit(variables); +			copy->set_icon(get_icon("Duplicate", "EditorIcons")); +  			step->set_icon(get_icon("DebugStep", "EditorIcons"));  			next->set_icon(get_icon("DebugNext", "EditorIcons"));  			back->set_icon(get_icon("Back", "EditorIcons")); @@ -1739,6 +1751,9 @@ void ScriptEditorDebugger::_item_menu_id_pressed(int p_option) {  void ScriptEditorDebugger::_bind_methods() {  	ClassDB::bind_method(D_METHOD("_stack_dump_frame_selected"), &ScriptEditorDebugger::_stack_dump_frame_selected); + +	ClassDB::bind_method(D_METHOD("debug_copy"), &ScriptEditorDebugger::debug_copy); +  	ClassDB::bind_method(D_METHOD("debug_next"), &ScriptEditorDebugger::debug_next);  	ClassDB::bind_method(D_METHOD("debug_step"), &ScriptEditorDebugger::debug_step);  	ClassDB::bind_method(D_METHOD("debug_break"), &ScriptEditorDebugger::debug_break); @@ -1814,6 +1829,13 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) {  		hbc->add_child(memnew(VSeparator)); +		copy = memnew(ToolButton); +		hbc->add_child(copy); +		copy->set_tooltip(TTR("Copy Error")); +		copy->connect("pressed", this, "debug_copy"); + +		hbc->add_child(memnew(VSeparator)); +  		step = memnew(ToolButton);  		hbc->add_child(step);  		step->set_tooltip(TTR("Step Into"));  |