New flexible method to name filenames using `PlaceholderPath::generateFilename`
New flexible method to name filenames using
- Placeholder '%f', which converts into the name of the .esq file, without extension.
- Placeholders '%d', '%d1'..'%d9', which convert into one of the path levels leading to the .esq file. Placeholders '%d' and '%d1' convert into the folder name holding the .esq file, and placeholders '%dX' convert into folder names 'X-1' levels higher than the .esq file.
- Placeholders '%p', %p1...%p9, which convert into the folder path leading to the .esq file. Placeholders '%p' and '%p1' convert into the full folder path, and '%pX' placeholders remove 'X-1' folder levels from the end of the full path.
- Placeholder '%D', which converts into the current date in ISO8601 format using
the original implementation:
QDateTime::currentDateTime. Separators must be converted to hyphens. WARNING: the original specification wanted to use the current KStars simulation time, which I don't know how to use
- Placeholders '%T', '%e', '%F', which respectively convert into the frame type ('Light', 'Bias', 'Dark', 'Flat'...), the exposure time in seconds (in minimal decimal format) and the filter name currently in use (from Filter Manager).
- Placeholder '%t', which converts into the current target prefix received by Capture.
- Placeholders '%s1'...'%s9', which convert into the current sequence identifier.
- Placeholder '%pX' converts into an integer number padded with zeroes on left
for a total of X characters. The sequence identifier is given by
Capture::checkSeqBoundary, and is out of scope here.
This method is tested using the same test data as
TestPlaceholderPath::testFullNamingSequence with only the following modifications:
FITSDirectorycolumn is changed into
seqFilenamethe filesystem location of an .esq file
- a new column
formatwhich specifies the format string containing placeholders.
- the test data is separated into two csv files:
testFlexibleNaming_data.csvcontains all test case which should pass
testFlexibleNamingChangeBehavior_data.csvcontains all test case which are expected to fail because of a change from the original generation behavior. This change is due to 3 inconsistent old generation behavior:
- duplicated slash in path
- leading underscore in filename
- duplicated underscores in filename