Older versions of MKVToolNix didn't write a jobType attribute into a job
file. So newer versions checking for validity of that field failed an
assertion and aborted. The original intention was to convert old
settings on the fly, and that assertion made it impossible.
This was changed in the following commit
39634e8 GUI: jobs: ignore job files with missing/unknown jobType field when loading the queue
Now those jobs were simply ignored.
A better way would have been to simply assume a value of "MuxJob" if the
attribute is missing or empty as MuxJobs are the only ones the GUI
supported back when no jobType attribute was written.
See also #1481.
When a "save file" dialog is opened with a file name like
/home/mosu/file.txt then the dialog usually has "file.txt" entered in
its name input field by default. This used to be the case in MKVToolNix
GUI, too, until the following commit:
2af6d4a GUI: ensure initial directory for file dialog exists
That change introduces a new function called sanitizeDirectory() which
tests the directories in the file name given to the dialog for existence
and removes all that don't exist. This was done in order to avoid an
error message from Windows if the directories had been removed in the
meantime.
Unfortunately it's hard to determine whether or not a path like
"/home/mosu/something.ext" refers to a directory or a file called
"something.ext". The fix in 2af6d4a treated the last component as a
directory component resulting in the file name given to the "save file"
dialog to miss its file name.
The fix is two call sanitizeDirectory() with path names that always end
with a separator if the path refers to a directory. In the example from
above, "/home/mosu/something.ext", "something.ext" is now treated as a
file name. If it were a directory name then the caller would have to
pass "/home/mosu/something.ext/" instead.
All callers have been adjusted to reflect this change in semantics.
Fixes#1480.
The GUI tells Qt to open a directory like
e.g. "file:////home/mosu/…". Two slashes are needed for the protocol,
one for the root folder, and the fourth one is superfluous.
Now file managers like Windows Explorer or krusader simply open a
directory name called "//home/mosu/…" – that works. But others like
Dolphin try to be smart, see that the file name starts with "//…" and
think the user wants to visit a share called "mosu" on a Samba/Windows
server called "home". Then they prepend the whole URL with "smb://".
On Windows the third slash is actually needed when letting Qt parse such
a URL. So instead of using #ifdefs create an empty URL and set the
scheme and the path components explicitly and don't let Qt parse a
stringified URL.
Fixes#1479.