Merge pull request #584 from balping/patch-1

Add manual coordinate input option to geoToolbox
This commit is contained in:
wpferguson
2025-08-18 17:01:22 -04:00
committed by GitHub

View File

@@ -1,6 +1,7 @@
--[[ --[[
This file is part of darktable, This file is part of darktable,
copyright (c) 2016 Tobias Jakobs copyright (c) 2016 Tobias Jakobs
copyright (c) 2025 Balázs Dura-Kovács
darktable is free software: you can redistribute it and/or modify darktable is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@@ -63,21 +64,33 @@ gT.event_registered = false
local labelDistance = dt.new_widget("label") local labelDistance = dt.new_widget("label")
labelDistance.label = _("distance:") 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 value = true
} }
local label_copy_gps_lon = 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")
{ {
label = _("longitude: "),
value = true value = true
} }
local label_copy_gps_ele = 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")
{ {
label = _("elevation: "),
value = true value = true
} }
local entry_gps_ele = dt.new_widget("entry")
{
tooltip = _("elevation (editable)"),
placeholder = _("elevation")
}
-- </GUI> -- </GUI>
local function select_with_gps() local function select_with_gps()
@@ -294,20 +307,20 @@ local function copy_gps()
copy_gps_have_data = false copy_gps_have_data = false
else else
copy_gps_have_data = true 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 copy_gps_latitude = image.latitude
end 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 copy_gps_longitude = image.longitude
end 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 copy_gps_elevation = image.elevation
end end
end end
label_copy_gps_lat.label = _("latitude: ") .. copy_gps_latitude entry_gps_lat.text = copy_gps_latitude
label_copy_gps_lon.label = _("longitude: ") .. copy_gps_longitude entry_gps_lon.text = copy_gps_longitude
label_copy_gps_ele.label = _("elevation: ") .. copy_gps_elevation entry_gps_ele.text = copy_gps_elevation
return return
end end
@@ -317,14 +330,14 @@ local function paste_gps(image)
local sel_images = dt.gui.action_images local sel_images = dt.gui.action_images
for jj,image in ipairs(sel_images) do for jj,image in ipairs(sel_images) do
if (label_copy_gps_lat.value) then if (checkbox_copy_gps_lat.value) then
image.latitude = copy_gps_latitude image.latitude = entry_gps_lat.text
end end
if (label_copy_gps_lon.value) then if (checkbox_copy_gps_lon.value) then
image.longitude = copy_gps_longitude image.longitude = entry_gps_lon.text
end end
if (label_copy_gps_ele.value) then if (checkbox_copy_gps_ele.value) then
image.elevation = copy_gps_elevation image.elevation = entry_gps_ele.text
end end
end end
end end
@@ -663,13 +676,25 @@ gT.widget = dt.new_widget("box")
tooltip = _("copy GPS data"), tooltip = _("copy GPS data"),
clicked_callback = copy_gps clicked_callback = copy_gps
}, },
label_copy_gps_lat, dt.new_widget("box"){
label_copy_gps_lon, orientation = "horizontal",
label_copy_gps_ele, 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") dt.new_widget("button")
{ {
label = _("paste GPS data"), label = _("apply GPS data to image"),
tooltip = _("paste GPS data"), tooltip = _("apply GPS data to image"),
clicked_callback = paste_gps clicked_callback = paste_gps
}, },
separator2,-------------------------------------------------------- separator2,--------------------------------------------------------