mirror of
				https://github.com/godotengine/godot.git
				synced 2025-11-04 07:31:16 +00:00 
			
		
		
		
	Make script debugger display all kinds of objects
(cherry picked from commit be5e02708d)
			
			
This commit is contained in:
		
							parent
							
								
									8eba737992
								
							
						
					
					
						commit
						1ca67fd484
					
				
					 1 changed files with 28 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -89,11 +89,13 @@ public:
 | 
			
		|||
		return "";
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void add_property(const String &p_name, const Variant &p_value) {
 | 
			
		||||
	void add_property(const String &p_name, const Variant &p_value, const PropertyHint &p_hint, const String p_hint_string) {
 | 
			
		||||
 | 
			
		||||
		PropertyInfo pinfo;
 | 
			
		||||
		pinfo.name = p_name;
 | 
			
		||||
		pinfo.type = p_value.get_type();
 | 
			
		||||
		pinfo.hint = p_hint;
 | 
			
		||||
		pinfo.hint_string = p_hint_string;
 | 
			
		||||
		props.push_back(pinfo);
 | 
			
		||||
		values[p_name] = p_value;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -436,7 +438,11 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da
 | 
			
		|||
 | 
			
		||||
		inspected_object->last_edited_id = id;
 | 
			
		||||
 | 
			
		||||
		if (tabs->get_current_tab() == 2) {
 | 
			
		||||
			inspect_properties->edit(inspected_object);
 | 
			
		||||
		} else {
 | 
			
		||||
			editor->push_item(inspected_object);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	} else if (p_msg == "message:video_mem") {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -498,13 +504,20 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da
 | 
			
		|||
 | 
			
		||||
			String n = p_data[ofs + i * 2 + 0];
 | 
			
		||||
			Variant v = p_data[ofs + i * 2 + 1];
 | 
			
		||||
			PropertyHint h = PROPERTY_HINT_NONE;
 | 
			
		||||
			String hs = String();
 | 
			
		||||
 | 
			
		||||
			if (n.begins_with("*")) {
 | 
			
		||||
 | 
			
		||||
				n = n.substr(1, n.length());
 | 
			
		||||
				h = PROPERTY_HINT_OBJECT_ID;
 | 
			
		||||
				String s = v;
 | 
			
		||||
				s = s.replace("[", "");
 | 
			
		||||
				hs = s.get_slice(":", 0);
 | 
			
		||||
				v = s.get_slice(":", 1).to_int();
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			variables->add_property("members/" + n, v);
 | 
			
		||||
			variables->add_property("members/" + n, v, h, hs);
 | 
			
		||||
		}
 | 
			
		||||
		ofs += mcount * 2;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -515,13 +528,20 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da
 | 
			
		|||
 | 
			
		||||
			String n = p_data[ofs + i * 2 + 0];
 | 
			
		||||
			Variant v = p_data[ofs + i * 2 + 1];
 | 
			
		||||
			PropertyHint h = PROPERTY_HINT_NONE;
 | 
			
		||||
			String hs = String();
 | 
			
		||||
 | 
			
		||||
			if (n.begins_with("*")) {
 | 
			
		||||
 | 
			
		||||
				n = n.substr(1, n.length());
 | 
			
		||||
				h = PROPERTY_HINT_OBJECT_ID;
 | 
			
		||||
				String s = v;
 | 
			
		||||
				s = s.replace("[", "");
 | 
			
		||||
				hs = s.get_slice(":", 0);
 | 
			
		||||
				v = s.get_slice(":", 1).to_int();
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			variables->add_property("locals/" + n, v);
 | 
			
		||||
			variables->add_property("locals/" + n, v, h, hs);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		variables->update();
 | 
			
		||||
| 
						 | 
				
			
			@ -1055,6 +1075,9 @@ void ScriptEditorDebugger::stop() {
 | 
			
		|||
	EditorNode::get_singleton()->get_pause_button()->set_pressed(false);
 | 
			
		||||
	EditorNode::get_singleton()->get_pause_button()->set_disabled(true);
 | 
			
		||||
 | 
			
		||||
	//avoid confusion when stopped debugging but an object is still edited
 | 
			
		||||
	EditorNode::get_singleton()->push_item(NULL);
 | 
			
		||||
 | 
			
		||||
	if (hide_on_stop) {
 | 
			
		||||
		if (is_visible())
 | 
			
		||||
			EditorNode::get_singleton()->hide_bottom_panel();
 | 
			
		||||
| 
						 | 
				
			
			@ -1626,6 +1649,7 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) {
 | 
			
		|||
		inspector->get_scene_tree()->set_column_title(0, TTR("Variable"));
 | 
			
		||||
		inspector->set_enable_capitalize_paths(false);
 | 
			
		||||
		inspector->set_read_only(true);
 | 
			
		||||
		inspector->connect("object_id_selected", this, "_scene_tree_property_select_object");
 | 
			
		||||
		sc->add_child(inspector);
 | 
			
		||||
 | 
			
		||||
		server = TCP_Server::create_ref();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue