Clean up pointer use:

* Use unique_ptr for Actions instead of manual memory management
 * Use unique_ptr in KeywordDatabase
 * Use unique_ptr instead of shared_ptr for file formats
 * Don't pass shared_ptr to Reader/Writer, use references instead
Also
 * Switch to C++17 so we can use map::try_emplace
This commit is contained in:
Twan van Laarhoven
2020-04-25 21:30:05 +02:00
parent 708b4389a0
commit 64ea1d7322
57 changed files with 363 additions and 385 deletions
+3 -3
View File
@@ -179,7 +179,7 @@ bool CardListBase::doPaste() {
ok = data.getCards(set, new_cards);
if (!ok) return false;
// add card to set
set->actions.addAction(new AddCardAction(ADD, *set, new_cards));
set->actions.addAction(make_unique<AddCardAction>(ADD, *set, new_cards));
return true;
}
bool CardListBase::doDelete() {
@@ -188,7 +188,7 @@ bool CardListBase::doDelete() {
getSelection(cards_to_delete);
if (cards_to_delete.empty()) return false;
// delete cards
set->actions.addAction(new AddCardAction(REMOVE, *set, cards_to_delete));
set->actions.addAction(make_unique<AddCardAction>(REMOVE, *set, cards_to_delete));
return true;
}
@@ -378,7 +378,7 @@ void CardListBase::onDrag(wxMouseEvent& ev) {
findSelectedItemPos();
if (item != selected_item_pos) {
// move card in the set
set->actions.addAction(new ReorderCardsAction(*set, item, selected_item_pos));
set->actions.addAction(make_unique<ReorderCardsAction>(*set, item, selected_item_pos));
}
ev.Skip(false);
}