mirror of https://github.com/odrling/Aegisub
Commit pending audio changes on Enter in the edit box. Closes #1544.
This commit is contained in:
parent
6c2ccd8639
commit
b006bcc8c4
|
@ -113,6 +113,7 @@ class AudioTimingControllerKaraoke : public AudioTimingController {
|
||||||
|
|
||||||
bool auto_commit; ///< Should changes be automatically commited?
|
bool auto_commit; ///< Should changes be automatically commited?
|
||||||
int commit_id; ///< Last commit id used for an autocommit
|
int commit_id; ///< Last commit id used for an autocommit
|
||||||
|
bool pending_changes; ///< Are there any pending changes to be committed?
|
||||||
|
|
||||||
void OnAutoCommitChange(agi::OptionValue const& opt);
|
void OnAutoCommitChange(agi::OptionValue const& opt);
|
||||||
|
|
||||||
|
@ -258,10 +259,11 @@ void AudioTimingControllerKaraoke::DoCommit() {
|
||||||
file_changed_slot.Block();
|
file_changed_slot.Block();
|
||||||
commit_id = c->ass->Commit(_("karaoke timing"), AssFile::COMMIT_DIAG_TEXT, commit_id, active_line);
|
commit_id = c->ass->Commit(_("karaoke timing"), AssFile::COMMIT_DIAG_TEXT, commit_id, active_line);
|
||||||
file_changed_slot.Unblock();
|
file_changed_slot.Unblock();
|
||||||
|
pending_changes = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AudioTimingControllerKaraoke::Commit() {
|
void AudioTimingControllerKaraoke::Commit() {
|
||||||
if (!auto_commit)
|
if (!auto_commit && pending_changes)
|
||||||
DoCommit();
|
DoCommit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -270,6 +272,7 @@ void AudioTimingControllerKaraoke::Revert() {
|
||||||
|
|
||||||
cur_syl = 0;
|
cur_syl = 0;
|
||||||
commit_id = -1;
|
commit_id = -1;
|
||||||
|
pending_changes = false;
|
||||||
|
|
||||||
start_marker.Move(active_line->Start);
|
start_marker.Move(active_line->Start);
|
||||||
end_marker.Move(active_line->End);
|
end_marker.Move(active_line->End);
|
||||||
|
@ -409,9 +412,11 @@ void AudioTimingControllerKaraoke::AnnounceChanges(int syl) {
|
||||||
|
|
||||||
if (auto_commit)
|
if (auto_commit)
|
||||||
DoCommit();
|
DoCommit();
|
||||||
else
|
else {
|
||||||
|
pending_changes = true;
|
||||||
commit_id = -1;
|
commit_id = -1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void AudioTimingControllerKaraoke::OnMarkerDrag(std::vector<AudioMarker*> const& m, int new_position, int) {
|
void AudioTimingControllerKaraoke::OnMarkerDrag(std::vector<AudioMarker*> const& m, int new_position, int) {
|
||||||
assert(m.size() == 1);
|
assert(m.size() == 1);
|
||||||
|
|
|
@ -40,6 +40,8 @@
|
||||||
|
|
||||||
#include "../ass_dialogue.h"
|
#include "../ass_dialogue.h"
|
||||||
#include "../ass_file.h"
|
#include "../ass_file.h"
|
||||||
|
#include "../audio_controller.h"
|
||||||
|
#include "../audio_timing.h"
|
||||||
#include "../include/aegisub/context.h"
|
#include "../include/aegisub/context.h"
|
||||||
#include "../main.h"
|
#include "../main.h"
|
||||||
#include "../frame_main.h"
|
#include "../frame_main.h"
|
||||||
|
@ -71,6 +73,10 @@ struct grid_line_next_create : public Command {
|
||||||
STR_HELP("Move to the next subtitle line, creating a new one if needed")
|
STR_HELP("Move to the next subtitle line, creating a new one if needed")
|
||||||
|
|
||||||
void operator()(agi::Context *c) {
|
void operator()(agi::Context *c) {
|
||||||
|
AudioTimingController *tc = c->audioController->GetTimingController();
|
||||||
|
if (tc)
|
||||||
|
tc->Commit();
|
||||||
|
|
||||||
AssDialogue *cur = c->selectionController->GetActiveLine();
|
AssDialogue *cur = c->selectionController->GetActiveLine();
|
||||||
c->selectionController->NextLine();
|
c->selectionController->NextLine();
|
||||||
if (cur == c->selectionController->GetActiveLine()) {
|
if (cur == c->selectionController->GetActiveLine()) {
|
||||||
|
|
Loading…
Reference in New Issue