Skip to content

Commit d4e21b7

Browse files
committed
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.
1 parent d10cf96 commit d4e21b7

File tree

1 file changed

+34
-10
lines changed

1 file changed

+34
-10
lines changed

contrib/image_time.lua

Lines changed: 34 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,8 @@ local ds = require "lib/dtutils.string"
110110
local gettext = dt.gettext
111111

112112
local img_time = {}
113+
img_time.module_installed = false
114+
img_time.event_registered = false
113115

114116
du.check_min_api_version("3.0.0", "image_time")
115117

@@ -390,6 +392,22 @@ local function reset_widgets()
390392
img_time.adir.selected = 1
391393
end
392394

395+
local function install_module()
396+
if not img_time.module_installed then
397+
dt.register_lib(
398+
"image_time", -- Module name
399+
_("image time"), -- Visible name
400+
true, -- expandable
401+
true, -- resetable
402+
{[dt.gui.views.lighttable] = {"DT_UI_CONTAINER_PANEL_RIGHT_CENTER", 100}}, -- containers
403+
img_time.widget,
404+
nil,-- view_enter
405+
nil -- view_leave
406+
)
407+
img_time.module_installed = true
408+
end
409+
end
410+
393411
-- widgets
394412

395413
img_time.widgets = {
@@ -528,13 +546,19 @@ img_time.widget = dt.new_widget("box"){
528546
img_time.stack,
529547
}
530548

531-
dt.register_lib(
532-
"image_time", -- Module name
533-
_("image time"), -- Visible name
534-
true, -- expandable
535-
true, -- resetable
536-
{[dt.gui.views.lighttable] = {"DT_UI_CONTAINER_PANEL_RIGHT_CENTER", 100}}, -- containers
537-
img_time.widget,
538-
nil,-- view_enter
539-
nil -- view_leave
540-
)
549+
if dt.gui.current_view().name == "lighttable" then
550+
install_module()
551+
else
552+
if not img_time.event_registered then
553+
dt.register_event(
554+
"view-changed",
555+
function(event, old_view, new_view)
556+
if new_view.name == "lighttable" and old_view.name == "darkroom" then
557+
install_module()
558+
end
559+
end
560+
)
561+
img_time.event_registered = true
562+
end
563+
end
564+

0 commit comments

Comments
 (0)