1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Always show this dialog?

This commit is contained in:
siliconsniffer 2025-06-23 14:31:07 +02:00
parent d28a63f22a
commit 792dca6265
3 changed files with 19 additions and 7 deletions

View file

@ -49,19 +49,25 @@ local tabs = {
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
local function main_event_handler(tabview, event) local function main_event_handler(tabview, event)
if event == "MenuQuit" then if event == "MenuQuit" then
if not ui.childlist["mainmenu_quit_confirm"] then local show_dialog = core.settings:get_bool("enable_esc_dialog")
if not ui.childlist["mainmenu_quit_confirm"] and show_dialog then
tabview:hide() tabview:hide()
local dlg = dialog_create( local dlg = dialog_create(
"mainmenu_quit_confirm", "mainmenu_quit_confirm",
function() function()
return confirmation_formspec( return "size[10,3,true]" ..
fgettext("Are you sure you want to quit?"), "label[0.5,0.5;" .. fgettext("Are you sure you want to quit?") .. "]" ..
"btn_quit_confirm_yes", fgettext("Quit"), "checkbox[0.5,1;cb_show_dialog;" .. fgettext("Always show this dialog.") .. ";" .. tostring(show_dialog) .. "]" ..
"btn_quit_confirm_cancel", fgettext("Cancel") "style[btn_quit_confirm_yes;bgcolor=red]" ..
) "button[0.5,2.0;2.5,0.5;btn_quit_confirm_yes;" .. fgettext("Quit") .. "]" ..
"button[7.0,2.0;2.5,0.5;btn_quit_confirm_cancel;" .. fgettext("Cancel") .. "]"
end, end,
function(this, fields) function(this, fields)
if fields.btn_quit_confirm_yes then if fields.cb_show_dialog ~= nil then
local value = (fields.cb_show_dialog == "true") and "true" or "false"
core.settings:set("enable_esc_dialog", value)
return false
elseif fields.btn_quit_confirm_yes then
this:delete() this:delete()
core.close() core.close()
return true return true
@ -77,6 +83,8 @@ local function main_event_handler(tabview, event)
) )
dlg:set_parent(tabview) dlg:set_parent(tabview)
dlg:show() dlg:show()
else
core.close()
end end
return true return true
end end

View file

@ -158,6 +158,9 @@ autojump (Automatic jumping) bool false
# On touchscreens, this only affects digging. # On touchscreens, this only affects digging.
safe_dig_and_place (Safe digging and placing) bool false safe_dig_and_place (Safe digging and placing) bool false
# Enable a confirmation dialog before closing.
enable_esc_dialog (Confirmation dialog before closing) bool true
[*Keyboard and Mouse] [*Keyboard and Mouse]
# Invert vertical mouse movement. # Invert vertical mouse movement.

View file

@ -369,6 +369,7 @@ void set_default_settings()
settings->setDefault("toggle_sneak_key", "false"); settings->setDefault("toggle_sneak_key", "false");
settings->setDefault("toggle_aux1_key", "false"); settings->setDefault("toggle_aux1_key", "false");
settings->setDefault("autojump", bool_to_cstr(has_touch)); settings->setDefault("autojump", bool_to_cstr(has_touch));
settings->setDefault("enable_esc_dialog", "true");
settings->setDefault("continuous_forward", "false"); settings->setDefault("continuous_forward", "false");
settings->setDefault("enable_joysticks", "false"); settings->setDefault("enable_joysticks", "false");
settings->setDefault("joystick_id", "0"); settings->setDefault("joystick_id", "0");