Age | Commit message (Collapse) | Author |
|
|
|
|
|
Renamed makeUnbufferedConnection and used it for VuMeter controls
|
|
https://www.transifex.com/mixxx-dj-software/mixxxdj/mixxx2-4/. Compile QM files out of TS files that are used by the localized app
|
|
already existing)
|
|
|
|
https://www.transifex.com/mixxx-dj-software/mixxxdj/mixxx2-3/. Compile QM files out of TS files that are used by the localized app
|
|
Sync track metadata: Pass parameters explicitly
|
|
Provide a context for QT_TRANSLATE_NOOP
|
|
already existing)
|
|
|
|
|
|
This reverts commit 234ec07aac6c436d9e8d2d87525bcd3e5fef82e6.
|
|
|
|
Found 2764 source text(s) (86 new and 2678 already existing)
Removed 40 obsolete entries
|
|
|
|
Update Changelog towards the 2.3.2 release
|
|
https://www.transifex.com/mixxx-dj-software/mixxxdj/mixxx2-3/. Compile QM files out of TS files that are used by the localized app
|
|
already existing)
|
|
|
|
|
|
Fix Qt 5.15 build errors
|
|
|
|
Library track selection tweaks
|
|
|
|
TrackDAO::saveTrack(): Return success/failure result
|
|
Beats deserialization: Fix misleading warning logs if no data available
|
|
Warning [Main] Failed to deserialize Beats (""): Invalid beats version
|
|
|
|
|
|
Do not rely on side-effects when exporting track metadata. Passing all
arguments explicitly improves testability.
|
|
Soundsource filetype detection fix
|
|
|
|
This reverts commit 66900632bf2d89073ba3fb74e3c278aa6e51df33 because the
underlying issue (i.e. SoundSource::getTypeFromFile() not detecting the
correct file type if the file has a known but misleading file extension)
has been fixed in commit c376317a43463d11bdce6c7c1f646e78fa7bcaf4.
Hence, the check can be re-enabled.
|
|
If a file is named `foo.wav` but actually contains MP3 data,
`SoundSource::getTypeFromFile` should return "mp3", not "wav".
This behavior is expected and already tested in
`SoundSourceProxyTest.getTypeFromFile`, but due to a bug in our test
file creation code, the test operated on a wrong file name and passed
although the behavior was broken and the function would just return
"wav" in the example above.
The reason for this is that QMimeDatabase only looks at the file name when
the file suffix is misleading, and thus cannot detect that the file is
actually an MP3 file:
> The default matching algorithm looks at both the file name and the
> file contents, if necessary. The file extension has priority over the
> contents, but the contents will be used if the file extension is
> unknown, or matches multiple MIME types.
>
> Source: https://doc.qt.io/qt-5/qmimedatabase.html#mimeTypeForFile
This commit fixes `SoundSource::getTypeFromFile` to work as expected by using
the file *content* instead of the file name for determining the file
type.
|
|
|
|
Tests: Fix tempfile handling and disable broken MIME type detection check
|
|
Linearize control flow in TrackRecord::checkSourceSyncStatus()
|
|
|
|
|
|
|
|
The QTemporaryFile/QTemporaryDir classes are very convenient and fit our
use cases well, because they can create a temporary file/dir that
automatically gets deleted when the object goes out of scope.
Instead of using these classes directly, we were using wrappers (namely
`generateTemporaryFileName` and `createEmptyTemporaryFile`) that created
a temp file and then just returned its name. This renders the
QTemporaryFile auto-removal mechanism useless because the object goes
out of scope before writing it.
To mitigate this, we used a custom `FileRemover` class to work around the
broken tempfile auto-removal. This is error-prone and we actually forgot
to add it in some tests:
https://mixxx.zulipchat.com/#narrow/stream/247620-development-help/topic/git.20ignore.20generated.20test.20files.3F
Another major issue with the old API was that we often passed a
*filename* to `generateTemporaryFileName` instead of a filename
*template*. The distinction is important, because the latter may append
random characters to the passed string:
> If the file template contains XXXXXX that will automatically be
> replaced with the unique part of the filename, otherwise a filename
> will be determined automatically based on the static portion specified.
>
> Source: https://doc.qt.io/qt-5/qtemporaryfile.html#setFileTemplate
Hence, the generated temporary file names weren't suitable for tests
where the filename was important, such as
SoundSourceProxyTest.getTypeFromFile where were didn't actually check
wappens in cases where the file suffix is missing, misleading or empty,
but unknowingly always checked the case that the suffix is unknown (i.e.
instead of testing `file_with_no_file_suffix` we checked
`file_with_no_file_suffix.HPqSHg`).
This commit removes the APIs that break our tests and replaces them with
QTemporaryDir/QTemporaryFile instead, so that the tests work as expected
and don't leave temporary files behind.
|
|
Controlobjectscripttest cleanup
|
|
Linux build.
The fix is copied from controllerscriptenginelegacy_test.cpp where a similar issue occurred. But the comment is adapted, to what was seen with controlobjectscripttest.cpp.
|
|
is specified as .Times(0)
This generated a warning, which was only visible in verbose mode
|
|
|
|
|
|
QML: Don't use parented_ptr for model in QmlLibraryProxy
|
|
Happy New Year 2022!
|
|
Follow-up: SoundSourceProxy cleanup
|