Jelajahi Sumber

Only add warning label for Layout group in Control category

Haoyu Qiu 1 tahun lalu
induk
melakukan
bd716a693a

+ 8 - 0
editor/plugins/control_editor_plugin.cpp

@@ -413,7 +413,15 @@ bool EditorInspectorPluginControl::can_handle(Object *p_object) {
 	return Object::cast_to<Control>(p_object) != nullptr;
 }
 
+void EditorInspectorPluginControl::parse_category(Object *p_object, const String &p_category) {
+	inside_control_category = p_category == "Control";
+}
+
 void EditorInspectorPluginControl::parse_group(Object *p_object, const String &p_group) {
+	if (!inside_control_category) {
+		return;
+	}
+
 	Control *control = Object::cast_to<Control>(p_object);
 	if (!control || p_group != "Layout") {
 		return;

+ 3 - 0
editor/plugins/control_editor_plugin.h

@@ -127,8 +127,11 @@ public:
 class EditorInspectorPluginControl : public EditorInspectorPlugin {
 	GDCLASS(EditorInspectorPluginControl, EditorInspectorPlugin);
 
+	bool inside_control_category = false;
+
 public:
 	virtual bool can_handle(Object *p_object) override;
+	virtual void parse_category(Object *p_object, const String &p_category) override;
 	virtual void parse_group(Object *p_object, const String &p_group) override;
 	virtual bool parse_property(Object *p_object, const Variant::Type p_type, const String &p_path, const PropertyHint p_hint, const String &p_hint_text, const BitField<PropertyUsageFlags> p_usage, const bool p_wide = false) override;
 };