diff --git a/Userland/Libraries/LibCore/Object.h b/Userland/Libraries/LibCore/Object.h index 62aba86049..3bbf7f80b9 100644 --- a/Userland/Libraries/LibCore/Object.h +++ b/Userland/Libraries/LibCore/Object.h @@ -295,6 +295,16 @@ requires IsBaseOf return true; \ }); +// FIXME: Port JsonValue to the new String class. +#define REGISTER_STRING_PROPERTY(property_name, getter, setter) \ + register_property( \ + property_name, \ + [this]() { return this->getter().to_deprecated_string(); }, \ + [this](auto& value) { \ + this->setter(String::from_deprecated_string(value.to_deprecated_string()).release_value_but_fixme_should_propagate_errors()); \ + return true; \ + }); + #define REGISTER_DEPRECATED_STRING_PROPERTY(property_name, getter, setter) \ register_property( \ property_name, \ diff --git a/Userland/Libraries/LibGUI/AbstractButton.cpp b/Userland/Libraries/LibGUI/AbstractButton.cpp index 805fbed815..18b0c7d8d6 100644 --- a/Userland/Libraries/LibGUI/AbstractButton.cpp +++ b/Userland/Libraries/LibGUI/AbstractButton.cpp @@ -28,14 +28,7 @@ AbstractButton::AbstractButton(String text) click(); }; - // FIXME: Port JsonValue to the new String class. - register_property( - "text", - [this]() { return this->text().to_deprecated_string(); }, - [this](auto& value) { - this->set_text(String::from_deprecated_string(value.to_deprecated_string()).release_value_but_fixme_should_propagate_errors()); - return true; - }); + REGISTER_STRING_PROPERTY("text", text, set_text); REGISTER_BOOL_PROPERTY("checked", is_checked, set_checked); REGISTER_BOOL_PROPERTY("checkable", is_checkable, set_checkable); REGISTER_BOOL_PROPERTY("exclusive", is_exclusive, set_exclusive);