From 6a4b41425e41b4161d8bbb97c19d193596aec891 Mon Sep 17 00:00:00 2001 From: RickyRister Date: Fri, 28 Feb 2025 22:15:27 -0800 Subject: [PATCH] add action to deck editor --- .../client/menus/deck_editor/deck_editor_menu.cpp | 7 +++++++ .../src/client/menus/deck_editor/deck_editor_menu.h | 8 ++++---- .../src/client/tabs/abstract_tab_deck_editor.cpp | 12 ++++++++++++ .../src/client/tabs/abstract_tab_deck_editor.h | 3 +++ cockatrice/src/settings/shortcuts_settings.h | 3 +++ 5 files changed, 29 insertions(+), 4 deletions(-) diff --git a/cockatrice/src/client/menus/deck_editor/deck_editor_menu.cpp b/cockatrice/src/client/menus/deck_editor/deck_editor_menu.cpp index 935cd7580..c4e00238b 100644 --- a/cockatrice/src/client/menus/deck_editor/deck_editor_menu.cpp +++ b/cockatrice/src/client/menus/deck_editor/deck_editor_menu.cpp @@ -27,6 +27,9 @@ DeckEditorMenu::DeckEditorMenu(QWidget *parent, AbstractTabDeckEditor *_deckEdit aSaveDeckAs = new QAction(QString(), this); connect(aSaveDeckAs, SIGNAL(triggered()), deckEditor, SLOT(actSaveDeckAs())); + aEditDeckInClipboard = new QAction(QString(), this); + connect(aEditDeckInClipboard, &QAction::triggered, deckEditor, &AbstractTabDeckEditor::actEditDeckInClipboard); + aLoadDeckFromClipboard = new QAction(QString(), this); connect(aLoadDeckFromClipboard, SIGNAL(triggered()), deckEditor, SLOT(actLoadDeckFromClipboard())); @@ -76,6 +79,7 @@ DeckEditorMenu::DeckEditorMenu(QWidget *parent, AbstractTabDeckEditor *_deckEdit addAction(aSaveDeck); addAction(aSaveDeckAs); addSeparator(); + addAction(aEditDeckInClipboard); addAction(aLoadDeckFromClipboard); addMenu(saveDeckToClipboardMenu); addSeparator(); @@ -133,6 +137,8 @@ void DeckEditorMenu::retranslateUi() aClearRecents->setText(tr("Clear")); aSaveDeck->setText(tr("&Save deck")); aSaveDeckAs->setText(tr("Save deck &as...")); + + aEditDeckInClipboard->setText(tr("Edit deck in clipboard")); aLoadDeckFromClipboard->setText(tr("Load deck from cl&ipboard...")); saveDeckToClipboardMenu->setTitle(tr("Save deck to clipboard")); @@ -159,6 +165,7 @@ void DeckEditorMenu::refreshShortcuts() aSaveDeck->setShortcuts(shortcuts.getShortcut("TabDeckEditor/aSaveDeck")); aExportDeckDecklist->setShortcuts(shortcuts.getShortcut("TabDeckEditor/aExportDeckDecklist")); aSaveDeckAs->setShortcuts(shortcuts.getShortcut("TabDeckEditor/aSaveDeckAs")); + aEditDeckInClipboard->setShortcuts(shortcuts.getShortcut("TabDeckEditor/aEditDeckInClipboard")); aLoadDeckFromClipboard->setShortcuts(shortcuts.getShortcut("TabDeckEditor/aLoadDeckFromClipboard")); aPrintDeck->setShortcuts(shortcuts.getShortcut("TabDeckEditor/aPrintDeck")); aAnalyzeDeckDeckstats->setShortcuts(shortcuts.getShortcut("TabDeckEditor/aAnalyzeDeck")); diff --git a/cockatrice/src/client/menus/deck_editor/deck_editor_menu.h b/cockatrice/src/client/menus/deck_editor/deck_editor_menu.h index c9411a013..de759560b 100644 --- a/cockatrice/src/client/menus/deck_editor/deck_editor_menu.h +++ b/cockatrice/src/client/menus/deck_editor/deck_editor_menu.h @@ -14,10 +14,10 @@ public: AbstractTabDeckEditor *deckEditor; - QAction *aNewDeck, *aLoadDeck, *aClearRecents, *aSaveDeck, *aSaveDeckAs, *aLoadDeckFromClipboard, - *aSaveDeckToClipboard, *aSaveDeckToClipboardNoSetNameAndNumber, *aSaveDeckToClipboardRaw, - *aSaveDeckToClipboardRawNoSetNameAndNumber, *aPrintDeck, *aExportDeckDecklist, *aAnalyzeDeckDeckstats, - *aAnalyzeDeckTappedout, *aClose; + QAction *aNewDeck, *aLoadDeck, *aClearRecents, *aSaveDeck, *aSaveDeckAs, *aEditDeckInClipboard, + *aLoadDeckFromClipboard, *aSaveDeckToClipboard, *aSaveDeckToClipboardNoSetNameAndNumber, + *aSaveDeckToClipboardRaw, *aSaveDeckToClipboardRawNoSetNameAndNumber, *aPrintDeck, *aExportDeckDecklist, + *aAnalyzeDeckDeckstats, *aAnalyzeDeckTappedout, *aClose; QMenu *loadRecentDeckMenu, *analyzeDeckMenu, *saveDeckToClipboardMenu; void setSaveStatus(bool newStatus); diff --git a/cockatrice/src/client/tabs/abstract_tab_deck_editor.cpp b/cockatrice/src/client/tabs/abstract_tab_deck_editor.cpp index 98f38bb23..1cae30975 100644 --- a/cockatrice/src/client/tabs/abstract_tab_deck_editor.cpp +++ b/cockatrice/src/client/tabs/abstract_tab_deck_editor.cpp @@ -372,6 +372,18 @@ void AbstractTabDeckEditor::saveDeckRemoteFinished(const Response &response) setModified(false); } +void AbstractTabDeckEditor::actEditDeckInClipboard() +{ + DlgLoadDeckFromClipboard dlg(*getDeckList(), this); + if (!dlg.exec()) + return; + + setDeck(dlg.getDeckList()); + setModified(true); + + deckMenu->setSaveStatus(true); +} + void AbstractTabDeckEditor::actLoadDeckFromClipboard() { auto deckOpenLocation = confirmOpen(); diff --git a/cockatrice/src/client/tabs/abstract_tab_deck_editor.h b/cockatrice/src/client/tabs/abstract_tab_deck_editor.h index ee8af472c..0a1e6395d 100644 --- a/cockatrice/src/client/tabs/abstract_tab_deck_editor.h +++ b/cockatrice/src/client/tabs/abstract_tab_deck_editor.h @@ -44,6 +44,8 @@ class AbstractTabDeckEditor : public Tab { Q_OBJECT + friend class DeckEditorMenu; + public: explicit AbstractTabDeckEditor(TabSupervisor *_tabSupervisor); @@ -91,6 +93,7 @@ protected slots: virtual void actLoadDeck(); bool actSaveDeck(); bool actSaveDeckAs(); + void actEditDeckInClipboard(); virtual void actLoadDeckFromClipboard(); void actSaveDeckToClipboard(); void actSaveDeckToClipboardNoSetNameAndNumber(); diff --git a/cockatrice/src/settings/shortcuts_settings.h b/cockatrice/src/settings/shortcuts_settings.h index 28470260f..de1ffbeeb 100644 --- a/cockatrice/src/settings/shortcuts_settings.h +++ b/cockatrice/src/settings/shortcuts_settings.h @@ -202,6 +202,9 @@ private: {"TabDeckEditor/aLoadDeck", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Load Deck..."), parseSequenceString("Ctrl+O"), ShortcutGroup::Deck_Editor)}, + {"TabDeckEditor/aEditDeckInClipboard", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Edit Deck in Clipboard"), + parseSequenceString(""), + ShortcutGroup::Deck_Editor)}, {"TabDeckEditor/aLoadDeckFromClipboard", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Load Deck from Clipboard..."), parseSequenceString("Ctrl+Shift+V"),