fix(defaults): type casting for user input

pull/2245/head
Qingping Hou 8 years ago
parent 902403bf0a
commit ca21ab4be5

@ -209,14 +209,7 @@ function SetDefaults:init()
is_enter_default = true, is_enter_default = true,
enabled = true, enabled = true,
callback = function() callback = function()
local new_value = self.set_dialog:getInputText() local new_value = self.set_dialog:getInputValue()
if setting_type == "boolean" then
if new_value == "true" then
new_value = true
else
new_value = false
end
end
if _G[setting_name] ~= new_value then if _G[setting_name] ~= new_value then
_G[setting_name] = new_value _G[setting_name] = new_value
self.defaults_value[i] = new_value self.defaults_value[i] = new_value

@ -10,7 +10,7 @@ Example:
title = _("Dialog title"), title = _("Dialog title"),
input = "default value", input = "default value",
input_hint = "hint text", input_hint = "hint text",
input_type = "text", input_type = "string",
-- text_type = "password", -- text_type = "password",
buttons = { buttons = {
{ {
@ -26,7 +26,8 @@ Example:
-- triggered after user press the enter key from keyboard -- triggered after user press the enter key from keyboard
is_enter_default = true, is_enter_default = true,
callback = function() callback = function()
print('Got user input:', sample_input:getInputText()) print('Got user input as raw text:', sample_input:getInputText())
print('Got user input as value:', sample_input:getInputValue())
end, end,
}, },
} }
@ -177,6 +178,15 @@ function InputDialog:getInputText()
return self._input_widget:getText() return self._input_widget:getText()
end end
function InputDialog:getInputValue()
local text = self:getInputText()
if self.input_type == "number" then
return tonumber(text)
else
return text
end
end
function InputDialog:setInputText(text) function InputDialog:setInputText(text)
self._input_widget:setText(text) self._input_widget:setText(text)
end end

Loading…
Cancel
Save