1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-20 11:55:08 +00:00

LibCore+LibGUI: Add fallible versions of Widget::load_from_gml()

The existing `load_from_gml()` methods look the same as before from the
outside. Inside though, they now forward to `try_load_from_gml()` which
returns Error when things go wrong. It also now calls the `try_create()`
factory method for Objects instead of the `construct()` one.
This commit is contained in:
Sam Atkins 2022-12-28 20:35:16 +00:00 committed by Tim Flynn
parent e58fe1cdd7
commit b32f5dbcff
8 changed files with 73 additions and 69 deletions

View file

@ -143,8 +143,8 @@ void AutocompleteProvider::provide_completions(Function<void(Vector<CodeComprehe
// FIXME: Don't show properties that are already specified in the scope.
auto registration = Core::ObjectClassRegistration::find(class_name);
if (registration && (registration->is_derived_from(widget_class) || registration->is_derived_from(layout_class))) {
if (auto instance = registration->construct()) {
for (auto& it : instance->properties()) {
if (auto instance = registration->construct(); !instance.is_error()) {
for (auto& it : instance.value()->properties()) {
if (!it.value->is_readonly() && it.key.matches(pattern))
identifier_entries.empend(DeprecatedString::formatted("{}: ", it.key), partial_input_length, CodeComprehension::Language::Unspecified, it.key);
}