From f7eb6772ce0e6502f54cccf5a38379ca30110254 Mon Sep 17 00:00:00 2001 From: Jamie Mansfield Date: Tue, 27 Jul 2021 12:18:29 +0100 Subject: [PATCH] Spider: Get user confirmation to close when there is a active game --- Userland/Games/Spider/main.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Userland/Games/Spider/main.cpp b/Userland/Games/Spider/main.cpp index 5bb08011c6..ed39f1d73b 100644 --- a/Userland/Games/Spider/main.cpp +++ b/Userland/Games/Spider/main.cpp @@ -155,6 +155,24 @@ int main(int argc, char** argv) statusbar.set_text(2, "Timer starts after your first move"); }; + window->on_close_request = [&]() { + auto game_in_progress = timer->is_active(); + if (game_in_progress) { + auto result = GUI::MessageBox::show(window, + "A game is still in progress, are you sure you would like to quit?", + "Game in progress", + GUI::MessageBox::Type::Warning, + GUI::MessageBox::InputType::YesNoCancel); + + if (result == GUI::MessageBox::ExecYes) + return GUI::Window::CloseRequestDecision::Close; + else + return GUI::Window::CloseRequestDecision::StayOpen; + } + + return GUI::Window::CloseRequestDecision::Close; + }; + GUI::ActionGroup suit_actions; suit_actions.set_exclusive(true);