forked from mia/Aegisub
Slather on some std::moves when setting the selection
This commit is contained in:
parent
2b76ee7696
commit
f29b2d1fdc
7 changed files with 16 additions and 20 deletions
|
@ -318,5 +318,5 @@ void AssKaraoke::SplitLines(std::set<AssDialogue*> const& lines, agi::Context *c
|
||||||
AssDialogue *new_active = c->selectionController->GetActiveLine();
|
AssDialogue *new_active = c->selectionController->GetActiveLine();
|
||||||
if (!sel.count(c->selectionController->GetActiveLine()))
|
if (!sel.count(c->selectionController->GetActiveLine()))
|
||||||
new_active = *sel.begin();
|
new_active = *sel.begin();
|
||||||
c->selectionController->SetSelectionAndActive(sel, new_active);
|
c->selectionController->SetSelectionAndActive(std::move(sel), new_active);
|
||||||
}
|
}
|
||||||
|
|
|
@ -949,7 +949,7 @@ namespace Automation4 {
|
||||||
AssDialogue *new_active = c->selectionController->GetActiveLine();
|
AssDialogue *new_active = c->selectionController->GetActiveLine();
|
||||||
if (active_line && (active_idx > 0 || !sel.count(new_active)))
|
if (active_line && (active_idx > 0 || !sel.count(new_active)))
|
||||||
new_active = active_line;
|
new_active = active_line;
|
||||||
c->selectionController->SetSelectionAndActive(sel, new_active);
|
c->selectionController->SetSelectionAndActive(std::move(sel), new_active);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
lua_pop(L, 1);
|
lua_pop(L, 1);
|
||||||
|
|
|
@ -298,7 +298,7 @@ void BaseGrid::UpdateMaps(bool preserve_selected_rows) {
|
||||||
sel.insert(index_line_map[row]);
|
sel.insert(index_line_map[row]);
|
||||||
}
|
}
|
||||||
|
|
||||||
SetSelectedSet(sel);
|
SetSelectedSet(std::move(sel));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
auto sorted = index_line_map;
|
auto sorted = index_line_map;
|
||||||
|
@ -309,7 +309,7 @@ void BaseGrid::UpdateMaps(bool preserve_selected_rows) {
|
||||||
sorted.begin(), sorted.end(),
|
sorted.begin(), sorted.end(),
|
||||||
inserter(new_sel, new_sel.begin()));
|
inserter(new_sel, new_sel.begin()));
|
||||||
|
|
||||||
SetSelectedSet(new_sel);
|
SetSelectedSet(std::move(new_sel));
|
||||||
}
|
}
|
||||||
|
|
||||||
// The active line may have ceased to exist; pick a new one if so
|
// The active line may have ceased to exist; pick a new one if so
|
||||||
|
@ -369,7 +369,7 @@ void BaseGrid::SelectRow(int row, bool addToSelected, bool select) {
|
||||||
if (!addToSelected) {
|
if (!addToSelected) {
|
||||||
Selection sel;
|
Selection sel;
|
||||||
if (select) sel.insert(line);
|
if (select) sel.insert(line);
|
||||||
SetSelectedSet(sel);
|
SetSelectedSet(std::move(sel));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -708,7 +708,7 @@ void BaseGrid::OnMouseEvent(wxMouseEvent &event) {
|
||||||
if (ctrl) newsel = selection;
|
if (ctrl) newsel = selection;
|
||||||
for (int i = i1; i <= i2; i++)
|
for (int i = i1; i <= i2; i++)
|
||||||
newsel.insert(GetDialogue(i));
|
newsel.insert(GetDialogue(i));
|
||||||
SetSelectedSet(newsel);
|
SetSelectedSet(std::move(newsel));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1006,7 +1006,7 @@ void BaseGrid::OnKeyDown(wxKeyEvent &event) {
|
||||||
for (int i = begin; i <= end; i++)
|
for (int i = begin; i <= end; i++)
|
||||||
newsel.insert(GetDialogue(i));
|
newsel.insert(GetDialogue(i));
|
||||||
|
|
||||||
SetSelectedSet(newsel);
|
SetSelectedSet(std::move(newsel));
|
||||||
|
|
||||||
MakeRowVisible(next);
|
MakeRowVisible(next);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -130,7 +130,7 @@ void paste_lines(agi::Context *c, bool paste_over, Paster&& paste_line) {
|
||||||
c->ass->Commit(_("paste"), paste_over ? AssFile::COMMIT_DIAG_FULL : AssFile::COMMIT_DIAG_ADDREM);
|
c->ass->Commit(_("paste"), paste_over ? AssFile::COMMIT_DIAG_FULL : AssFile::COMMIT_DIAG_ADDREM);
|
||||||
|
|
||||||
if (!paste_over)
|
if (!paste_over)
|
||||||
c->selectionController->SetSelectionAndActive(newsel, first);
|
c->selectionController->SetSelectionAndActive(std::move(newsel), first);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -647,7 +647,7 @@ static void duplicate_lines(agi::Context *c, int shift) {
|
||||||
|
|
||||||
c->ass->Commit(shift ? _("split") : _("duplicate lines"), AssFile::COMMIT_DIAG_ADDREM);
|
c->ass->Commit(shift ? _("split") : _("duplicate lines"), AssFile::COMMIT_DIAG_ADDREM);
|
||||||
|
|
||||||
c->selectionController->SetSelectionAndActive(new_sel, new_active);
|
c->selectionController->SetSelectionAndActive(std::move(new_sel), new_active);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct edit_line_duplicate : public validate_sel_nonempty {
|
struct edit_line_duplicate : public validate_sel_nonempty {
|
||||||
|
@ -777,7 +777,7 @@ static bool try_paste_lines(agi::Context *c) {
|
||||||
auto pos = c->ass->Line.iterator_to(*c->selectionController->GetActiveLine());
|
auto pos = c->ass->Line.iterator_to(*c->selectionController->GetActiveLine());
|
||||||
c->ass->Line.splice(pos, parsed, parsed.begin(), parsed.end());
|
c->ass->Line.splice(pos, parsed, parsed.begin(), parsed.end());
|
||||||
c->ass->Commit(_("paste"), AssFile::COMMIT_DIAG_ADDREM);
|
c->ass->Commit(_("paste"), AssFile::COMMIT_DIAG_ADDREM);
|
||||||
c->selectionController->SetSelectionAndActive(new_selection, new_active);
|
c->selectionController->SetSelectionAndActive(std::move(new_selection), new_active);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -975,7 +975,7 @@ struct edit_line_recombine : public validate_sel_multiple {
|
||||||
// Restore selection
|
// Restore selection
|
||||||
if (!new_sel.count(active_line))
|
if (!new_sel.count(active_line))
|
||||||
active_line = *new_sel.begin();
|
active_line = *new_sel.begin();
|
||||||
c->selectionController->SetSelectionAndActive(new_sel, active_line);
|
c->selectionController->SetSelectionAndActive(std::move(new_sel), active_line);
|
||||||
|
|
||||||
c->ass->Commit(_("combining"), AssFile::COMMIT_DIAG_ADDREM | AssFile::COMMIT_DIAG_FULL);
|
c->ass->Commit(_("combining"), AssFile::COMMIT_DIAG_ADDREM | AssFile::COMMIT_DIAG_FULL);
|
||||||
}
|
}
|
||||||
|
|
|
@ -364,7 +364,7 @@ struct subtitle_select_all : public Command {
|
||||||
transform(c->ass->Line.begin(), c->ass->Line.end(),
|
transform(c->ass->Line.begin(), c->ass->Line.end(),
|
||||||
inserter(sel, sel.begin()), cast<AssDialogue*>());
|
inserter(sel, sel.begin()), cast<AssDialogue*>());
|
||||||
sel.erase(nullptr);
|
sel.erase(nullptr);
|
||||||
c->selectionController->SetSelectedSet(sel);
|
c->selectionController->SetSelectedSet(std::move(sel));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -394,7 +394,7 @@ struct subtitle_select_visible : public Command {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
c->selectionController->SetSelectedSet(new_selection);
|
c->selectionController->SetSelectedSet(std::move(new_selection));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Validate(const agi::Context *c) override {
|
bool Validate(const agi::Context *c) override {
|
||||||
|
|
|
@ -233,14 +233,10 @@ void DialogSelection::Process(wxCommandEvent&) {
|
||||||
else
|
else
|
||||||
StatusTimeout(message);
|
StatusTimeout(message);
|
||||||
|
|
||||||
if (new_sel.size() && !new_sel.count(con->selectionController->GetActiveLine()))
|
|
||||||
con->selectionController->SetActiveLine(*new_sel.begin());
|
|
||||||
con->selectionController->SetSelectedSet(new_sel);
|
|
||||||
|
|
||||||
AssDialogue *new_active = con->selectionController->GetActiveLine();
|
AssDialogue *new_active = con->selectionController->GetActiveLine();
|
||||||
if (new_sel.size() && !new_sel.count(new_active))
|
if (new_sel.size() && !new_sel.count(new_active))
|
||||||
new_active = *new_sel.begin();
|
new_active = *new_sel.begin();
|
||||||
con->selectionController->SetSelectionAndActive(new_sel, new_active);
|
con->selectionController->SetSelectionAndActive(std::move(new_sel), new_active);
|
||||||
|
|
||||||
Close();
|
Close();
|
||||||
}
|
}
|
||||||
|
|
|
@ -301,7 +301,7 @@ void VisualTool<FeatureType>::SetSelection(FeatureType *feat, bool clear) {
|
||||||
if (!clear)
|
if (!clear)
|
||||||
sel = c->selectionController->GetSelectedSet();
|
sel = c->selectionController->GetSelectedSet();
|
||||||
if (sel.insert(feat->line).second)
|
if (sel.insert(feat->line).second)
|
||||||
c->selectionController->SetSelectedSet(sel);
|
c->selectionController->SetSelectedSet(std::move(sel));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -324,7 +324,7 @@ void VisualTool<FeatureType>::RemoveSelection(FeatureType *feat) {
|
||||||
if (feat->line == new_active)
|
if (feat->line == new_active)
|
||||||
new_active = *sel.begin();
|
new_active = *sel.begin();
|
||||||
|
|
||||||
c->selectionController->SetSelectionAndActive(sel, new_active);
|
c->selectionController->SetSelectionAndActive(std::move(sel), new_active);
|
||||||
}
|
}
|
||||||
|
|
||||||
//////// PARSERS
|
//////// PARSERS
|
||||||
|
|
Loading…
Reference in a new issue