Skip to content
Extraits de code Groupes Projets
Valider 18a46610 rédigé par Thomas Goyne's avatar Thomas Goyne
Parcourir les fichiers

Commit pending audio changes on Enter in the edit box. Closes #1544.

parent a3201178
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -109,6 +109,7 @@ class AudioTimingControllerKaraoke : public AudioTimingController {
bool auto_commit; ///< Should changes be automatically commited?
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);
......@@ -254,10 +255,11 @@ void AudioTimingControllerKaraoke::DoCommit() {
file_changed_slot.Block();
commit_id = c->ass->Commit(_("karaoke timing"), AssFile::COMMIT_DIAG_TEXT, commit_id, active_line);
file_changed_slot.Unblock();
pending_changes = false;
}
void AudioTimingControllerKaraoke::Commit() {
if (!auto_commit)
if (!auto_commit && pending_changes)
DoCommit();
}
......@@ -266,6 +268,7 @@ void AudioTimingControllerKaraoke::Revert() {
cur_syl = 0;
commit_id = -1;
pending_changes = false;
start_marker.Move(active_line->Start);
end_marker.Move(active_line->End);
......@@ -405,8 +408,10 @@ void AudioTimingControllerKaraoke::AnnounceChanges(int syl) {
if (auto_commit)
DoCommit();
else
else {
pending_changes = true;
commit_id = -1;
}
}
void AudioTimingControllerKaraoke::OnMarkerDrag(std::vector<AudioMarker*> const& m, int new_position, int) {
......
......@@ -42,6 +42,8 @@
#include "../ass_dialogue.h"
#include "../ass_file.h"
#include "../audio_controller.h"
#include "../audio_timing.h"
#include "../include/aegisub/context.h"
#include "../main.h"
#include "../frame_main.h"
......@@ -73,6 +75,10 @@ struct grid_line_next_create : public Command {
STR_HELP("Move to the next subtitle line, creating a new one if needed")
void operator()(agi::Context *c) {
AudioTimingController *tc = c->audioController->GetTimingController();
if (tc)
tc->Commit();
AssDialogue *cur = c->selectionController->GetActiveLine();
c->selectionController->NextLine();
if (cur == c->selectionController->GetActiveLine()) {
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter