From 92228e9553affd80631a88a289448880278ad49b Mon Sep 17 00:00:00 2001 From: BeniS Date: Sun, 24 Feb 2013 01:26:49 +1300 Subject: [PATCH] Prompt user before removing server list entry --- modules/client_serverlist/serverlist.lua | 25 +++++++++++++++++++++-- modules/client_serverlist/serverlist.otui | 5 +---- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/modules/client_serverlist/serverlist.lua b/modules/client_serverlist/serverlist.lua index 9622b14a..20a7f023 100644 --- a/modules/client_serverlist/serverlist.lua +++ b/modules/client_serverlist/serverlist.lua @@ -3,6 +3,7 @@ ServerList = {} -- private variables local serverListWindow = nil local serverTextList = nil +local removeWindow = nil local servers = {} -- public functions @@ -69,8 +70,28 @@ function ServerList.add(host, port, protocol, load) return true end -function ServerList.remove(host) - servers[host] = nil +function ServerList.remove(widget) + local host = widget:getId() + + if removeWindow then + return + end + + local yesCallback = function() + widget:destroy() + servers[host] = nil + removeWindow:destroy() + removeWindow=nil + end + local noCallback = function() + removeWindow:destroy() + removeWindow=nil + end + + removeWindow = displayGeneralBox(tr('Remove'), tr('Remove '..host..'?'), { + { text=tr('Yes'), callback=yesCallback }, + { text=tr('No'), callback=noCallback }, + anchor=AnchorHorizontalCenter}, yesCallback, noCallback) end function ServerList.destroy() diff --git a/modules/client_serverlist/serverlist.otui b/modules/client_serverlist/serverlist.otui index 8da715de..19bf8d5a 100644 --- a/modules/client_serverlist/serverlist.otui +++ b/modules/client_serverlist/serverlist.otui @@ -51,10 +51,7 @@ ServerWidget < UIWidget anchors.right: parent.right margin-right: 4 margin-top: 1 - @onClick: | - local parent = self:getParent() - ServerList.remove(parent:getId()) - parent:destroy() + @onClick: ServerList.remove(self:getParent()) MainWindow id: serverListWindow