@platypus I fully agree but I am a realist and going on past form, or lack of it, nothing is going to happen to the ever increasing list of “adjustments” that should be made to PhotoLab, except that the list is going to get longer.
Any third party efforts can be only be driven by using the data available, i.e. the database, the DOP and the xmp sidecar files, and potentially the image files themselves.
The first and last in that list are the most “dangerous” to meddle with and none should be meddled with without adequate backups.
Meddling with DOPs will ultimately cause a change in the database if any “adjusted” DOPs are presented back to PhotoLab, and why would you meddle with the DOPs unless it was to present them back to DxPL!?
I rediscovered coding when I became disillusioned with DxO and their lack of engagement with the forum, i.e. engagement with users and their almost total intransigence when it came to taking on board user complaints, except when they finally did and made things worse instead of better because they didn’t ask the users what was actually required!??
Initially I learnt a bit about Python and that kept me “happy” for a while but if I coded anything potentially useful in Python it either requires a user of the software to install and use a Python environment of their own or for me to learn how to create a package that does that for the user and installs the necessary run-time environment.
So I looked for software that created executable code files and PureBasic does just that, with executable files running on a Windows PC, on the Mac, on Linux and on the Pi. It is a one time licence fee and can be installed on any number of machines owned by the license holder and any programs generated can be distributed royalty free.
It also has a generous trial scheme which is unlimited in time but limited to 800 lines of code. The trial does not create executable code files nor does it create DLLs but whereas Python has a huge number of potential Libraries that any developer can download and invoke, complicating the sharing of code a little, PureBasic is a single package and actually not required at all if the program is distributed as an executable code file.
I undertook some of my own attempts at coding to see if comments I have made in the past about how easy certain changes to the product actually are, was even vaguely true or was I being optimistic about what can be achieved in a short or rather realistic space of time.
The more coding that I do, with the obvious understanding that I am not burdened by an ever increasing code base, the more I am convinced that some of the trivial fixes are just that when it comes to the actual implementation.
Again I am coding in a high level language, or, at times, getting something else to generate the code for me, either the whole program in the case of the backup “utility” or a some elements of the code for other programs or to help me understand what is possible with the least amount of effort.
Some PureBasic code available from the PureBasic forums is highly informative but written by experienced PureBasic users and complex (for an amateur) to put it politely. “My” PureBasic File Activity WatchDog is based on one example of such code.
So I am investigating ways of filling one or two of the gaps that can be filled, after a fashion, by external elements.
The backup utility that I created, or rather got something else to create, is a necessary part of any such process. Always have a path back if what you are about to do is in any way a destructive process.
To be honest I don’t think that DxO users are likely to adopt anything that I, or my “cohort”, writes but as long as it doesn’t annoy my wife or distract me from real life too much then I will continue to do it for my own entertainment.
With respect to the backup utility it lacks an important feature, namely the restoration, which itself needs to backup what it is about to overwrite!
The current version, created entirely by ChapGPT, except for the one line fix, does create a log of what has been backed up and to where but that was intended as a history not as the source file for a subsequent recovery.
Given that neither you, nor anyone else, may choose to use any version of this utility, you are welcome to a copy and could use it with the PureBasic Trial on the Mac, I am unable to create and test the Mac version because I do not possess a Mac.
However, what I would welcome is what the utility might look like with respect to features to make it a more rounded product, i.e. both a back-up and a restore utility and whether it should have an option to copy the current database as part of the backup process.
The copying of the database it somewhat complicated on Windows because it can be located anywhere on the machine, i.e. yet another invitation to the user to go find it using the PathRequester command.
Select EventGadget()
Case #Button_Source
sourceDir$ = SelectFolder(sourceDir$)
SetGadgetText(#String_Source, sourceDir$)
Case #Button_Dest
destDir$ = SelectFolder(destDir$)
SetGadgetText(#String_Dest, destDir$)
which executes the following procedure in the program
; === Folder Selection ===
Procedure.s SelectFolder(current$)
Protected result$ = PathRequester("Select folder", current$)
ProcedureReturn EnsureSlash(result$)
EndProcedure
PathRequester is then going to popup the following
and that is already used in the software
to ‘Select Source’ and ‘Select Dest’ .
So you can have too many requests to find a file?
Your opportunity to fashion this utility or perhaps the restoration should be a separate utility? Your opportunity to act as an unpaid consultant (and an opportunity for any reader of this post to offer their opinion).
Regards
Bryan
PS:- It turned out to be long post, sorry.