Hi, Wolfgang
I found the cause of this Issue.
Note: Backslash in the text refers to the Windows directory separator.
Backslash in the text refers to the Windows directory separator, which is the character that appears in the YEN symbol in Japanese settings.
The function Scheduler::getCompletedFiles() is used to count the number of filenames from the destination directory that match the specified format with a regular expression.
Scheduler::getCompletedFiles() is called from Scheduler::updateCompletedJobCount() and is passed the argument "path" which is a concatenation of directory and filename with regular expression.
On Linux, the directory separator for the "path" argument is given as Slash, and variable parts of the filename, such as the time of day, are written using regular expressions including Backslash.
Example:
/home/stellarmate/Pictures/IC_448/Light/Luminance/IC_448_Light_Luminance_1_secs_\\d\\d\\d\\d-\\d\\d-\\d\\dT\\d\\d-\\d\\d-\\d\\d
On Windows, the directory separator for the "path" argument is given as Backslash, and variable parts of the filename, such as the time of day, are written using regular expressions that also include Backslash.
Example:
X:\\StellarMate\\IC_448\\Light\\Luminance\\IC_448_Light_Luminance_1_secs_\\d\\d\\d\\d-\\d\\d-\\d\\dT\\d\\d-\\d\\d-\\d\\d
Since a directory and a file name including a regular expression are given to Scheduler::getCompletedFiles() with a single argument "path", the QFileInfo class is used to separate the directory and the file name including the regular expression.
The result of the separation is assigned to the local variables sig_dir and sig_file.
On Linux, the directory separator and the regular expression can be used to distinguish between Slash and Backslash, so the file names are correctly separated into directories and filenames containing regular expressions.
On Windows, Backslash is replaced entirely by Slash and cannot be correctly separated into filenames containing directories and regular expressions.
Watch in the debugger showed that the aforementioned example was split as follows.
Linux:
sig_dir: /home/stellarmate/Pictures/IC_448/Light/Luminance
sig_file: IC_448_Light_Luminance_1_secs_\\d\\d\\d\\d-\\d\\d-\\d\\dT\\d\\d-\\d\\d-\\d\\d
Windows:
sig_dir: X:/StellarMate/IC_448/Light/Luminance/IC_448_Light_Luminance_1_secs_/d/d/d/d-/d/d-/d/dT/d/d-/d/d-/d
sig_file: d
As a result, Scheduler::getCompletedFiles() cannot correctly count the number of Completed Files on Windows.
I think a better fix would be to use a higher-level function to store directories and file names containing regular expressions separately, and then give the directories and file names containing regular expressions separately to Scheduler::getCompletedFiles().
---
I found another potential problem.
This is a problem when the Capture Module adds \ to the end of the directory as follows
Direcotry: X:\StellarMate\
The following string is generated as the signature.
X:\\StellarMate\\\\M16\\Light\\Luminance\\M16_Light_Luminance_1_secs_\\d\\d\\d\\d-\\d\\d-\\d\\dT\\d\\d-\\d\\d-\\d\\d
On Windows, Windows does not normalize duplicate directory separators into a single directory separator.
On Linux, the following relationship is valid
/dir_a//dir_b == /dir_a/dir_b
On Windows, the relationship is as follows and does not hold
\dir_a\\dir_b != \dir_a\dir_b
This may cause problems accessing the correct directories.