diff --git a/cockatrice/src/interface/widgets/deck_editor/deck_editor_deck_dock_widget.cpp b/cockatrice/src/interface/widgets/deck_editor/deck_editor_deck_dock_widget.cpp index d974eda22..b7ba70cba 100644 --- a/cockatrice/src/interface/widgets/deck_editor/deck_editor_deck_dock_widget.cpp +++ b/cockatrice/src/interface/widgets/deck_editor/deck_editor_deck_dock_widget.cpp @@ -404,6 +404,7 @@ void DeckEditorDeckDockWidget::setDeck(DeckLoader *_deck) connect(deckLoader, &DeckLoader::deckLoaded, deckModel, &DeckListModel::rebuildTree); connect(deckLoader->getDeckList(), &DeckList::deckHashChanged, deckModel, &DeckListModel::deckHashChanged); + historyManager->clear(); historyManagerWidget->setDeckListModel(deckModel); syncDisplayWidgetsToModel(); diff --git a/libcockatrice_deck_list/libcockatrice/deck_list/deck_list_history_manager.cpp b/libcockatrice_deck_list/libcockatrice/deck_list/deck_list_history_manager.cpp index fe44d0eb8..7b640370b 100644 --- a/libcockatrice_deck_list/libcockatrice/deck_list/deck_list_history_manager.cpp +++ b/libcockatrice_deck_list/libcockatrice/deck_list/deck_list_history_manager.cpp @@ -7,6 +7,14 @@ void DeckListHistoryManager::save(DeckListMemento *memento) emit undoRedoStateChanged(); } +void DeckListHistoryManager::clear() +{ + undoStack.clear(); + redoStack.clear(); + + emit undoRedoStateChanged(); +} + void DeckListHistoryManager::undo(DeckList *deck) { if (undoStack.isEmpty()) { diff --git a/libcockatrice_deck_list/libcockatrice/deck_list/deck_list_history_manager.h b/libcockatrice_deck_list/libcockatrice/deck_list/deck_list_history_manager.h index ca4a7e8dc..bc18461ff 100644 --- a/libcockatrice_deck_list/libcockatrice/deck_list/deck_list_history_manager.h +++ b/libcockatrice_deck_list/libcockatrice/deck_list/deck_list_history_manager.h @@ -22,6 +22,8 @@ public: void save(DeckListMemento *memento); + void clear(); + bool canUndo() const { return !undoStack.isEmpty();