Added check to ensure we are in lighttable view prior to callling darktable.register_lib. If darktable was invoked in single image (darkroom) mode, then an event handler is registered to detect the change from darkroom mode to lighttable mode so that we can then call darktable.register_lib.

This commit is contained in:
Bill Ferguson
2020-08-09 00:45:27 -04:00
parent 138b23674a
commit 52acdb9036

View File

@@ -51,6 +51,11 @@ local function _(msgid)
return gettext.dgettext("copy_attach_detach_tags", msgid) return gettext.dgettext("copy_attach_detach_tags", msgid)
end end
local cadt = {}
cadt.module_installed = false
cadt.event_registered = false
cadt.widget_table = {}
local image_tags = {} local image_tags = {}
@@ -156,6 +161,26 @@ local function replace_tags()
dt.print(_('Tags replaced')) dt.print(_('Tags replaced'))
end end
local function install_module()
if not cadt.module_installed then
dt.register_lib("tagging_addon","Tagging addon",true,true,{
[dt.gui.views.lighttable] = {"DT_UI_CONTAINER_PANEL_RIGHT_CENTER",500}
},
dt.new_widget("box") {
-- orientation = "vertical",
reset_callback = function()
taglist_label.label = ""
image_tags = {}
end,
table.unpack(cadt.widget_table),
},
nil,
nil
)
cadt.module_installed = true
end
end
-- create modul Tagging addons -- create modul Tagging addons
taglist_label.reset_callback = mcopy_tags taglist_label.reset_callback = mcopy_tags
@@ -190,31 +215,31 @@ local box2 = dt.new_widget("box"){
local sep = dt.new_widget("separator"){} local sep = dt.new_widget("separator"){}
-- pack elements into widget table for a nicer layout -- pack elements into widget table for a nicer layout
local widget_table = {}
widget_table[1] = box1 cadt.widget_table[1] = box1
widget_table[#widget_table+1] = box2 cadt.widget_table[#cadt.widget_table+1] = box2
widget_table[#widget_table+1] = sep cadt.widget_table[#cadt.widget_table+1] = sep
widget_table[#widget_table+1] = taglabel cadt.widget_table[#cadt.widget_table+1] = taglabel
widget_table[#widget_table+1] = taglist_label cadt.widget_table[#cadt.widget_table+1] = taglist_label
-- create modul -- create modul
dt.register_lib("tagging_addon","Tagging addon",true,true,{ if dt.gui.current_view().name == "lighttable" then
[dt.gui.views.lighttable] = {"DT_UI_CONTAINER_PANEL_RIGHT_CENTER",500} install_module()
}, else
dt.new_widget("box") { if not cadt.event_registered then
-- orientation = "vertical", dt.register_event(
reset_callback = function() "view-changed",
taglist_label.label = "" function(event, old_view, new_view)
image_tags = {} if new_view.name == "lighttable" and old_view.name == "darkroom" then
end, install_module()
table.unpack(widget_table), end
}, end
nil, )
nil cadt.event_registered = true
) end
end
-- shortcut for copy -- shortcut for copy