From 3001a0dc1a0cf1c229aac5a802a819f2ba6943aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Dura-Kov=C3=A1cs?= Date: Sun, 4 May 2025 23:23:33 +0200 Subject: [PATCH 1/2] Add manual coordinate input option to geoToolbox --- contrib/geoToolbox.lua | 64 ++++++++++++++++++++++++++++-------------- 1 file changed, 43 insertions(+), 21 deletions(-) diff --git a/contrib/geoToolbox.lua b/contrib/geoToolbox.lua index 01a14eea..4f17b46b 100644 --- a/contrib/geoToolbox.lua +++ b/contrib/geoToolbox.lua @@ -1,6 +1,7 @@ --[[ This file is part of darktable, copyright (c) 2016 Tobias Jakobs + copyright (c) 2025 Balázs Dura-Kovács darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -63,21 +64,30 @@ gT.event_registered = false local labelDistance = dt.new_widget("label") labelDistance.label = _("distance:") -local label_copy_gps_lat = dt.new_widget("check_button") +local checkbox_copy_gps_lat = dt.new_widget("check_button") { - label = _("latitude: "), value = true } -local label_copy_gps_lon = dt.new_widget("check_button") +local entry_gps_lat = dt.new_widget("entry") +{ + placeholder = _("latitude") +} +local checkbox_copy_gps_lon = dt.new_widget("check_button") { - label = _("longitude: "), value = true } -local label_copy_gps_ele = dt.new_widget("check_button") +local entry_gps_lon = dt.new_widget("entry") +{ + placeholder = _("longitude") +} +local checkbox_copy_gps_ele = dt.new_widget("check_button") { - label = _("elevation: "), value = true } +local entry_gps_ele = dt.new_widget("entry") +{ + placeholder = _("elevation") +} -- local function select_with_gps() @@ -294,20 +304,20 @@ local function copy_gps() copy_gps_have_data = false else copy_gps_have_data = true - if (image.latitude and label_copy_gps_lat.value) then + if (image.latitude and checkbox_copy_gps_lat.value) then copy_gps_latitude = image.latitude end - if (image.longitude and label_copy_gps_lon.value) then + if (image.longitude and checkbox_copy_gps_lon.value) then copy_gps_longitude = image.longitude end - if (image.elevation and label_copy_gps_ele.value) then + if (image.elevation and checkbox_copy_gps_ele.value) then copy_gps_elevation = image.elevation end end - label_copy_gps_lat.label = _("latitude: ") .. copy_gps_latitude - label_copy_gps_lon.label = _("longitude: ") .. copy_gps_longitude - label_copy_gps_ele.label = _("elevation: ") .. copy_gps_elevation + entry_gps_lat.text = copy_gps_latitude + entry_gps_lon.text = copy_gps_longitude + entry_gps_ele.text = copy_gps_elevation return end @@ -317,14 +327,14 @@ local function paste_gps(image) local sel_images = dt.gui.action_images for jj,image in ipairs(sel_images) do - if (label_copy_gps_lat.value) then - image.latitude = copy_gps_latitude + if (checkbox_copy_gps_lat.value) then + image.latitude = entry_gps_lat.text end - if (label_copy_gps_lon.value) then - image.longitude = copy_gps_longitude + if (checkbox_copy_gps_lon.value) then + image.longitude = entry_gps_lon.text end - if (label_copy_gps_ele.value) then - image.elevation = copy_gps_elevation + if (checkbox_copy_gps_ele.value) then + image.elevation = entry_gps_ele.text end end end @@ -663,9 +673,21 @@ gT.widget = dt.new_widget("box") tooltip = _("copy GPS data"), clicked_callback = copy_gps }, - label_copy_gps_lat, - label_copy_gps_lon, - label_copy_gps_ele, + dt.new_widget("box"){ + orientation = "horizontal", + checkbox_copy_gps_lat, + entry_gps_lat + }, + dt.new_widget("box"){ + orientation = "horizontal", + checkbox_copy_gps_lon, + entry_gps_lon + }, + dt.new_widget("box"){ + orientation = "horizontal", + checkbox_copy_gps_ele, + entry_gps_ele + }, dt.new_widget("button") { label = _("paste GPS data"), From 25afb419247450a6541ea9f6c3218f054d4dbfb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Dura-Kov=C3=A1cs?= Date: Tue, 6 May 2025 19:37:09 +0200 Subject: [PATCH 2/2] Create tooltips for geoToolbox --- contrib/geoToolbox.lua | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/contrib/geoToolbox.lua b/contrib/geoToolbox.lua index 4f17b46b..9f9c1e04 100644 --- a/contrib/geoToolbox.lua +++ b/contrib/geoToolbox.lua @@ -70,6 +70,7 @@ local checkbox_copy_gps_lat = dt.new_widget("check_button") } local entry_gps_lat = dt.new_widget("entry") { + tooltip = _("latitude (editable)"), placeholder = _("latitude") } local checkbox_copy_gps_lon = dt.new_widget("check_button") @@ -78,6 +79,7 @@ local checkbox_copy_gps_lon = dt.new_widget("check_button") } local entry_gps_lon = dt.new_widget("entry") { + tooltip = _("longitude (editable)"), placeholder = _("longitude") } local checkbox_copy_gps_ele = dt.new_widget("check_button") @@ -86,6 +88,7 @@ local checkbox_copy_gps_ele = dt.new_widget("check_button") } local entry_gps_ele = dt.new_widget("entry") { + tooltip = _("elevation (editable)"), placeholder = _("elevation") } -- @@ -690,8 +693,8 @@ gT.widget = dt.new_widget("box") }, dt.new_widget("button") { - label = _("paste GPS data"), - tooltip = _("paste GPS data"), + label = _("apply GPS data to image"), + tooltip = _("apply GPS data to image"), clicked_callback = paste_gps }, separator2,--------------------------------------------------------