Skip to content

Commit d1e330e

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 6aa5893 commit d1e330e

File tree

1 file changed

+37
-15
lines changed

1 file changed

+37
-15
lines changed

tools/script_manager.lua

Lines changed: 37 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -450,6 +450,26 @@ local function link_downloads_directory()
450450
os.execute("ln -s " .. "$HOME/Downloads " .. LUA_DIR .. "/downloads")
451451
end
452452

453+
local function install_module()
454+
if not sm.module_installed then
455+
dt.register_lib(
456+
"script_manager", -- Module name
457+
"script manager", -- Visible name
458+
true, -- expandable
459+
false, -- resetable
460+
{[dt.gui.views.lighttable] = {"DT_UI_CONTAINER_PANEL_LEFT_CENTER", 0}}, -- containers
461+
dt.new_widget("box") -- widget
462+
{
463+
orientation = "vertical",
464+
sm.main_box,
465+
},
466+
nil,-- view_enter
467+
nil -- view_leave
468+
)
469+
sm.module_installed = true
470+
end
471+
end
472+
453473
-- - - - - - - - - - - - - - - - - - - - - - - -
454474
-- M A I N P R O G R A M
455475
-- - - - - - - - - - - - - - - - - - - - - - - -
@@ -466,6 +486,8 @@ sm.script_names = {}
466486
sm.script_paths = {}
467487
sm.main_menu_choices = {}
468488
sm.main_stack_items = {}
489+
sm.event_registered = false
490+
sm.module_installed = false
469491

470492
-- see if we've run this before
471493

@@ -742,21 +764,21 @@ sm.main_box = dt.new_widget("box"){
742764
-- D A R K T A B L E I N T E G R A T I O N
743765
-- - - - - - - - - - - - - - - - - - - - - - - -
744766

745-
-- register the module
746-
dt.register_lib(
747-
"script_manager", -- Module name
748-
"script manager", -- Visible name
749-
true, -- expandable
750-
false, -- resetable
751-
{[dt.gui.views.lighttable] = {"DT_UI_CONTAINER_PANEL_LEFT_CENTER", 0}}, -- containers
752-
dt.new_widget("box") -- widget
753-
{
754-
orientation = "vertical",
755-
sm.main_box,
756-
},
757-
nil,-- view_enter
758-
nil -- view_leave
759-
)
767+
if dt.gui.current_view().name == "lighttable" then
768+
install_module()
769+
else
770+
if not sm.event_registered then
771+
dt.register_event(
772+
"view-changed",
773+
function(event, old_view, new_view)
774+
if new_view.name == "lighttable" and old_view.name == "darkroom" then
775+
install_module()
776+
end
777+
end
778+
)
779+
sm.event_registered = true
780+
end
781+
end
760782

761783
-- set up the scripts block if we have them otherwise we'll wait until we download them
762784

0 commit comments

Comments
 (0)