mirror of https://github.com/odrling/Aegisub
Make SubsController ensure files are non-empty on commit
There have been a bunch of recurring problems with things not handling zero dialogue lines or zero styles very well, so add one to the file on commit if needed. Closes #1814.
This commit is contained in:
parent
9ec4059096
commit
d7fe7e3580
|
@ -178,12 +178,6 @@ ProjectProperties SubsController::Load(agi::fs::path const& filename, std::strin
|
|||
|
||||
SubtitleFormat::GetReader(filename, charset)->ReadFile(&temp, filename, context->project->Timecodes(), charset);
|
||||
|
||||
// Make sure the file has at least one style and one dialogue line
|
||||
if (temp.Styles.empty())
|
||||
temp.Styles.push_back(*new AssStyle);
|
||||
if (temp.Events.empty())
|
||||
temp.Events.push_back(*new AssDialogue);
|
||||
|
||||
context->ass->swap(temp);
|
||||
auto props = context->ass->Properties;
|
||||
|
||||
|
@ -328,6 +322,12 @@ void SubsController::OnCommit(AssFileCommit c) {
|
|||
undo_stack.pop_back();
|
||||
}
|
||||
|
||||
// Make sure the file has at least one style and one dialogue line
|
||||
if (context->ass->Styles.empty())
|
||||
context->ass->Styles.push_back(*new AssStyle);
|
||||
if (context->ass->Events.empty())
|
||||
context->ass->Events.push_back(*new AssDialogue);
|
||||
|
||||
redo_stack.clear();
|
||||
|
||||
undo_stack.emplace_back(context, c.message, commit_id);
|
||||
|
|
Loading…
Reference in New Issue