From 386716b8dbc6efef50b8bf45a2bb6a0a99e9a7c5 Mon Sep 17 00:00:00 2001 From: Jeff Date: Thu, 13 Aug 2015 23:06:07 -0400 Subject: [PATCH] Add option to open customsets folder --- cockatrice/src/tab_deck_editor.cpp | 33 ++++++++++++++++++++++++++++++ cockatrice/src/tab_deck_editor.h | 3 ++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/cockatrice/src/tab_deck_editor.cpp b/cockatrice/src/tab_deck_editor.cpp index 390acd42..c5a40ab0 100644 --- a/cockatrice/src/tab_deck_editor.cpp +++ b/cockatrice/src/tab_deck_editor.cpp @@ -21,6 +21,8 @@ #include #include #include +#include +#include #include "tab_deck_editor.h" #include "window_sets.h" #include "carddatabase.h" @@ -280,6 +282,8 @@ void TabDeckEditor::createMenus() connect(aClose, SIGNAL(triggered()), this, SLOT(closeRequest())); aOpenCustomFolder = new QAction(QString(), this); connect(aOpenCustomFolder, SIGNAL(triggered()), this, SLOT(actOpenCustomFolder())); + aOpenCustomsetsFolder = new QAction(QString(), this); + connect(aOpenCustomsetsFolder, SIGNAL(triggered()), this, SLOT(actOpenCustomsetsFolder())); aEditSets = new QAction(QString(), this); connect(aEditSets, SIGNAL(triggered()), this, SLOT(actEditSets())); @@ -324,6 +328,7 @@ void TabDeckEditor::createMenus() #if defined(Q_OS_WIN) || defined(Q_OS_MAC) dbMenu->addSeparator(); dbMenu->addAction(aOpenCustomFolder); + dbMenu->addAction(aOpenCustomsetsFolder); #endif addTabMenu(dbMenu); } @@ -532,6 +537,7 @@ void TabDeckEditor::retranslateUi() aPrintDeck->setText(tr("&Print deck...")); aAnalyzeDeck->setText(tr("&Analyze deck on deckstats.net")); aOpenCustomFolder->setText(tr("Open custom image folder")); + aOpenCustomsetsFolder->setText(tr("Open custom sets folder")); aClose->setText(tr("&Close")); aClose->setShortcut(QKeySequence("Ctrl+Q")); @@ -774,6 +780,33 @@ void TabDeckEditor::actOpenCustomFolder() { } +void TabDeckEditor::actOpenCustomsetsFolder() { +#if QT_VERSION < 0x050000 + QString dataDir = QDesktopServices::storageLocation(QDesktopServices::DataLocation); +#else + QString dataDir = QStandardPaths::standardLocations(QStandardPaths::DataLocation).first(); +#endif + +#if defined(Q_OS_MAC) + + QStringList scriptArgs; + scriptArgs << QLatin1String("-e"); + scriptArgs << QString::fromLatin1("tell application \"Finder\" to open POSIX file \"%1\"").arg(dataDir + "/customsets/"); + scriptArgs << QLatin1String("-e"); + scriptArgs << QLatin1String("tell application \"Finder\" to activate"); + + QProcess::execute("/usr/bin/osascript", scriptArgs); +#endif +#if defined(Q_OS_WIN) + QStringList args; + dataDir.append("/customsets"); + args << QDir::toNativeSeparators(dataDir); + aOpenCustomsetsFolder->setText(dataDir); + QProcess::startDetached("explorer", args); +#endif + +} + void TabDeckEditor::actEditSets() { WndSets *w = new WndSets; diff --git a/cockatrice/src/tab_deck_editor.h b/cockatrice/src/tab_deck_editor.h index 1398bff8..19591e3f 100644 --- a/cockatrice/src/tab_deck_editor.h +++ b/cockatrice/src/tab_deck_editor.h @@ -54,6 +54,7 @@ class TabDeckEditor : public Tab { void actPrintDeck(); void actAnalyzeDeck(); void actOpenCustomFolder(); + void actOpenCustomsetsFolder(); void actEditSets(); void actEditTokens(); @@ -112,7 +113,7 @@ private: QWidget *filterBox; QMenu *deckMenu, *dbMenu; - QAction *aNewDeck, *aLoadDeck, *aSaveDeck, *aSaveDeckAs, *aLoadDeckFromClipboard, *aSaveDeckToClipboard, *aPrintDeck, *aAnalyzeDeck, *aClose, *aOpenCustomFolder; + QAction *aNewDeck, *aLoadDeck, *aSaveDeck, *aSaveDeckAs, *aLoadDeckFromClipboard, *aSaveDeckToClipboard, *aPrintDeck, *aAnalyzeDeck, *aClose, *aOpenCustomFolder, *aOpenCustomsetsFolder; QAction *aEditSets, *aEditTokens, *aClearFilterAll, *aClearFilterOne; QAction *aAddCard, *aAddCardToSideboard, *aRemoveCard, *aIncrement, *aDecrement;// *aUpdatePrices; QAction *aResetLayout;