Closes #7 mpv only turns on a subtitle that is flagged default or matches `slang`, so releases like VisionQuest (Russian dub by default, ru/ru/en subtitles, none flagged) open with subtitles off, which also disabled **Translate subtitle**. - New `TrackSelection` helpers in `qtpotato_core` with unit tests. - On file load: audio follows *Preferred languages* (Playback settings); subtitle follows *Preferred languages* (Subtitles settings), else keeps mpv's choice, else (new *Turn on a subtitle when none matches*, on by default) picks a full text subtitle in the system language, then English, then the audio language, then the default/first track. - Translate is enabled whenever the file has a text subtitle; with none or a bitmap subtitle shown it translates the best text track (English first). Verified in the real app on VisionQuest S01E01: subtitle 3 (en) is selected on open; with audio set to `en` and auto-select off, audio switches to track 7, subtitle stays off and Translate stays enabled with the English source. Reviewed-on: #12 Co-authored-by: Tri Vo Khac <git@trivk.dev>
27 lines
769 B
CMake
27 lines
769 B
CMake
ecm_add_test(subtitleparsertest.cpp
|
|
TEST_NAME subtitleparsertest
|
|
LINK_LIBRARIES qtpotato_core Qt6::Test
|
|
)
|
|
|
|
ecm_add_test(mpvuserconfigtest.cpp
|
|
TEST_NAME mpvuserconfigtest
|
|
LINK_LIBRARIES qtpotato_core Qt6::Test
|
|
)
|
|
|
|
ecm_add_test(glossarystoretest.cpp ../src/translate/glossarystore.cpp
|
|
TEST_NAME glossarystoretest
|
|
LINK_LIBRARIES Qt6::Core Qt6::Test
|
|
)
|
|
target_include_directories(glossarystoretest PRIVATE ../src/translate)
|
|
|
|
ecm_add_test(playlistmodeltest.cpp ../src/playlist/playlistmodel.cpp
|
|
TEST_NAME playlistmodeltest
|
|
LINK_LIBRARIES Qt6::Qml Qt6::Test
|
|
)
|
|
target_include_directories(playlistmodeltest PRIVATE ../src/playlist)
|
|
|
|
ecm_add_test(trackselectiontest.cpp
|
|
TEST_NAME trackselectiontest
|
|
LINK_LIBRARIES qtpotato_core Qt6::Test
|
|
)
|