mirror of https://github.com/odrling/Aegisub
Eliminate a bunch of pointless copies of the selection set
This commit is contained in:
parent
31979500c4
commit
92ae789b46
|
@ -732,7 +732,7 @@ void AudioTimingControllerDialogue::RegenerateInactiveLines()
|
||||||
bool was_empty = inactive_lines.empty();
|
bool was_empty = inactive_lines.empty();
|
||||||
inactive_lines.clear();
|
inactive_lines.clear();
|
||||||
|
|
||||||
SubtitleSelection sel = context->selectionController->GetSelectedSet();
|
SubtitleSelection const& sel = context->selectionController->GetSelectedSet();
|
||||||
|
|
||||||
switch (int mode = inactive_line_mode->GetInt())
|
switch (int mode = inactive_line_mode->GetInt())
|
||||||
{
|
{
|
||||||
|
@ -794,7 +794,7 @@ void AudioTimingControllerDialogue::RegenerateSelectedLines()
|
||||||
selected_lines.clear();
|
selected_lines.clear();
|
||||||
|
|
||||||
AssDialogue *active = context->selectionController->GetActiveLine();
|
AssDialogue *active = context->selectionController->GetActiveLine();
|
||||||
SubtitleSelection sel = context->selectionController->GetSelectedSet();
|
SubtitleSelection const& sel = context->selectionController->GetSelectedSet();
|
||||||
for (auto line : sel)
|
for (auto line : sel)
|
||||||
{
|
{
|
||||||
if (line == active) continue;
|
if (line == active) continue;
|
||||||
|
|
|
@ -195,7 +195,7 @@ struct audio_save_clip : public Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
void operator()(agi::Context *c) override {
|
void operator()(agi::Context *c) override {
|
||||||
SubtitleSelection sel = c->selectionController->GetSelectedSet();
|
SubtitleSelection const& sel = c->selectionController->GetSelectedSet();
|
||||||
if (sel.empty()) return;
|
if (sel.empty()) return;
|
||||||
|
|
||||||
AssTime start = INT_MAX, end = 0;
|
AssTime start = INT_MAX, end = 0;
|
||||||
|
|
|
@ -488,7 +488,7 @@ struct edit_find_replace : public Command {
|
||||||
|
|
||||||
static std::string get_entry_data(AssDialogue &d) { return d.GetEntryData(); }
|
static std::string get_entry_data(AssDialogue &d) { return d.GetEntryData(); }
|
||||||
static void copy_lines(agi::Context *c) {
|
static void copy_lines(agi::Context *c) {
|
||||||
SubtitleSelection sel = c->selectionController->GetSelectedSet();
|
SubtitleSelection const& sel = c->selectionController->GetSelectedSet();
|
||||||
SetClipboard(join(c->ass->Events
|
SetClipboard(join(c->ass->Events
|
||||||
| filtered([&](AssDialogue &d) { return sel.count(&d); })
|
| filtered([&](AssDialogue &d) { return sel.count(&d); })
|
||||||
| transformed(get_entry_data),
|
| transformed(get_entry_data),
|
||||||
|
@ -496,7 +496,7 @@ static void copy_lines(agi::Context *c) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void delete_lines(agi::Context *c, wxString const& commit_message) {
|
static void delete_lines(agi::Context *c, wxString const& commit_message) {
|
||||||
SubtitleSelection sel = c->selectionController->GetSelectedSet();
|
SubtitleSelection const& sel = c->selectionController->GetSelectedSet();
|
||||||
|
|
||||||
// Find a line near the active line not being deleted to make the new active line
|
// Find a line near the active line not being deleted to make the new active line
|
||||||
AssDialogue *pre_sel = nullptr;
|
AssDialogue *pre_sel = nullptr;
|
||||||
|
@ -693,7 +693,7 @@ struct edit_line_duplicate_shift_back : public validate_video_and_sel_nonempty {
|
||||||
};
|
};
|
||||||
|
|
||||||
static void combine_lines(agi::Context *c, void (*combiner)(AssDialogue *, AssDialogue *), wxString const& message) {
|
static void combine_lines(agi::Context *c, void (*combiner)(AssDialogue *, AssDialogue *), wxString const& message) {
|
||||||
SubtitleSelection sel = c->selectionController->GetSelectedSet();
|
SubtitleSelection const& sel = c->selectionController->GetSelectedSet();
|
||||||
|
|
||||||
AssDialogue *first = nullptr;
|
AssDialogue *first = nullptr;
|
||||||
for (auto it = c->ass->Events.begin(); it != c->ass->Events.end(); ) {
|
for (auto it = c->ass->Events.begin(); it != c->ass->Events.end(); ) {
|
||||||
|
@ -709,9 +709,7 @@ static void combine_lines(agi::Context *c, void (*combiner)(AssDialogue *, AssDi
|
||||||
delete diag;
|
delete diag;
|
||||||
}
|
}
|
||||||
|
|
||||||
sel.clear();
|
c->selectionController->SetSelectionAndActive({first}, first);
|
||||||
sel.insert(first);
|
|
||||||
c->selectionController->SetSelectionAndActive(sel, first);
|
|
||||||
|
|
||||||
c->ass->Commit(message, AssFile::COMMIT_DIAG_ADDREM | AssFile::COMMIT_DIAG_FULL);
|
c->ass->Commit(message, AssFile::COMMIT_DIAG_ADDREM | AssFile::COMMIT_DIAG_FULL);
|
||||||
}
|
}
|
||||||
|
@ -922,7 +920,7 @@ struct edit_line_recombine : public validate_sel_multiple {
|
||||||
STR_HELP("Recombine subtitles which have been split and merged")
|
STR_HELP("Recombine subtitles which have been split and merged")
|
||||||
|
|
||||||
void operator()(agi::Context *c) override {
|
void operator()(agi::Context *c) override {
|
||||||
auto sel_set = c->selectionController->GetSelectedSet();
|
auto const& sel_set = c->selectionController->GetSelectedSet();
|
||||||
if (sel_set.size() < 2) return;
|
if (sel_set.size() < 2) return;
|
||||||
|
|
||||||
auto active_line = c->selectionController->GetActiveLine();
|
auto active_line = c->selectionController->GetActiveLine();
|
||||||
|
|
|
@ -389,7 +389,7 @@ struct grid_swap : public Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
void operator()(agi::Context *c) override {
|
void operator()(agi::Context *c) override {
|
||||||
SubtitleSelection sel = c->selectionController->GetSelectedSet();
|
SubtitleSelection const& sel = c->selectionController->GetSelectedSet();
|
||||||
if (sel.size() == 2) {
|
if (sel.size() == 2) {
|
||||||
(*sel.begin())->swap_nodes(**sel.rbegin());
|
(*sel.begin())->swap_nodes(**sel.rbegin());
|
||||||
c->ass->Commit(_("swap lines"), AssFile::COMMIT_ORDER);
|
c->ass->Commit(_("swap lines"), AssFile::COMMIT_ORDER);
|
||||||
|
|
|
@ -62,7 +62,7 @@ namespace {
|
||||||
struct validate_adjoinable : public Command {
|
struct validate_adjoinable : public Command {
|
||||||
CMD_TYPE(COMMAND_VALIDATE)
|
CMD_TYPE(COMMAND_VALIDATE)
|
||||||
bool Validate(const agi::Context *c) override {
|
bool Validate(const agi::Context *c) override {
|
||||||
SubtitleSelection sel = c->selectionController->GetSelectedSet();
|
SubtitleSelection const& sel = c->selectionController->GetSelectedSet();
|
||||||
if (sel.size() < 2) return !sel.empty();
|
if (sel.size() < 2) return !sel.empty();
|
||||||
|
|
||||||
size_t found = 0;
|
size_t found = 0;
|
||||||
|
@ -79,7 +79,7 @@ namespace {
|
||||||
};
|
};
|
||||||
|
|
||||||
static void adjoin_lines(agi::Context *c, bool set_start) {
|
static void adjoin_lines(agi::Context *c, bool set_start) {
|
||||||
auto sel = c->selectionController->GetSelectedSet();
|
auto const& sel = c->selectionController->GetSelectedSet();
|
||||||
AssDialogue *prev = nullptr;
|
AssDialogue *prev = nullptr;
|
||||||
size_t seen = 0;
|
size_t seen = 0;
|
||||||
bool prev_sel = false;
|
bool prev_sel = false;
|
||||||
|
|
|
@ -332,7 +332,7 @@ void DialogShiftTimes::Process(wxCommandEvent &) {
|
||||||
bool start = type != 2;
|
bool start = type != 2;
|
||||||
bool end = type != 1;
|
bool end = type != 1;
|
||||||
|
|
||||||
SubtitleSelection sel = context->selectionController->GetSelectedSet();
|
SubtitleSelection const& sel = context->selectionController->GetSelectedSet();
|
||||||
|
|
||||||
long shift;
|
long shift;
|
||||||
if (by_time) {
|
if (by_time) {
|
||||||
|
|
Loading…
Reference in New Issue