Commit Graph

294 Commits

Author SHA1 Message Date
BzKevin
ee59540648 Refactored
I was having issue wit this script periodically. The original version of this was real a hack-job of Holger Klemms original. This new version utilizes tables in a manner that I hope will make the code easier to follow and understand, but also allows for certain functions to be re-used throughout (and potentially in different scripts as well). In general:

Each program (align image stack, enfuse, exiftool) how has a table that contains information about that program, this includes a sub-table that contains argument data for the program.
There is a GUI table which contains all gui elements. Those elements are split into sub-tables within GUI based on what aspect of the scrpt behavior they relate to (AIS, ENF, Target File, Presets, etc...)
These two structures (and the similarities between them) have allows me to create loops which populate the arguments from the GUI and vice-versa, this is all done through an intermediary preference, the "active" preference. 
Whenever a change to a GUI element occurs the associated member of hte active preference is updated. then when it becomes time to build an argument string for a program command the active preference is read from and the value contained within is used. This works fine for all GUI elements that have a "changed" or "clicked" callback, as they can remain up-to-date real time. Sliders and Entry boxes do not have this, so at a certain point withing the script the GUI values are read directly for these elements and written to the associated active preference field.

As you will see about 50% of this code is simply building all the GUI elements and making sure that the initialization value for that element is valid (via the InRange() function). The actual heart of the program and it's functions really only takes up about 300 lines (starting at 180 and going through 476). That is broken down into multiple fairly concise functions. Hopefully this makes maintenance, feature enhancement, and troubleshooting much easier in the future.

I also made a few UI tweaks. This script use to create such a massive list of GUI elements that it was a nuisance when actually using it. They are now grouped into three containers for AIS options, Enfuse options, and target options. Only one of these options containers is displayed at a time. Additionally, I removed all the registered preferences I had before, so now I only register 3 options to enable user to point towards the program binaries.
2019-03-04 13:13:49 -05:00
wpferguson
0376e11544 Merge pull request #130 from BzKevin/master
Add enfuseAdvanced
2019-01-12 22:05:12 -05:00
Bill Ferguson
8e006cf853 Changed windows path quoting to double quotes instead of single. Changed dt.control.execute to dtsys.external_command to handle the windows quoted arguments. 2018-11-19 15:56:24 -05:00
August Schwerdfeger
31f1614679 'LabelsToTags' is standalone. 2018-11-02 20:47:09 -05:00
BzKevin
adb85e349a Update enfuseAdvanced.lua
Fixing accidental "invalid escape" at line 133
2018-09-18 11:54:24 -04:00
BzKevin
52a241c1ec Delete enfuse_pro_2
enfuse_pro_2 is now enfuseAdvanced
2018-09-18 10:55:23 -04:00
BzKevin
d092016729 Add enfuseAdvanced
enfuseAdvanced replaces what was previously known as enfuse_pro_2. This incorporates changes requested by wpferguson on previous versions.
2018-09-18 10:54:16 -04:00
Bill Ferguson
e95ed5ad2b Found a way to access only the images tagged with the old tag instead of searching through all the images in the database. This results in a huge decrease in execution speed, depending on the size of the database. 2018-09-12 16:41:42 -04:00
Bill Ferguson
380a1b66e6 Added path separator constant and used it where necessary. Added comment to attribute copy 2018-08-22 19:33:11 -04:00
Bill Ferguson
9e4a72e098 Creeated image_stack.lua based on Pat David's blog entry, https://patdavid.net/2013/05/noise-removal-in-photos-with-median_6.html. Updated README.md to reflect the new script. 2018-08-08 22:41:25 -04:00
wpferguson
9979d4abda Merge pull request #132 from wpferguson/windows_work_arounds
Cross platform external command capability
2018-08-07 11:02:04 -04:00
Bill Ferguson
5a2af47eda Removed unneeded require for yield, since it now in lib/dtutils.system 2018-08-07 11:00:16 -04:00
sjjh
4acba4d48a corrected "dt" to "darktable" in line 63 of cr2hdr
object "darktable" is defined in line 35; usage of "dt" was probably a typo or left over from a refactoring.
2018-08-04 01:43:38 +02:00
Bill Ferguson
26fce03d0f Removed leftover unused code 2018-07-11 11:49:01 -04:00
Bill Ferguson
1a22bfbcef Added system library to handle running external commands on different operating systems in a transparent manner. Added file and path quoting that is cross platform compatible. Changed gimp.lua to use the new utilities. 2018-07-11 11:32:48 -04:00
BzKevin
050783fc8b enfuse_pro_2 modified per wpferguson
1) Moved check_if_bin installed to run only once, when script first loaded (rather than every time it is called)
2) Changed executable path preferences per Bill's suggestions 
   dt.preferences.register("executable_paths", "align_image_stack",
   dt.preferences.register("executable_paths", "enfuse",
   dt.preferences.register("executable_paths", "exiftool",
3) Replaced custom block of code with df.create_unique_filename
4) Quoted paths in run commands for linux and MacOS (I still experience failures if I quote anything in the run command aside from the .exe path on windows)
5) Changed LUA API compatability check for 5.0.0 only

Tested on Windows and MacOS
2018-07-07 11:40:01 -04:00
Bill Ferguson
4b32c34ebd Removed 'open -W -a' for mac commands from check_if_bin_exists since it only appears to be needed for GUIs. Added 'open -W -a' for macs using GIMP in gimp.lua 2018-07-06 23:04:44 -04:00
BzKevin
927bf12243 Add enfuse_pro_2
Enhanced version of Holger Klemm's enfuse_pro that adds features and X-platform compatibility.
2018-07-01 19:54:15 -04:00
BzKevin
a867791165 Delete enfuse_pro_2.lua 2018-07-01 19:52:47 -04:00
BzKevin
67232094c9 Delete OpenInPS.lua 2018-07-01 19:51:39 -04:00
BzKevin
b5e79abf08 Delete HDRMerge.lua 2018-07-01 19:51:26 -04:00
BzKevin
84c0fd7414 Add 3 new Pulg-Ins
HDRMerge: Add easy access to HDRMerge from within dt
enfuse_pro_2: Updated version of Holger Klemm's popular enfuse plug-in. Adds some features and cross-platform compatability
OpenInPS: add ability to open or export selected file with Photoshop
2018-06-30 14:58:50 -04:00
Jannis_V
ded24e8037 gpx_export.lua: Create a separate <trk> for each source folder 2018-06-24 18:47:33 +02:00
Bill Ferguson
965d8791d8 single quoted filename arguments to the hugin commands for the supplied image files. Single quoted any filenames derived from the supplied image files in case they contained spaces. Added logging at various levels so that the next time I have to work on this I can figure it out quicker. Normal logging level is log.error which only prints error information. Changing log level to log.info provides much more insight about what is occurring. Fixed gui not returning generated file to film strip. 2018-05-15 01:05:34 -04:00
marco44
78f0e367dc Change logging 2018-05-09 17:54:26 +02:00
marco44
aca0224263 Fix autostyle, checkIfBinExists doesn't seem to exist in latest releases anymore 2018-05-05 16:37:27 +02:00
supertobi
1767e8f074 Merge pull request #111 from achienbsi/hugin_plugin_improvements
hugin plugin improvements
2018-03-19 22:32:19 +01:00
Andy Chien
44081b772f fixed version requirement due to updates to darktable.configuration.running_os 2018-03-19 06:51:30 -07:00
Andy Chien
46ba555a20 * updated to work with new dtutils_file
* added checkbox to allow user to launch hugin in gui mode
* changed the logic so hugin will write temp files to tmp directory and then move the final result to the directory of original source files. this improves speed when original source files are on network mapped drive
* added some additional error messages
2018-03-05 09:48:30 -08:00
Bill Ferguson
2ea4db8e38 Added windows and macOS external executable compatibility. Added functions set_executable_path_preference(), get_executable_path_preference(), and executable_path_widget() to lib/dtutils/file.lua to get, set and retrieve the location of executables on windows and macOS systems. Modified check_if_bin_exists to use the path preferences so executables can be found on windows and macOS systems as well as linux. Modified contrib/gimp.lua to use the new functions, thus making it usable on windows and macOS too. 2018-03-02 14:07:29 -05:00
Andy Chien
fe942100a4 hugin plugin improvements
* added preference requiring user to specify the paths for hugin, hugin_executor and pto_gen needed for this plguin
* added preference to allow user to choose to launch hugin in GUI mode
* minor fix to the way files are handled; due to some versions of hugin_executor not writing out to the path specified in --prefix, assume we are working in the tmp directory and then move the file afterwards
2018-02-26 07:29:41 -08:00
Andy Chien
4ad9e77a7e improved a few aspects of the hugin script:
* handle stiching all from hugin_executor without the gui
* automatically create the panorama file name based on first selected file plus _pano
* automatically detects if output file exists, if so use an unique name
* delete temporarily exported file
2018-02-22 16:07:28 -08:00
Tobias Ellinghaus
54572de8d9 Fix LabelsToTags for Lua 5.3
Fixes #106
2018-01-23 11:28:45 +01:00
Elman
f86b16735b Formatted code to follow project settings 2018-01-15 22:54:22 +01:00
Elman
0c1de20a1a Code formatting 2018-01-15 17:56:02 +01:00
Elman
e9d0f706ed Correct handling of duplicates 2018-01-15 17:41:26 +01:00
Elman
d297718358 Path is now sorted by exif_datetime_taken 2018-01-15 17:40:50 +01:00
Elman
b406b36cda Added all Slovak and Czech accents 2018-01-15 17:31:19 +01:00
August Schwerdfeger
92b5507e0e Added 'Labels to Tags' script. 2018-01-07 00:37:41 -06:00
supertobi
73897b8ee7 Merge pull request #103 from jbvoelker/gpx-export
GPX export script
2018-01-03 22:27:46 +01:00
Jannis Völker
2d9cdc5a24 GPX export script which generates a GPX track from all selected images containing geo information 2018-01-03 20:51:35 +01:00
supertobi
befa83bee8 added {5,0,0} to the check_version 2018-01-02 11:10:56 +01:00
supertobi
b4347e5701 added {5,0,0} to the check_version 2018-01-02 11:10:31 +01:00
supertobi
c4ed6c2b97 added {5,0,0} to the check_version 2018-01-02 11:09:42 +01:00
supertobi
6b5f650aac added {5,0,0} to the check_version 2018-01-02 11:08:49 +01:00
supertobi
63b38c1f53 added {5,0,0} to the check_version 2018-01-02 11:08:07 +01:00
supertobi
33b6f0d72e added {5,0,0} to the check_version 2018-01-02 11:07:20 +01:00
supertobi
97dd8a1257 Merge pull request #80 from GHswitt/master
Add new GUI entry in lighttable for renaming tags
2017-11-15 16:11:33 +01:00
supertobi
83fc339c4b Merge pull request #99 from Sitwon/master
Support for importing the in-camera ratings from Fujifilm cameras
2017-10-14 21:20:16 +02:00
Ben Mendis
693c535428 Improving with feedback from @supertobi 2017-10-14 11:24:14 -04:00