further improvements

This commit is contained in:
U-DESKTOP-HQME86J\marco
2020-01-01 19:27:41 +01:00
parent a2850cac6b
commit 5116d645db
3 changed files with 94 additions and 62 deletions

View File

@@ -83,26 +83,29 @@ local PS = dt.configuration.running_os == "windows" and "\\" or "/"
-- translation
local gettext = dt.gettext
gettext.bindtextdomain(MODULE_NAME, dt.configuration.config_dir..PS.."lua"..PS.."locale"..PS)
local function _(msgid)
return gettext.dgettext(MODULE_NAME, msgid)
end
-- number of valid entries in the list of external programs
local n_entries = 0
local n_entries
-- allowed file extensions, to exclude RAW, which cannot be edited externally
local allowed_file_types = {"JPG", "jpg", "JPEG", "jpeg", "TIF", "tif", "TIFF", "tiff", "EXR", "exr"}
-- last used editor initialization
if not dt.preferences.read(MODULE_NAME,"initialized", "bool") then
dt.preferences.write(MODULE_NAME,"lastchoice", "integer", 1)
dt.preferences.write(MODULE_NAME,"lastchoice", "integer", 0)
dt.preferences.write(MODULE_NAME,"initialized", "bool", true)
end
local lastchoice = 1
local lastchoice = 0
-- update lists of program names and paths, as well as combobox ---------------
local function UpdateProgramList(combobox, button_pressed)
local function UpdateProgramList(combobox, button1, button2, update_button_pressed)
-- initialize lists
program_names = {}
@@ -111,6 +114,7 @@ local function UpdateProgramList(combobox, button_pressed)
-- build lists from preferences
local name
local last = false
n_entries = 0
for i = 1, 9 do
name = dt.preferences.read(MODULE_NAME,"program_name_"..i, "string")
if (name == "" or name == nil) then last = true end
@@ -123,13 +127,20 @@ local function UpdateProgramList(combobox, button_pressed)
n_entries = i
end
end
lastchoice = dt.preferences.read(MODULE_NAME, "lastchoice", "integer")
if lastchoice > n_entries then
lastchoice = 1
dt.preferences.write(MODULE_NAME, "lastchoice", "integer", lastchoice)
end
combobox.value = lastchoice
if button_pressed then dt.print(_("list updated")) end
if lastchoice == 0 and n_entries > 0 then lastchoice = 1 end
if lastchoice > n_entries then lastchoice = n_entries end
dt.preferences.write(MODULE_NAME, "lastchoice", "integer", lastchoice)
-- widgets enabled if there is at least one program configured
combobox.selected = lastchoice
local active = n_entries > 0
combobox.sensitive = active
button1.sensitive = active
button2.sensitive = active
if update_button_pressed then dt.print(n_entries.._(" editors configured")) end
end
@@ -169,9 +180,19 @@ local function OpenWith(images, choice, copy)
i, image = next(images)
local name = image.path..PS..image.filename
-- check if image is raw, return if is
if image.is_raw then
dt.print(_("RAW not allowed"))
-- check if image is raw, return if it is
-- please note that the image property image.is_raw fails when filepath contains spaces
-- so as a workaround we allow only TIF, JPG and EXR
local file_ext = df.get_filetype (image.filename)
local allowed = false
for i,v in pairs(allowed_file_types) do
if v == file_ext then
allowed = true
break
end
end
if not allowed then
dt.print(_("file type not allowed"))
return
end
@@ -283,8 +304,6 @@ local function OpenWith(images, choice, copy)
table.insert(selection, new_image)
dt.gui.selection (selection)
-- remember the last editor used
dt.preferences.write(MODULE_NAME, "lastchoice", "integer", choice)
end
@@ -340,16 +359,18 @@ dt.register_storage("exp2coll", _("collection"), show_status, export2collection)
local combobox = dt.new_widget("combobox") {
label = _("choose program"),
tooltip = _("select the external editor from the list"),
value = 1,
changed_callback = function(self)
dt.preferences.write(MODULE_NAME, "lastchoice", "integer", self.selected)
end,
""
}
UpdateProgramList(combobox, false) -- initialize list of programs and combobox
-- button edit ----------------------------------------------------------------
local button1 = dt.new_widget("button") {
label = _("edit"),
tooltip = _("open the selected image in external editor"),
--sensitive = false,
clicked_callback = function()
OpenWith(dt.gui.action_images, combobox.selected, false)
end
@@ -371,7 +392,7 @@ local button3 = dt.new_widget("button") {
label = _("update list"),
tooltip = _("update list of programs if lua preferences are changed"),
clicked_callback = function()
UpdateProgramList(combobox, true)
UpdateProgramList(combobox, button1, button2, true)
end
}
@@ -403,10 +424,18 @@ dt.register_lib(
)
-- initialize list of programs and widgets ------------------------------------
UpdateProgramList(combobox, button1, button2, false)
-- register the new preferences -----------------------------------------------
for i = 9, 1, -1 do
dt.preferences.register(MODULE_NAME, "program_path_"..i, "string", _("command for external editor ")..i, _("command for external editor, including full path if needed"), "")
dt.preferences.register(MODULE_NAME, "program_name_"..i, "string", _("name of external editor ")..i, _("friendly name of external editor"), "")
dt.preferences.register(MODULE_NAME, "program_path_"..i, "file",
_("executable for external editor ")..i,
_("select executable for external editor") , _("(None)"))
dt.preferences.register(MODULE_NAME, "program_name_"..i, "string",
_("name of external editor ")..i,
_("friendly name of external editor"), "")
end

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ext_editor\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-12-29 15:33+0100\n"
"POT-Creation-Date: 2020-01-01 19:15+0100\n"
"PO-Revision-Date: 2019-12-28 21:45+0100\n"
"Last-Translator: marco <marco.carrarini@gmail.com>\n"
"Language-Team: Italian\n"
@@ -17,103 +17,106 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ext_editor.lua:132
msgid "list updated"
msgstr "Lista aggiornata"
#: ext_editor.lua:143
msgid " editors configured"
msgstr " editor configurati"
#: ext_editor.lua:139
#: ext_editor.lua:150
msgid "exporting image "
msgstr "Esportazione immagine "
#: ext_editor.lua:148
#: ext_editor.lua:159
msgid "not a valid choice"
msgstr "Scelta non valida"
#: ext_editor.lua:154
#: ext_editor.lua:165
msgid "please select one image"
msgstr "Selezionare un'immagine"
msgstr "Selezionare una immagine"
#: ext_editor.lua:163
#: ext_editor.lua:174
msgid " not found"
msgstr " non trovato"
#: ext_editor.lua:174
msgid "RAW not allowed"
msgstr "RAW non consentito"
#: ext_editor.lua:195
msgid "file type not allowed"
msgstr "tipo di file non consentito"
#: ext_editor.lua:211
#: ext_editor.lua:232
msgid "error copying file "
msgstr "Errore copia file "
#: ext_editor.lua:218
#: ext_editor.lua:239
msgid "launching "
msgstr "Lancio "
#: ext_editor.lua:221
#: ext_editor.lua:242
msgid "error launching "
msgstr "Errore lancio "
#: ext_editor.lua:322
#: ext_editor.lua:341
msgid "error moving file "
msgstr "Errore spostamento file "
#: ext_editor.lua:336
#: ext_editor.lua:355
msgid "collection"
msgstr "Collezione"
#: ext_editor.lua:341
#: ext_editor.lua:360
msgid "choose program"
msgstr "Scegli programma"
#: ext_editor.lua:342
#: ext_editor.lua:361
msgid "select the external editor from the list"
msgstr "Seleziona l'editor esterno dalla lista"
msgstr "Seleziona un editor esterno dalla lista"
#: ext_editor.lua:351
#: ext_editor.lua:371
msgid "edit"
msgstr "Modifica"
#: ext_editor.lua:352
#: ext_editor.lua:372
msgid "open the selected image in external editor"
msgstr "Apre l'immagine selezionata nell'editor esterno"
msgstr "Apre immagine selezionata in editor esterno"
#: ext_editor.lua:361
#: ext_editor.lua:382
msgid "edit a copy"
msgstr "Modifica copia"
#: ext_editor.lua:362
#: ext_editor.lua:383
msgid "create a copy of the selected image and open it in external editor"
msgstr "apre una copia dell'immagine selezionata nell'editor esterno"
msgstr "Apre una copia della immagine selezionata in editor esterno"
#: ext_editor.lua:371
#: ext_editor.lua:392
msgid "update list"
msgstr "Aggiorna lista"
#: ext_editor.lua:372
#: ext_editor.lua:393
msgid "update list of programs if lua preferences are changed"
msgstr "Aggiorna la lista dei programmi se le preferenze di lua sono cambiate"
#: ext_editor.lua:392
#: ext_editor.lua:413
msgid "external editors"
msgstr "Editor esterni"
#: ext_editor.lua:408
msgid "command for external editor "
msgstr "Comando per l'editor esterno "
#: ext_editor.lua:434
msgid "executable for external editor "
msgstr "Eseguibile per editor esterno "
#: ext_editor.lua:408
msgid "command for external editor, including full path if needed"
msgstr ""
"Comando per l'editor esterno, compreso il percorso completo se necessario"
#: ext_editor.lua:435
msgid "select executable for external editor"
msgstr "seleziona eseguibile per editor esterno "
#: ext_editor.lua:409
#: ext_editor.lua:435
msgid "(None)"
msgstr "(Nessuno)"
#: ext_editor.lua:437
msgid "name of external editor "
msgstr "Nome dell'editor esterno "
msgstr "Nome editor esterno "
#: ext_editor.lua:409
#: ext_editor.lua:438
msgid "friendly name of external editor"
msgstr "Nome comune dell'editor esterno"
msgstr "Nome comune editor esterno"
#: ext_editor.lua:415
#: ext_editor.lua:444
msgid "edit with program "
msgstr "Modifica con programma "