Commit Graph

14056 Commits

Author SHA1 Message Date
Moritz Bunkus
cfdf316c18
NEWS: update for fixing #3035 2021-03-02 17:34:55 +01:00
Moritz Bunkus
e356c86d2d
GUI: mux: use separate settings for "add source files" vs drag&drop
Using the "add source files" button has its own configurable default
action. In fact, there are two classes of adding files:

1. Using the "add source files" button including its popup-menu
   actions or the context menu on entries in the "files" view

2. Dragging & dropping files from external programs into the
   multiplexer, using the copy & paste functionality ("Multiplexer"
   menu → "Add files from clipboard") or adding files via command-line
   arguments.

The reason separating the two is that the "add source files" button &
the associated context menu entries have always hat the semantics of
adding files to the current multiplex tab whereas dragging & dropping
was often done with files for which new multiplex settings should be
created. In short, both functionality was used for distinct use cases.

Fixes #3035.
2021-03-02 17:24:47 +01:00
Moritz Bunkus
f9e120fa61
remove debug code 2021-03-02 17:24:04 +01:00
Moritz Bunkus
8c4decfc37
update NEWS for #3037. 2021-03-01 23:12:04 +01:00
Moritz Bunkus
0e7473d5ad
add workarounds for UNC path bugs in std::filesystem::exists() on mingw
The mingw implementation of `std::filesystem::exists()` doesn't work
for UNC paths, even if the referenced file or directory exists. However,
both `std::filesystem::is_directory()` and
`std::filesystem::is_regular_file()` do work; so let's use those
instead of `…exists()`.

The result was that mkvmerge & MKVToolNix GUI couldn't find base
directories for Blu-rays & DVDs when UNC paths were used.

Corresponding gcc bug:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99311

Part of the fix of #3037.
2021-03-01 23:07:16 +01:00
Moritz Bunkus
0c50b9f1c9
add workarounds for UNC path bugs in std::filesystem::absolute() on mingw
The mingw implementation of `std::filesystem::absolute()` and
`std::filesystem::path().is_absolute()` think that UNC paths such as
`\\server\share\file.txt` are not absolute, unlike the corresponding
functions in `boost::filesystem`.

The result was that mkvmerge & MKVToolNix GUI couldn't find base
directories for Blu-rays & DVDs when UNC paths were used.

Corresponding gcc bug:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99333

Part of the fix of #3037.
2021-03-01 22:58:30 +01:00
Moritz Bunkus
7bbdd1bb49
cosmetics: alignment 2021-03-01 20:16:25 +01:00
Moritz Bunkus
42991b0aba
GUI: fix endless loop in sanitizeDirectory function
`std::filesystem::path` has implemented the `parent_path()` function
differently than `boost::filesystem::path`. In Boost, the
`parent_path()` of a drive-only path (e.g. `E:\`) was an empty
path. For `std::filesystem::path` it's the same path again. Therefore
loops iterating up the directory tree must use something like "current
directory == parent of current directory" as the condition for
stopping iteration.

Fixes #3046.
2021-03-01 19:51:52 +01:00
Moritz Bunkus
0964d0e6fb
cosmetics: alignment 2021-03-01 19:13:58 +01:00
Moritz Bunkus
a79740884e
Windows: use own implementation instead of std::filesystem::create_directories
There are two bugs in at least gcc 10.20.0 for Windows:

• `std::filesystem::exists()` returns `false` for UNC paths pointing
  to a share, e.g. `\\server\share`.

• `std::filesystem::create_directories()` fails for creating
  directories on UNC paths, e.g. `\\server\share\directory`.

The second is likely due to the former, e.g. if it is implemented as
"for each component of the path, try to create the directory if it
doesn't exist".

See the following gcc bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99311

Fixes #3041.
2021-02-28 19:35:45 +01:00
Moritz Bunkus
e5fe861d55
bump version number, set release code name 2021-02-26 19:17:05 +01:00
Moritz Bunkus
cd73b303ea
NEWS: re-order & re-word entries 2021-02-26 19:11:41 +01:00
Симеон Цветков
3b8607d533
translations: update Bulgarian 2021-02-26 16:50:55 +01:00
Moritz Bunkus
27bae85dd4
README: only mention libEBML & libMatroska version numbers in requirements 2021-02-25 15:08:00 +01:00
Israel Lucas Torrijos
0a47c55aa9
translations: update Spanish 2021-02-25 15:02:25 +01:00
Симеон Цветков
29da16182a
translations: update Bulgarian 2021-02-25 15:01:58 +01:00
Симеон Цветков
6fe619f7e7
man page translations: update Bulgarian 2021-02-25 15:01:51 +01:00
Moritz Bunkus
b57f01b297
remove compatibility code wrt. presence of FindNextChild in libEBML
The version number requirement/check suffices.
2021-02-22 16:53:49 +01:00
Moritz Bunkus
d51a372f82
input: use functions/constexpr instead of #defines 2021-02-21 14:22:01 +01:00
Moritz Bunkus
d5099723f4
merge: use functions instead of #defines 2021-02-21 14:07:44 +01:00
Moritz Bunkus
23b12965a9
generic reader: use functions instead of #defines 2021-02-21 14:04:54 +01:00
Moritz Bunkus
ca494ce07a
generic packetizer: use constexpr instead of #defines 2021-02-21 14:04:54 +01:00
Moritz Bunkus
f0243659d2
ID result: use constexpr instead of #defines 2021-02-21 14:04:54 +01:00
Moritz Bunkus
2e142d2d8a
mkvmerge: remove #defines 2021-02-21 13:16:18 +01:00
Moritz Bunkus
65eeb67f0e
generic reader: partially convert #defines to constexpr/functions 2021-02-21 13:16:03 +01:00
Moritz Bunkus
f85be61202
output: use constexpr instead of #defines 2021-02-21 11:28:51 +01:00
Moritz Bunkus
5c6e7fc5d8
mpegparser: use constexpr instead of #defines 2021-02-21 11:28:33 +01:00
Moritz Bunkus
17ace450c5
GUI: remove #defines 2021-02-21 11:28:19 +01:00
Moritz Bunkus
d9ef457062
propedit: remove #defines 2021-02-21 11:28:07 +01:00
Moritz Bunkus
7479849ed5
MPEG ES & TS readers: use constexpr instead of #defines 2021-02-20 23:04:43 +01:00
Moritz Bunkus
c0e9f93d3e
Ogg/OGM reader: use constexpr instead of #defines 2021-02-20 23:04:43 +01:00
Moritz Bunkus
e8a5bd64a7
Matroska reader: use constexpr instead of #defines 2021-02-20 23:04:42 +01:00
Moritz Bunkus
2760852e5e
FLV reader: use constexpr instead of #defines 2021-02-20 23:04:42 +01:00
Moritz Bunkus
6e4abe7006
AVI reader: use constexpr instead of #defines 2021-02-20 23:04:42 +01:00
Moritz Bunkus
2dda7860a4
info CLI parser: don't use #defines 2021-02-20 23:04:42 +01:00
Moritz Bunkus
f8f8d4a234
extract: remove superfluous #defines 2021-02-20 23:04:42 +01:00
Moritz Bunkus
f522445021
extract CLI parser: don't use #defines 2021-02-20 23:04:42 +01:00
Moritz Bunkus
e1f650fe81
cuesheet extraction: use lambdas instead of #defines 2021-02-20 23:04:42 +01:00
Moritz Bunkus
012574e622
kax analyzer: don't use #defines for repeated code 2021-02-20 23:04:42 +01:00
Moritz Bunkus
00a7eba1bf
kax info: use lambdas instead of #defines 2021-02-20 23:04:42 +01:00
Moritz Bunkus
7f3b4ad014
removes superfluous #define 2021-02-20 23:04:42 +01:00
Moritz Bunkus
67fec6e53c
WebVTT: use constexpr instead of #define 2021-02-20 23:04:42 +01:00
Moritz Bunkus
ddcf2a11bd
Wavpack: use constexpr instead of #define 2021-02-20 23:04:41 +01:00
Moritz Bunkus
9dee69f0a6
VC1: use constexpr instead of #define 2021-02-20 23:04:41 +01:00
Moritz Bunkus
e763bdae3d
TTA: use constexpr instead of #define 2021-02-20 23:04:41 +01:00
Moritz Bunkus
3af5e0949f
version: use constexpr instead of #define 2021-02-20 23:04:41 +01:00
Moritz Bunkus
35160debbd
ogg/OGM: move defines to namespace mtx::ogm & use constexpr 2021-02-20 23:04:41 +01:00
Moritz Bunkus
547df25928
property elements: use lambdas instead of #defines 2021-02-20 23:04:41 +01:00
Moritz Bunkus
0429c4275a
terminal: use constexpr instead of #define 2021-02-20 23:04:41 +01:00
Moritz Bunkus
7268a982ad
Theora: move everything to namespace mtx::theora; use constexpr 2021-02-20 23:04:41 +01:00