Add variable to keep the previous tab instead of going back to the first one

This commit is contained in:
Athozus 2023-02-26 00:46:17 +01:00
parent 92a7c71d7f
commit 61d70e427e
No known key found for this signature in database
GPG key ID: B50895022E8484BF

71
gui.lua
View file

@ -12,6 +12,8 @@ mail.message_drafts = {}
local selected_idxs = mail.selected_idxs local selected_idxs = mail.selected_idxs
local message_drafts = mail.message_drafts local message_drafts = mail.message_drafts
local boxtab_index = 1
local theme local theme
if minetest.get_modpath("default") then if minetest.get_modpath("default") then
theme = default.gui_bg .. default.gui_bg_img theme = default.gui_bg .. default.gui_bg_img
@ -423,7 +425,11 @@ function mail.handle_receivefields(player, formname, fields)
if formname == "mail:about" then if formname == "mail:about" then
minetest.after(0.5, function() minetest.after(0.5, function()
mail.show_inbox(player:get_player_name()) if boxtab_index == 1 then
mail.show_inbox(player:get_player_name())
elseif boxtab_index == 2 then
mail.show_sent(player:get_player_name())
end
end) end)
return true return true
@ -441,9 +447,11 @@ function mail.handle_receivefields(player, formname, fields)
end end
if fields.boxtab == "1" then if fields.boxtab == "1" then
boxtab_index = 1
mail.show_inbox(name) mail.show_inbox(name)
elseif fields.boxtab == "2" then elseif fields.boxtab == "2" then
boxtab_index = 2
mail.show_sent(name) mail.show_sent(name)
elseif fields.read then elseif fields.read then
@ -457,7 +465,11 @@ function mail.handle_receivefields(player, formname, fields)
mail.setMessages(name, messages) mail.setMessages(name, messages)
end end
mail.show_inbox(name) if boxtab_index == 1 then
mail.show_inbox(name)
elseif boxtab_index == 2 then
mail.show_sent(name)
end
elseif fields.reply and messages[selected_idxs.messages[name]] then elseif fields.reply and messages[selected_idxs.messages[name]] then
local message = messages[selected_idxs.messages[name]] local message = messages[selected_idxs.messages[name]]
@ -477,7 +489,12 @@ function mail.handle_receivefields(player, formname, fields)
-- set messages immediately, so it shows up already when updating the inbox -- set messages immediately, so it shows up already when updating the inbox
mail.setMessages(name, messages) mail.setMessages(name, messages)
end end
mail.show_inbox(name)
if boxtab_index == 1 then
mail.show_inbox(name)
elseif boxtab_index == 2 then
mail.show_sent(name)
end
elseif fields.markunread then elseif fields.markunread then
if messages[selected_idxs.messages[name]] then if messages[selected_idxs.messages[name]] then
@ -485,7 +502,12 @@ function mail.handle_receivefields(player, formname, fields)
-- set messages immediately, so it shows up already when updating the inbox -- set messages immediately, so it shows up already when updating the inbox
mail.setMessages(name, messages) mail.setMessages(name, messages)
end end
mail.show_inbox(name)
if boxtab_index == 1 then
mail.show_inbox(name)
elseif boxtab_index == 2 then
mail.show_sent(name)
end
elseif fields.new then elseif fields.new then
mail.show_compose(name) mail.show_compose(name)
@ -505,7 +527,12 @@ function mail.handle_receivefields(player, formname, fields)
local messages = mail.getMessages(name) local messages = mail.getMessages(name)
if fields.back then if fields.back then
mail.show_inbox(name) if boxtab_index == 1 then
mail.show_inbox(name)
elseif boxtab_index == 2 then
mail.show_sent(name)
end
return true -- don't uselessly set messages return true -- don't uselessly set messages
elseif fields.reply then elseif fields.reply then
@ -525,7 +552,12 @@ function mail.handle_receivefields(player, formname, fields)
table.remove(messages,selected_idxs.messages[name]) table.remove(messages,selected_idxs.messages[name])
mail.setMessages(name, messages) mail.setMessages(name, messages)
end end
mail.show_inbox(name)
if boxtab_index == 1 then
mail.show_inbox(name)
elseif boxtab_index == 2 then
mail.show_sent(name)
end
end end
return true return true
@ -563,7 +595,11 @@ function mail.handle_receivefields(player, formname, fields)
end end
minetest.after(0.5, function() minetest.after(0.5, function()
mail.show_inbox(name) if boxtab_index == 1 then
mail.show_inbox(name)
elseif boxtab_index == 2 then
mail.show_sent(name)
end
end) end)
elseif fields.tocontacts or fields.cccontacts or fields.bcccontacts then elseif fields.tocontacts or fields.cccontacts or fields.bcccontacts then
@ -578,7 +614,12 @@ function mail.handle_receivefields(player, formname, fields)
elseif fields.cancel then elseif fields.cancel then
message_drafts[name] = nil message_drafts[name] = nil
mail.show_inbox(name)
if boxtab_index == 1 then
mail.show_inbox(name)
elseif boxtab_index == 2 then
mail.show_sent(name)
end
end end
return true return true
@ -713,7 +754,12 @@ function mail.handle_receivefields(player, formname, fields)
mail.show_contacts(name) mail.show_contacts(name)
elseif fields.back then elseif fields.back then
mail.show_inbox(name)
if boxtab_index == 1 then
mail.show_inbox(name)
elseif boxtab_index == 2 then
mail.show_sent(name)
end
end end
return true return true
@ -761,7 +807,12 @@ function mail.handle_receivefields(player, formname, fields)
return true return true
elseif fields.mail then elseif fields.mail then
mail.show_inbox(player:get_player_name())
if boxtab_index == 1 then
mail.show_inbox(player:get_player_name())
elseif boxtab_index == 2 then
mail.show_sent(player:get_player_name())
end
return true return true
end end
end end