Bug 388386 - Time adjustment tool is misleading and potentially leads to data loss
Summary: Time adjustment tool is misleading and potentially leads to data loss
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Plugin-Bqm-TimeAdjust (show other bugs)
Version: 5.8.0
Platform: Appimage Linux
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-12-31 09:06 UTC by Jens
Modified: 2019-01-02 21:27 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.0.0


Attachments
Picasa's date and time change option (49.50 KB, image/jpeg)
2018-07-29 16:14 UTC, MarcP
Details
iphoto timeadjust dialog (224.69 KB, image/png)
2018-08-23 10:42 UTC, Jens
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jens 2017-12-31 09:06:25 UTC
The time adjustment tool in Digikam's BQM is - IMHO - a step backwards from the old 4.7.x feature which was separate. 

I think the time adjustment tool doesn't really belong into BQM: Time adjustment is usually very fast (so there is no need to queue it), doesn't require creation of file copies, but absolutely requires a preview of what the target timestamps will look like for each file - and exactly what metadata will be modified. Also time adjustment is used very frequently (possibly more frequently than other adjustments) and so needs a simple, easily accessible UI - and BQM is neither, unfortunately.

But if the time adjustment tool will stay in BQM, I have some suggestions to make it more usable anyway:

1. It is very easy to destroy timestamps altogether. This should never happen. To reproduce: manipulate an image which has no metadata (just the file system timestamp), for example a mp4 video, select "Digikam timestamp" as source, subtract 1h (for example) from the timestamp, but leave all target checkboxes unchecked. => The file will be 'touch'ed to have the current datetime as timestamp, the old timestamp will be lost.

Solution:
  Make it mandatory to check at least one target checkbox for the modified time.
  Also warn if no target checkboxes are checked before running the batch.
  Also - by default - display a visible(!) preview of the modified timestamps, maybe as additional columns in the batch queue which appear when selecting time adjustment - one for each modified timestamp (EXIF/IPTC/XMP/Filesytem/...). 


2. It is completely unclear whether Digikam will *create* the target metadata timestamps if checked or if it will only update them when they exist already. I do not want Digikam to *create* additional timestamps, I just want it to update existing ones.

Solution:
  A checkbox (checked by default) which says "Only update existing timestamp metadata".
  In the queue window, display a new timestamp value in the respective column (see #1) only if it will be updated.


3. It is hard to find out how *not* to create *copies* of modified files. If you select the Timestamp tool, then set it to overwrite existing files (which is misleading, there is no overwriting being done) and to do no renaming, I *think* it is just modifying the timestamps, but I don't know - is it also resampling / recompressing the JPEG files?

Solution:
  Explain what settings are required *just* to modify timestamps and not the image data at all.
  Or better yet, if the timestamp tool is selected, make these settings the default.
  *Even* better, if the time adjustment tool is the only selected batch tool, just 


4. For large time difference corrections, it is hard to calculate exactly what amount needs to be added or subtracted. It would be easier if there were an option to set the absolute time for the *first* selected image and let Digikam calculate the difference (add/subtract) for the remaining images based on this delta. (This is how iPhoto does it.)


Thank you! :-)
Comment 1 Jens 2018-02-04 21:31:31 UTC
Hello, can somebody please handle this usability issue? I just messed up the timestamps of about 400 photos because I accidentally re-executed a timestamp batch job on a previously selected list of photos which - for some reason - were still in the batch queue manager. Also, BQM went into an endless loop and executed the time adjustment (subtraction of some hours) multiple times on some photos!

I just want a simple UI to adjust the timestamp on my photos and videos. I don't think this feature belongs into BQM ...

Thanks!
Comment 2 MarcP 2018-07-29 16:14:54 UTC
Created attachment 114195 [details]
Picasa's date and time change option
Comment 3 MarcP 2018-07-29 16:17:30 UTC
I also believe the date and time change tools (either by editing metadata or using the batch manager) are unnecessarily complicated.

Yes, it is good that we have the option to edit every single one of the date metadata fields, either being XMP, Exif or IPTC, but for most cases, a much simpler dialog could be used and wouldn't lead to confusion.

I have in mind Picasa's dialog, with just two fields and two options, and it is often more than enough. See attached screenshot. It would be great if we could have a simple date/time change option.
Comment 4 Jens 2018-08-23 10:42:43 UTC
Created attachment 114557 [details]
iphoto timeadjust dialog

Same with iPhoto - the dialog is extremely simple, yet allows for relative and absolute adjustments of multiple photos and can even directly adjust (existing) metadata of the files.
With Digikam I am given seven options of metadata to adjust, how should a normal user know which ones are relevant?
Comment 5 Job E. 2018-09-09 19:28:05 UTC
Adding my two cents of agreement here.  The first time I ran through the BQM to change a bunch of timestamps I ended up with a bunch of duplicate files as I didn't set the "overwrite" settings

But, as the original poster mentioned its not clear what "Overwrite" is doing.  Hopefully its just editting the EXIF data.
Comment 6 Maik Qualmann 2018-09-10 04:22:10 UTC
The BQM always needs a target file internally. For metadata tools, if there are no image editing tools in the queue, a copy of the original file is created. Then the metadata operations are performed on the copy. If there was no error, either the copy is renamed, or if the overwrite option is set, the original file is replaced.

Maik
Comment 7 Jens 2018-09-11 08:57:03 UTC
Then 
- either the Time adjust tool does not belong in BQM
or
- the BQM needs to hide this complexity from the user.


As a friend of mine (who does software development at Apple) keeps saying: technical reasons are no excuse for bad UI design. 

;)
Comment 8 MarcP 2018-09-12 23:18:52 UTC
> But, as the original poster mentioned its not clear what "Overwrite" is doing.  Hopefully its just editting the EXIF data.
It just changes the EXIF data, it doesn't affect the picture itself (I made sure personally before correcting the date of many pictures).
Comment 9 Maik Qualmann 2018-09-19 11:04:26 UTC
Git commit 78a52448882d3819b5ae5644b83cf9e8b43d90ad by Maik Qualmann.
Committed on 19/09/2018 at 11:03.
Pushed by mqualmann into branch 'master'.

first step to backport Time Adjust tool as a separate tool to digiKam
Related: bug 366777
FIXED-IN: 6.0.0

M  +3    -1    NEWS
M  +1    -0    core/app/CMakeLists.txt
M  +1    -0    core/app/main/digikamapp.h
M  +1    -0    core/app/main/digikamapp_p.h
M  +1    -0    core/app/main/digikamapp_setup.cpp
M  +22   -0    core/app/main/digikamapp_tools.cpp
M  +2    -1    core/app/main/digikamui5.rc
M  +11   -0    core/libs/widgets/mainview/dxmlguiwindow.cpp
M  +5    -0    core/libs/widgets/mainview/dxmlguiwindow.h
M  +1    -0    core/utilities/CMakeLists.txt
M  +0    -4    core/utilities/queuemanager/CMakeLists.txt
A  +31   -0    core/utilities/timeadjust/CMakeLists.txt
R  +0    -0    core/utilities/timeadjust/clockphotodialog.cpp [from: core/utilities/queuemanager/tools/metadata/clockphotodialog.cpp - 100% similarity]
R  +3    -3    core/utilities/timeadjust/clockphotodialog.h [from: core/utilities/queuemanager/tools/metadata/clockphotodialog.h - 093% similarity]
R  +0    -0    core/utilities/timeadjust/detbyclockphotobutton.cpp [from: core/utilities/queuemanager/tools/metadata/detbyclockphotobutton.cpp - 100% similarity]
R  +4    -4    core/utilities/timeadjust/detbyclockphotobutton.h [from: core/utilities/queuemanager/tools/metadata/detbyclockphotobutton.h - 090% similarity]
R  +0    -0    core/utilities/timeadjust/timeadjustcontainer.cpp [from: core/utilities/queuemanager/tools/metadata/timeadjustcontainer.cpp - 100% similarity]
R  +8    -4    core/utilities/timeadjust/timeadjustcontainer.h [from: core/utilities/queuemanager/tools/metadata/timeadjustcontainer.h - 092% similarity]
A  +442  -0    core/utilities/timeadjust/timeadjustdialog.cpp     [License: GPL (v2+)]
A  +108  -0    core/utilities/timeadjust/timeadjustdialog.h     [License: GPL (v2+)]
A  +113  -0    core/utilities/timeadjust/timeadjustlist.cpp     [License: GPL (v2+)]
A  +74   -0    core/utilities/timeadjust/timeadjustlist.h     [License: GPL (v2+)]
R  +0    -0    core/utilities/timeadjust/timeadjustsettings.cpp [from: core/utilities/queuemanager/tools/metadata/timeadjustsettings.cpp - 100% similarity]
C  +5    -4    core/utilities/timeadjust/timeadjustsettings.h [from: core/utilities/queuemanager/tools/metadata/timeadjustsettings.h - 089% similarity]
A  +226  -0    core/utilities/timeadjust/timeadjusttask.cpp     [License: GPL (v2+)]
C  +17   -24   core/utilities/timeadjust/timeadjusttask.h [from: core/utilities/queuemanager/tools/metadata/timeadjustsettings.h - 057% similarity]
A  +133  -0    core/utilities/timeadjust/timeadjustthread.cpp     [License: GPL (v2+)]
R  +24   -24   core/utilities/timeadjust/timeadjustthread.h [from: core/utilities/queuemanager/tools/metadata/timeadjustsettings.h - 057% similarity]

https://commits.kde.org/digikam/78a52448882d3819b5ae5644b83cf9e8b43d90ad
Comment 10 Jens 2019-01-02 21:25:56 UTC
Will this make it into 6.0-final?
Comment 11 caulier.gilles 2019-01-02 21:27:20 UTC
yes, and it's already available in last official 6.0.0-beta3 released few days ago...

Gilles Caulier