From d4e21b78774075c6e0bc12e52fda88c7d35e8ed0 Mon Sep 17 00:00:00 2001 From: Bill Ferguson Date: Sun, 9 Aug 2020 01:43:20 -0400 Subject: [PATCH] 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. --- contrib/image_time.lua | 44 ++++++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/contrib/image_time.lua b/contrib/image_time.lua index a13a79a..676f5af 100644 --- a/contrib/image_time.lua +++ b/contrib/image_time.lua @@ -110,6 +110,8 @@ local ds = require "lib/dtutils.string" local gettext = dt.gettext local img_time = {} +img_time.module_installed = false +img_time.event_registered = false du.check_min_api_version("3.0.0", "image_time") @@ -390,6 +392,22 @@ local function reset_widgets() img_time.adir.selected = 1 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 img_time.widgets = { @@ -528,13 +546,19 @@ img_time.widget = dt.new_widget("box"){ img_time.stack, } -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 -) +if dt.gui.current_view().name == "lighttable" then + install_module() +else + if not img_time.event_registered then + dt.register_event( + "view-changed", + function(event, old_view, new_view) + if new_view.name == "lighttable" and old_view.name == "darkroom" then + install_module() + end + end + ) + img_time.event_registered = true + end +end +