Skip to content

Commit b8e3ec4

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 d4e21b7 commit b8e3ec4

File tree

1 file changed

+36
-11
lines changed

1 file changed

+36
-11
lines changed

contrib/HDRMerge.lua

Lines changed: 36 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,10 @@ local GUI = { --GUI Elements Table
9494
}
9595
}
9696

97+
HDRM.module_installed = false
98+
HDRM.event_registered = false
99+
100+
97101
--Detect User Styles--
98102
local styles = dt.styles
99103
local styles_count = 1 -- 'none' = 1
@@ -264,6 +268,23 @@ local function main()
264268

265269
end
266270

271+
local function install_module()
272+
if not HDRM.module_installed then
273+
dt.register_lib( -- register HDRMerge module
274+
'HDRMerge_Lib', -- Module name
275+
_('HDRMerge'), -- name
276+
true, -- expandable
277+
true, -- resetable
278+
{[dt.gui.views.lighttable] = {'DT_UI_CONTAINER_PANEL_RIGHT_CENTER', 99}}, -- containers
279+
dt.new_widget('box'){
280+
orientation = 'vertical',
281+
GUI.stack
282+
}
283+
)
284+
HDRM.module_installed = true
285+
end
286+
end
287+
267288
-- GUI Elements --
268289
local lbl_hdr = dt.new_widget('section_label'){
269290
label = _('HDRMerge options')
@@ -411,14 +432,18 @@ else
411432
GUI.stack.active = 2
412433
end
413434

414-
dt.register_lib( -- register HDRMerge module
415-
'HDRMerge_Lib', -- Module name
416-
_('HDRMerge'), -- name
417-
true, -- expandable
418-
true, -- resetable
419-
{[dt.gui.views.lighttable] = {'DT_UI_CONTAINER_PANEL_RIGHT_CENTER', 99}}, -- containers
420-
dt.new_widget('box'){
421-
orientation = 'vertical',
422-
GUI.stack
423-
}
424-
)
435+
if dt.gui.current_view().name == "lighttable" then
436+
install_module()
437+
else
438+
if not HDRM.event_registered then
439+
dt.register_event(
440+
"view-changed",
441+
function(event, old_view, new_view)
442+
if new_view.name == "lighttable" and old_view.name == "darkroom" then
443+
install_module()
444+
end
445+
end
446+
)
447+
HDRM.event_registered = true
448+
end
449+
end

0 commit comments

Comments
 (0)