diff --git a/contrib/exportLUT.lua b/contrib/exportLUT.lua index 35981ab..ab63fce 100644 --- a/contrib/exportLUT.lua +++ b/contrib/exportLUT.lua @@ -1,6 +1,6 @@ --[[ This file is part of darktable, - copyright (c) 2016 Tobias Jakobs + copyright (c) 2020 Noah Clarke darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -16,18 +16,14 @@ along with darktable. If not, see . ]] --[[ +Add the following line to .config/darktable/luarc to enable this lightable module: + require "exportLut" -USAGE -* require this script from your main lua file - To do this add this line to the file .config/darktable/luarc: -require "moduleExample" +Given a haldCLUT identity file this script generates haldCLUTS from all the user's +styles and exports them to a location of their choosing. -* it creates a new example lighttable module - -More informations about building user interface elements: -https://www.darktable.org/usermanual/ch09.html.php#lua_gui_example -And about new_widget here: -https://www.darktable.org/lua-api/index.html.php#darktable_new_widget +Warning: during export if a naming collision occurs the older file is automatically +overwritten silently. ]] local dt = require "darktable" @@ -35,24 +31,20 @@ local du = require "lib/dtutils" du.check_min_api_version("3.0.0", "exportLUT") --- Thanks Kevin Ertel for this trick +-- Thanks Kevin Ertel for this bit local os_path_seperator = '/' if dt.configuration.running_os == 'windows' then os_path_seperator = '\\' end -local combobox = dt.new_widget("combobox"){label = "on conflict", value = 1, "skip", "overwrite"} - -local file_chooser_button = dt.new_widget("file_chooser_button") -{ - title = "Identity_file_chooser", -- The title of the window when choosing a file - value = "", -- The currently selected file - is_directory = false -- True if the file chooser button only allows directories to be selecte +local file_chooser_button = dt.new_widget("file_chooser_button"){ + title = "Identity_file_chooser", + value = "", + is_directory = false } -local export_chooser_button = dt.new_widget("file_chooser_button") -{ - title = "Export_location_chooser", -- The title of the window when choosing a file - value = "", -- The currently selected file - is_directory = true -- True if the file chooser button only allows directories to be selecte +local export_chooser_button = dt.new_widget("file_chooser_button"){ + title = "Export_location_chooser", + value = "", + is_directory = true } local identity_label = dt.new_widget("label"){ @@ -63,7 +55,9 @@ local output_label = dt.new_widget("label"){ label = "choose the output location" } -local separator = dt.new_widget("separator"){ +local export_button = dt.new_widget("button"){ + label = "export", + clicked_callback = export_luts } local function export_luts() @@ -74,72 +68,49 @@ local function export_luts() dt.styles.apply(style, identity) io_lut = dt.new_format("png") - dt.print(export_chooser_button.value .. os_path_seperator .. style.name) - io_lut:write_image(identity, export_chooser_button.value .. os_path_seperator .. style.name) - - dt.print(export_chooser_button.value .. os_path_seperator .. style.name) + dt.print("Exporting: " .. export_chooser_button.value .. os_path_seperator .. style.name .. ".png") + io_lut:write_image(identity, export_chooser_button.value .. os_path_seperator .. style.name .. ".png") end + identity:reset() end if (dt.configuration.api_version_major >= 6) then - local section_label = dt.new_widget("section_label") - { - label = "MySectionLabel" - } dt.register_lib( - "export haldclut", -- Module name - "export haldclut", -- name - true, -- expandable - false, -- resetable - {[dt.gui.views.lighttable] = {"DT_UI_CONTAINER_PANEL_RIGHT_CENTER", 100}}, -- containers + "export haldclut", + "export haldclut", + true, + false, + {[dt.gui.views.lighttable] = {"DT_UI_CONTAINER_PANEL_RIGHT_CENTER", 100}}, identity_label, file_chooser_button, output_label, export_chooser_button, - combobox, - separator, - dt.new_widget("box") -- widget + dt.new_widget("box") { orientation = "vertical", - dt.new_widget("button") - { - label = "export", - clicked_callback = function (_) - dt.print("Button clicked") - end - }, - section_label + export_button }, - nil,-- view_enter - nil -- view_leave + nil, + nil ) else dt.register_lib( - "export haldclut", -- Module name - "export haldclut", -- name - true, -- expandable - false, -- resetable - {[dt.gui.views.lighttable] = {"DT_UI_CONTAINER_PANEL_RIGHT_CENTER", 100}}, -- containers - dt.new_widget("box") -- widget + "export haldclut", + "export haldclut", + true, + false, + {[dt.gui.views.lighttable] = {"DT_UI_CONTAINER_PANEL_RIGHT_CENTER", 100}}, + dt.new_widget("box") { orientation = "vertical", identity_label, file_chooser_button, output_label, export_chooser_button, - combobox, - separator, - dt.new_widget("button") - { - label = "export", - clicked_callback = export_luts - } + export_button }, - nil,-- view_enter - nil -- view_leave + nil, + nil ) -end - --- vim: shiftwidth=2 expandtab tabstop=2 cindent syntax=lua --- kate: hl Lua; +end \ No newline at end of file