Hello,
I need your help to correct my lua script.
I have a darktable lua script with which I want to control via a combobox the
check button.
The demo script below works but generates the following error:
demo.lua:34: attempt to index global 'check_button1' (a nil value)
stack traceback:
[C]: in function '__newindex'
I have tried everything, but no script without error message.
What am I doing wrong?
Can someone give me an example how to control the check button via the combo
box without error message?
Many Thanks
Holger
local dt = require "darktable"
dt.configuration.check_version(...,{4,0,0})
local combobox = dt.new_widget("combobox")
{
label = "Combobox",
value = 1, "Button 1 is checked", "Button 1 and 2 is checked", "Nothing
is checked",
changed_callback = function(selection)
if (selection.value == "Button 1 is checked") then
check_button1.value = true
check_button2.value = false
elseif (selection.value == "Button 1 and 2 is checked") then
check_button1.value = true
check_button2.value = true
elseif (selection.value == "Nothing is checked") then
check_button1.value = false
check_button2.value = false
end
end
}
check_button1 = dt.new_widget("check_button")
{
label = "Button 1",
value = true
}
check_button2 = dt.new_widget("check_button")
{
label = "Button 2",
value = false
}
dt.register_lib(
"demo", -- Module name
"demo", -- name
true, -- expandable
false, -- resetable
{[dt.gui.views.lighttable] = {"DT_UI_CONTAINER_PANEL_RIGHT_CENTER", 100}},
-- containers
dt.new_widget("box") -- widget
{
orientation = "vertical",
combobox,
check_button1,
check_button2,
},
nil,
nil
)
___________________________________________________________________________
darktable developer mailing list
to unsubscribe send a mail to darktable-dev+unsubscr...@lists.darktable.org
local dt = require "darktable"
dt.configuration.check_version(...,{4,0,0})
-- add a new lib
local combobox = dt.new_widget("combobox")
{
label = "Combobox",
value = 1, "Button 1 is checked", "Button 1 and 2 is checked", "Nothing is checked",
changed_callback = function(selection)
if (selection.value == "Button 1 is checked") then
check_button1.value = true
check_button2.value = false
elseif (selection.value == "Button 1 and 2 is checked") then
check_button1.value = true
check_button2.value = true
elseif (selection.value == "Nothing is checked") then
check_button1.value = false
check_button2.value = false
end
end
}
check_button1 = dt.new_widget("check_button")
{
label = "Button 1",
value = true
}
check_button2 = dt.new_widget("check_button")
{
label = "Button 2",
value = false
}
dt.register_lib(
"demo", -- Module name
"demo", -- name
true, -- expandable
false, -- resetable
{[dt.gui.views.lighttable] = {"DT_UI_CONTAINER_PANEL_RIGHT_CENTER", 100}}, -- containers
dt.new_widget("box") -- widget
{
orientation = "vertical",
combobox,
check_button1,
check_button2,
},
nil,-- view_enter
nil -- view_leave
)