add "save deck to clipboard" to VDS right click menu (#5625)

This commit is contained in:
RickyRister 2025-02-15 20:18:47 -08:00 committed by GitHub
parent 0666483756
commit a28300ac42
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -5,6 +5,7 @@
#include "../../cards/deck_preview_card_picture_widget.h"
#include "deck_preview_deck_tags_display_widget.h"
#include <QClipboard>
#include <QFileInfo>
#include <QMenu>
#include <QMouseEvent>
@ -273,6 +274,15 @@ void DeckPreviewWidget::imageDoubleClickedEvent(QMouseEvent *event, DeckPreviewC
emit deckLoadRequested(filePath);
}
static void saveDeckToClipboard(DeckLoader *deckLoader, bool addComments, bool addSetNameAndNumber)
{
QString buffer;
QTextStream stream(&buffer);
deckLoader->saveToStream_Plain(stream, addComments, addSetNameAndNumber);
QApplication::clipboard()->setText(buffer, QClipboard::Clipboard);
QApplication::clipboard()->setText(buffer, QClipboard::Selection);
}
QMenu *DeckPreviewWidget::createRightClickMenu()
{
auto *menu = new QMenu(this);
@ -280,5 +290,18 @@ QMenu *DeckPreviewWidget::createRightClickMenu()
auto loadDeckAction = menu->addAction(tr("Load Deck"));
connect(loadDeckAction, &QAction::triggered, this, [this] { emit deckLoadRequested(filePath); });
menu->addSeparator();
auto saveToClipboardMenu = menu->addMenu(tr("Save Deck to Clipboard"));
connect(saveToClipboardMenu->addAction(tr("Annotated")), &QAction::triggered, this,
[this] { saveDeckToClipboard(deckLoader, true, true); });
connect(saveToClipboardMenu->addAction(tr("Annotated (No set name or number)")), &QAction::triggered, this,
[this] { saveDeckToClipboard(deckLoader, true, false); });
connect(saveToClipboardMenu->addAction(tr("Not Annotated")), &QAction::triggered, this,
[this] { saveDeckToClipboard(deckLoader, false, true); });
connect(saveToClipboardMenu->addAction(tr("Not Annotated (No set name or number)")), &QAction::triggered, this,
[this] { saveDeckToClipboard(deckLoader, false, false); });
return menu;
}