forked from mia/Aegisub
Add a command to cycle between subtitle providers
This commit is contained in:
parent
879ef35bd4
commit
c5e30709a6
2 changed files with 22 additions and 0 deletions
|
@ -143,6 +143,7 @@
|
||||||
$(AegisubSourceBase)libaegisub\include;
|
$(AegisubSourceBase)libaegisub\include;
|
||||||
$(AegisubSourceBase)build;
|
$(AegisubSourceBase)build;
|
||||||
$(AegisubSourceBase)include;
|
$(AegisubSourceBase)include;
|
||||||
|
$(AegisubSourceBase)src;
|
||||||
%(AdditionalIncludeDirectories)
|
%(AdditionalIncludeDirectories)
|
||||||
</AdditionalIncludeDirectories>
|
</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
|
@ -48,6 +48,7 @@
|
||||||
#include "../dialog_video_details.h"
|
#include "../dialog_video_details.h"
|
||||||
#include "../frame_main.h"
|
#include "../frame_main.h"
|
||||||
#include "../include/aegisub/context.h"
|
#include "../include/aegisub/context.h"
|
||||||
|
#include "../include/aegisub/subtitles_provider.h"
|
||||||
#include "../main.h"
|
#include "../main.h"
|
||||||
#include "../options.h"
|
#include "../options.h"
|
||||||
#include "../selection_controller.h"
|
#include "../selection_controller.h"
|
||||||
|
@ -234,6 +235,25 @@ struct video_copy_coordinates : public validator_video_loaded {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct video_cycle_subtitles_provider : public cmd::Command {
|
||||||
|
CMD_NAME("video/subtitles_provider/cycle")
|
||||||
|
STR_MENU("Cycle active subtitles provider")
|
||||||
|
STR_DISP("Cycle active subtitles provider")
|
||||||
|
STR_HELP("Cycle active subtitles provider")
|
||||||
|
|
||||||
|
void operator()(agi::Context *c) {
|
||||||
|
auto providers = SubtitlesProviderFactory::GetClasses();
|
||||||
|
if (providers.empty()) return;
|
||||||
|
|
||||||
|
auto it = find(begin(providers), end(providers), OPT_GET("Subtitle/Provider")->GetString());
|
||||||
|
if (it != end(providers)) ++it;
|
||||||
|
if (it == end(providers)) it = begin(providers);
|
||||||
|
|
||||||
|
OPT_SET("Subtitle/Provider")->SetString(*it);
|
||||||
|
StatusTimeout(wxString::Format(_("Subtitles provider set to %s"), to_wx(*it)), 5000);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/// Detach video, displaying it in a separate Window.
|
/// Detach video, displaying it in a separate Window.
|
||||||
struct video_detach : public validator_video_loaded {
|
struct video_detach : public validator_video_loaded {
|
||||||
CMD_NAME("video/detach")
|
CMD_NAME("video/detach")
|
||||||
|
@ -760,6 +780,7 @@ namespace cmd {
|
||||||
reg(agi::util::make_unique<video_aspect_wide>());
|
reg(agi::util::make_unique<video_aspect_wide>());
|
||||||
reg(agi::util::make_unique<video_close>());
|
reg(agi::util::make_unique<video_close>());
|
||||||
reg(agi::util::make_unique<video_copy_coordinates>());
|
reg(agi::util::make_unique<video_copy_coordinates>());
|
||||||
|
reg(agi::util::make_unique<video_cycle_subtitles_provider>());
|
||||||
reg(agi::util::make_unique<video_detach>());
|
reg(agi::util::make_unique<video_detach>());
|
||||||
reg(agi::util::make_unique<video_details>());
|
reg(agi::util::make_unique<video_details>());
|
||||||
reg(agi::util::make_unique<video_focus_seek>());
|
reg(agi::util::make_unique<video_focus_seek>());
|
||||||
|
|
Loading…
Reference in a new issue