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 01:43:20 -04:00
parent d10cf968f1
commit d4e21b7877

View File

@@ -110,6 +110,8 @@ local ds = require "lib/dtutils.string"
local gettext = dt.gettext local gettext = dt.gettext
local img_time = {} local img_time = {}
img_time.module_installed = false
img_time.event_registered = false
du.check_min_api_version("3.0.0", "image_time") du.check_min_api_version("3.0.0", "image_time")
@@ -390,6 +392,22 @@ local function reset_widgets()
img_time.adir.selected = 1 img_time.adir.selected = 1
end end
local function install_module()
if not img_time.module_installed then
dt.register_lib(
"image_time", -- Module name
_("image time"), -- Visible name
true, -- expandable
true, -- resetable
{[dt.gui.views.lighttable] = {"DT_UI_CONTAINER_PANEL_RIGHT_CENTER", 100}}, -- containers
img_time.widget,
nil,-- view_enter
nil -- view_leave
)
img_time.module_installed = true
end
end
-- widgets -- widgets
img_time.widgets = { img_time.widgets = {
@@ -528,13 +546,19 @@ img_time.widget = dt.new_widget("box"){
img_time.stack, img_time.stack,
} }
dt.register_lib( if dt.gui.current_view().name == "lighttable" then
"image_time", -- Module name install_module()
_("image time"), -- Visible name else
true, -- expandable if not img_time.event_registered then
true, -- resetable dt.register_event(
{[dt.gui.views.lighttable] = {"DT_UI_CONTAINER_PANEL_RIGHT_CENTER", 100}}, -- containers "view-changed",
img_time.widget, function(event, old_view, new_view)
nil,-- view_enter if new_view.name == "lighttable" and old_view.name == "darkroom" then
nil -- view_leave install_module()
) end
end
)
img_time.event_registered = true
end
end