Beep6581 / RawTherapee

A powerful cross-platform raw photo processing program
https://rawtherapee.com
GNU General Public License v3.0
2.79k stars 316 forks source link

Notify the user when a tool's behavior changes #3623

Open Beep6581 opened 7 years ago

Beep6581 commented 7 years ago

When I open a photo with a previously created sidecar file, I would like RawTherapee to list the tools whose behavior has changed since the original sidecar file was created. This spares me from unexpected problems in exported images and wasted time.

This suggestion comes from our discussion in IRC.

It would require that RT stores per-tool versions, and that it communicates with the user about tools which are for whatever reason unavailable - tool features added, tool bug fixed, external file (LCP, HaldCLUT, flat-field, etc.) unavailable.

heckflosse commented 7 years ago

When I open a photo with a previously created sidecar file, I would like RawTherapee to list the tools whose behavior has changed since the original sidecar file was created

What do you want RawTherapee to do if you don't open it but only add and process it in queue?

Hombre57 commented 7 years ago

@heckflosse We could set a warning sign over the thumbnail to explain that its pp3 has compatibility issues.

The fatsest way of doing per parameter versioning is using dedicated KeyFile method to get and set parameters, with a version parameter, something like :

SetInteger (myParam, "param-name", paramVersion);
myParam = GetInteger ("param-name", paramVersion);

The parameters could then be stored in the pp4 file like this :

myParameter#5 = 12

or

myParameter#V5 = 12

where 5 is the version number.

This would let you know, locally in procparams.cc, if a parameter is up-to-date, but if you want to show the status of each parameter in the GUI, then it has to be made persistent in the procparams structure, or a new dedicated one, with the performance pernalty it can bring.

Beep6581 commented 7 years ago

Would this not be a good opportunity change to XMP? At first for basic things like the above, and for being able to store multiple snapshots in a single file #2624

Beep6581 commented 7 years ago

Considering we (or I) often say "RawTherapee is for raw development" implying it's not the best tool for digital asset management, metadata interoperability (color labels and ranks, IPTC, other tags or keywords) is quite important.