Solitaire: Get user confirmation to close when there is a active game

This commit is contained in:
Jamie Mansfield 2021-08-05 11:52:09 +01:00 committed by Andreas Kling
parent 779316d468
commit c3c1a9ca1d
Notes: sideshowbarker 2024-07-18 07:25:29 +09:00

View file

@ -150,6 +150,24 @@ int main(int argc, char** argv)
statusbar.set_text(2, "Timer starts after your first move"); 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::YesNo);
if (result == GUI::MessageBox::ExecYes)
return GUI::Window::CloseRequestDecision::Close;
else
return GUI::Window::CloseRequestDecision::StayOpen;
}
return GUI::Window::CloseRequestDecision::Close;
};
GUI::ActionGroup draw_setting_actions; GUI::ActionGroup draw_setting_actions;
draw_setting_actions.set_exclusive(true); draw_setting_actions.set_exclusive(true);