Hello all, I deeply appreciate your dedication to this extraordinary software. I use it frequently and am forever amazed that it's both free and open source. It's truly model software.
Anyway, I'm not very handy with real programming (my realm is lightweight web programming), but I've been trying to find small ways to contribute for a while now. Finally, I've produced my first patch! Trivial as it may be, it adds creator, publisher and rights variables to the export variables list, so you can name files according to their creator, publisher and/or copyright holder. It's something I've been wanting for a while, so I hope you accept it! (And I hope I did it correctly). I included spanish and portuguese translations, but that's all I've got :(. Thanks again, Kael ___________________________________________________________________________ darktable developer mailing list to unsubscribe send a mail to darktable-dev+unsubscr...@lists.darktable.org
From c5eaebb88c1f69e9dc77a623b43c1de0d52f8513 Mon Sep 17 00:00:00 2001 From: Kael Shipman <kael.ship...@gmail.com> Date: Sun, 13 Dec 2015 18:08:08 -0500 Subject: [PATCH] Added metadata variables to export dialog --- po/es.po | 12 ++++++++++++ po/pt_BR.po | 12 ++++++++++++ po/pt_PT.po | 16 ++++++++++++++++ src/common/variables.c | 42 ++++++++++++++++++++++++++++++++++++++++++ src/gui/gtkentry.c | 3 +++ 5 files changed, 85 insertions(+) diff --git a/po/es.po b/po/es.po index ef7af62..c42a415 100644 --- a/po/es.po +++ b/po/es.po @@ -2769,6 +2769,18 @@ msgstr "$(DESKTOP) - carpeta escritorio" msgid "$(TITLE) - title from metadata" msgstr "$(TITLE) - titulo de los metadatos" +#: ../src/gui/gtkentry.c:219 +msgid "$(CREATOR) - creator from metadata" +msgstr "$(CREATOR) - creador de los metadatos" + +#: ../src/gui/gtkentry.c:220 +msgid "$(PUBLISHER) - publisher from metadata" +msgstr "$(PUBLISHER) - publicador de los metadatos" + +#: ../src/gui/gtkentry.c:221 +msgid "$(RIGHT) - rights from metadata" +msgstr "$(RIGHTS) - derechos de los metadatos" + #: ../src/gui/guides.c:370 msgid "extra" msgstr "extra" diff --git a/po/pt_BR.po b/po/pt_BR.po index a67ee59..e3b5877 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -1896,6 +1896,18 @@ msgstr "$(DESKTOP) - pasta desktop" msgid "$(TITLE) - title from metadata" msgstr "$(TITLE) - tÃtulo dos metadados" +#: ../src/gui/gtkentry.c:219 +msgid "$(CREATOR) - creator from metadata" +msgstr "$(CREATOR) - creador dos metadados" + +#: ../src/gui/gtkentry.c:220 +msgid "$(PUBLISHER) - publisher from metadata" +msgstr "$(PUBLISHER) - publicador dos metadados" + +#: ../src/gui/gtkentry.c:221 +msgid "$(RIGHT) - rights from metadata" +msgstr "$(RIGHTS) - dereitos dos metadados" + #: ../src/gui/preferences.c:224 msgid "darktable preferences" msgstr "preferências darktable" diff --git a/po/pt_PT.po b/po/pt_PT.po index 7f3e0e2..17d48c4 100644 --- a/po/pt_PT.po +++ b/po/pt_PT.po @@ -2161,6 +2161,22 @@ msgstr "$(HOME) - pasta pessoal" msgid "$(DESKTOP) - desktop folder" msgstr "$(DESKTOP) - ambiente de trabalho" +#: ../src/gui/gtkentry.c:218 +msgid "$(TITLE) - title from metadata" +msgstr "$(TITLE) - tÃtulo dos metadados" + +#: ../src/gui/gtkentry.c:219 +msgid "$(CREATOR) - creator from metadata" +msgstr "$(CREATOR) - creador dos metadados" + +#: ../src/gui/gtkentry.c:220 +msgid "$(PUBLISHER) - publisher from metadata" +msgstr "$(PUBLISHER) - publicador dos metadados" + +#: ../src/gui/gtkentry.c:221 +msgid "$(RIGHT) - rights from metadata" +msgstr "$(RIGHTS) - dereitos dos metadados" + #: ../src/gui/preferences.c:222 msgid "darktable preferences" msgstr "preferências darktable" diff --git a/src/common/variables.c b/src/common/variables.c index 81919e1..97c38d8 100644 --- a/src/common/variables.c +++ b/src/common/variables.c @@ -263,6 +263,48 @@ gboolean _variable_get_value(dt_variables_params_t *params, gchar *variable, gch } g_list_free_full(res, &g_free); } + else if(g_strcmp0(variable, "$(CREATOR)") == 0 && params->filename && (got_value = TRUE)) + { + GList *res = dt_metadata_get(params->imgid, "Xmp.dc.creator", NULL); + res = g_list_first(res); + if(res != NULL) + { + snprintf(value, value_len, "%s", (char *)res->data); + } + else + { + snprintf(value, value_len, "%s", _("unknown")); + } + g_list_free_full(res, &g_free); + } + else if(g_strcmp0(variable, "$(PUBLISHER)") == 0 && params->filename && (got_value = TRUE)) + { + GList *res = dt_metadata_get(params->imgid, "Xmp.dc.publisher", NULL); + res = g_list_first(res); + if(res != NULL) + { + snprintf(value, value_len, "%s", (char *)res->data); + } + else + { + snprintf(value, value_len, "%s", _("unknown")); + } + g_list_free_full(res, &g_free); + } + else if(g_strcmp0(variable, "$(RIGHTS)") == 0 && params->filename && (got_value = TRUE)) + { + GList *res = dt_metadata_get(params->imgid, "Xmp.dc.rights", NULL); + res = g_list_first(res); + if(res != NULL) + { + snprintf(value, value_len, "%s", (char *)res->data); + } + else + { + snprintf(value, value_len, "%s", _("unknown")); + } + g_list_free_full(res, &g_free); + } g_free(pictures_folder); g_free((gchar *)homedir); diff --git a/src/gui/gtkentry.c b/src/gui/gtkentry.c index 8bbb841..fa87494 100644 --- a/src/gui/gtkentry.c +++ b/src/gui/gtkentry.c @@ -210,6 +210,9 @@ const dt_gtkentry_completion_spec *dt_gtkentry_get_default_path_compl_list() { "HOME", N_("$(HOME) - home folder") }, { "DESKTOP", N_("$(DESKTOP) - desktop folder") }, { "TITLE", N_("$(TITLE) - title from metadata") }, + { "CREATOR", N_("$(CREATOR) - creator from metadata") }, + { "PUBLISHER", N_("$(PUBLISHER) - publisher from metadata") }, + { "RIGHTS", N_("$(RIGHTS) - rights from metadata") }, { NULL, NULL } }; return default_path_compl_list; -- 1.9.1