From f048d16be55b9023e3dff4d7bcac04f240b74d9f Mon Sep 17 00:00:00 2001 From: thislooksfun Date: Mon, 25 Oct 2021 20:26:50 -0500 Subject: [PATCH] LibGUI: Correctly suggest layout classes Previously when the GMLAutocompleteProvider was invoked just after the 'layout:' tag it would suggest nothing. This is because Layouts do not inherit from Widget, so the two checks would always eliminate every suggestion from the list. This patch makes it always suggest any (registered) object that inherits from GUI::Layout. This should make layouts more discoverable and easier to quickly use. --- Userland/Libraries/LibGUI/GMLAutocompleteProvider.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Userland/Libraries/LibGUI/GMLAutocompleteProvider.cpp b/Userland/Libraries/LibGUI/GMLAutocompleteProvider.cpp index 77fe344238..43d9396249 100644 --- a/Userland/Libraries/LibGUI/GMLAutocompleteProvider.cpp +++ b/Userland/Libraries/LibGUI/GMLAutocompleteProvider.cpp @@ -105,6 +105,7 @@ void GMLAutocompleteProvider::provide_completions(Function)> } auto& widget_class = *Core::ObjectClassRegistration::find("GUI::Widget"); + auto& layout_class = *Core::ObjectClassRegistration::find("GUI::Layout"); Vector class_entries, identifier_entries; switch (state) { @@ -190,10 +191,9 @@ void GMLAutocompleteProvider::provide_completions(Function)> break; if (identifier_string == "layout") { Core::ObjectClassRegistration::for_each([&](const Core::ObjectClassRegistration& registration) { - if (!registration.is_derived_from(widget_class)) + if (®istration == &layout_class || !registration.is_derived_from(layout_class)) return; - if (registration.class_name().contains("Layout")) - class_entries.empend(String::formatted("@{}", registration.class_name()), 0u); + class_entries.empend(String::formatted("@{}", registration.class_name()), 0u); }); } break;