Skip to content

Commit c12d6f0

Browse files
authored
Merge pull request darktable-org#316 from wpferguson/add_database_get_image_to_find_by_image_id
add database.get_image() to dutils.find_image_by_id()
2 parents 33ef58a + 778ad2c commit c12d6f0

File tree

1 file changed

+23
-19
lines changed

1 file changed

+23
-19
lines changed

lib/dtutils.lua

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -304,26 +304,30 @@ function dtutils.find_image_by_id(imgid)
304304
if #dt.database == 0 or imgid > dt.database[#dt.database].id then
305305
return nil
306306
end
307-
local min = 1
308-
local max = #dt.database
309-
while (max-min)//2 > 0 do
310-
local mid = min + (max-min)//2
311-
local midID = dt.database[mid].id
312-
if imgid == midID then
313-
return dt.database[mid]
314-
elseif imgid < midID then
315-
max = mid-1
316-
else
317-
min = mid+1
318-
end
319-
end
320-
if dt.database[min].id == imgid then
321-
return dt.database[min]
322-
elseif dt.database[max].id == imgid then
323-
return dt.database[max]
307+
if dt.configuration.api_version_string >= "6.3.0" then
308+
return dt.database.get_image(imgid)
324309
else
325-
return nil
326-
end
310+
local min = 1
311+
local max = #dt.database
312+
while (max-min)//2 > 0 do
313+
local mid = min + (max-min)//2
314+
local midID = dt.database[mid].id
315+
if imgid == midID then
316+
return dt.database[mid]
317+
elseif imgid < midID then
318+
max = mid-1
319+
else
320+
min = mid+1
321+
end
322+
end
323+
if dt.database[min].id == imgid then
324+
return dt.database[min]
325+
elseif dt.database[max].id == imgid then
326+
return dt.database[max]
327+
else
328+
return nil
329+
end
330+
end
327331
end
328332

329333
return dtutils

0 commit comments

Comments
 (0)