From a55d2be14788fd83942ee14fe9d35a60a18d365e Mon Sep 17 00:00:00 2001 From: thankyouverycool <66646555+thankyouverycool@users.noreply.github.com> Date: Sun, 16 Apr 2023 16:06:40 -0400 Subject: [PATCH] MasterWord: Use numeric InputBox for settings And use proper ellipses and capitalization in related action text. --- Userland/Games/MasterWord/main.cpp | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/Userland/Games/MasterWord/main.cpp b/Userland/Games/MasterWord/main.cpp index ef1515267b..4a76e1bc5f 100644 --- a/Userland/Games/MasterWord/main.cpp +++ b/Userland/Games/MasterWord/main.cpp @@ -73,32 +73,18 @@ ErrorOr serenity_main(Main::Arguments arguments) auto settings_menu = TRY(window->try_add_menu("&Settings")); - TRY(settings_menu->try_add_action(GUI::Action::create("Set &Word Length", [&](auto&) { + TRY(settings_menu->try_add_action(GUI::Action::create("Set &Word Length...", [&](auto&) { auto word_length = Config::read_i32("MasterWord"sv, ""sv, "word_length"sv, 5); - auto word_length_string = String::number(word_length).release_value_but_fixme_should_propagate_errors(); - if (GUI::InputBox::show(window, word_length_string, "Word length:"sv, "MasterWord"sv, GUI::InputType::NonemptyText) == GUI::InputBox::ExecResult::OK) { - auto maybe_word_length = AK::StringUtils::convert_to_uint(word_length_string); - if (!maybe_word_length.has_value() || maybe_word_length.value() < shortest_word || maybe_word_length.value() > longest_word) { - GUI::MessageBox::show(window, DeprecatedString::formatted("Please enter a number between {} and {}.", shortest_word, longest_word), "MasterWord"sv); - return; - } - - word_length = maybe_word_length.value(); + auto result = GUI::InputBox::show_numeric(window, word_length, shortest_word, longest_word, "Word length"sv); + if (!result.is_error() && result.value() == GUI::InputBox::ExecResult::OK) { Config::write_i32("MasterWord"sv, ""sv, "word_length"sv, word_length); game.set_word_length(word_length); } }))); - TRY(settings_menu->try_add_action(GUI::Action::create("Set &Number Of Guesses", [&](auto&) { + TRY(settings_menu->try_add_action(GUI::Action::create("Set &Number of Guesses...", [&](auto&) { auto max_guesses = Config::read_i32("MasterWord"sv, ""sv, "max_guesses"sv, 5); - auto max_guesses_string = String::number(max_guesses).release_value_but_fixme_should_propagate_errors(); - if (GUI::InputBox::show(window, max_guesses_string, "Maximum number of guesses:"sv, "MasterWord"sv, GUI::InputType::NonemptyText) == GUI::InputBox::ExecResult::OK) { - auto maybe_max_guesses = AK::StringUtils::convert_to_uint(max_guesses_string); - if (!maybe_max_guesses.has_value() || maybe_max_guesses.value() < 1 || maybe_max_guesses.value() > 20) { - GUI::MessageBox::show(window, "Please enter a number between 1 and 20."sv, "MasterWord"sv); - return; - } - - max_guesses = maybe_max_guesses.value(); + auto result = GUI::InputBox::show_numeric(window, max_guesses, 1, 20, "Number of guesses"sv); + if (!result.is_error() && result.value() == GUI::InputBox::ExecResult::OK) { Config::write_i32("MasterWord"sv, ""sv, "max_guesses"sv, max_guesses); game.set_max_guesses(max_guesses); }