Slather on some std::moves when setting the selection

This commit is contained in:
Thomas Goyne 2014-03-12 15:10:47 -07:00
parent 2b76ee7696
commit f29b2d1fdc
7 changed files with 16 additions and 20 deletions

View file

@ -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);
} }

View file

@ -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);

View file

@ -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;

View file

@ -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);
} }

View file

@ -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 {

View file

@ -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();
} }

View file

@ -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