1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 19:27:44 +00:00

MouseSettings: Convert setting widgets to a failable factory

This commit is contained in:
Karol Kosek 2023-05-09 22:44:43 +02:00 committed by Andreas Kling
parent ab8be9aed5
commit 90819e2d71
6 changed files with 43 additions and 13 deletions

View file

@ -19,10 +19,16 @@ constexpr double speed_slider_scale = 100.0;
constexpr int default_scroll_length = 4;
constexpr int double_click_speed_default = 250;
MouseWidget::MouseWidget()
ErrorOr<NonnullRefPtr<MouseWidget>> MouseWidget::try_create()
{
load_from_gml(mouse_widget_gml).release_value_but_fixme_should_propagate_errors();
auto widget = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) MouseWidget()));
TRY(widget->setup());
return widget;
}
ErrorOr<void> MouseWidget::setup()
{
TRY(load_from_gml(mouse_widget_gml));
m_speed_label = *find_descendant_of_type_named<GUI::Label>("speed_label");
m_speed_slider = *find_descendant_of_type_named<GUI::HorizontalSlider>("speed_slider");
m_speed_slider->set_range(WindowServer::mouse_accel_min * speed_slider_scale, WindowServer::mouse_accel_max * speed_slider_scale);
@ -70,6 +76,7 @@ MouseWidget::MouseWidget()
update_double_click_speed_label();
update_switch_buttons_image_label();
m_double_click_arrow_widget->set_double_click_speed(m_double_click_speed_slider->value());
return {};
}
void MouseWidget::apply_settings()