From b68cf513414b9bb7e2ac7c2fa81238f234c05c35 Mon Sep 17 00:00:00 2001 From: Matt Lowe Date: Sun, 12 Apr 2015 21:06:49 +0200 Subject: [PATCH] Added menu item to open custom image folder Needs to be tested on mac --- cockatrice/src/tab_deck_editor.cpp | 30 ++++++++++ cockatrice/src/tab_deck_editor.h | 89 +++++++++++++++--------------- 2 files changed, 75 insertions(+), 44 deletions(-) diff --git a/cockatrice/src/tab_deck_editor.cpp b/cockatrice/src/tab_deck_editor.cpp index 91aaf660..76375ce2 100644 --- a/cockatrice/src/tab_deck_editor.cpp +++ b/cockatrice/src/tab_deck_editor.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #include "tab_deck_editor.h" #include "window_sets.h" #include "carddatabase.h" @@ -228,6 +229,8 @@ TabDeckEditor::TabDeckEditor(TabSupervisor *_tabSupervisor, QWidget *parent) connect(aAnalyzeDeck, SIGNAL(triggered()), this, SLOT(actAnalyzeDeck())); aClose = new QAction(QString(), this); connect(aClose, SIGNAL(triggered()), this, SLOT(closeRequest())); + aOpenCustomFolder = new QAction(QString(), this); + connect(aOpenCustomFolder, SIGNAL(triggered()), this, SLOT(actOpenCustomFolder())); aEditSets = new QAction(QString(), this); connect(aEditSets, SIGNAL(triggered()), this, SLOT(actEditSets())); @@ -256,6 +259,10 @@ TabDeckEditor::TabDeckEditor(TabSupervisor *_tabSupervisor, QWidget *parent) dbMenu->addSeparator(); dbMenu->addAction(aClearSearch); dbMenu->addAction(aCardTextOnly); +#if defined(Q_OS_WIN) || defined(Q_OS_MAC) + dbMenu->addSeparator(); + dbMenu->addAction(aOpenCustomFolder); +#endif addTabMenu(dbMenu); aAddCard = new QAction(QString(), this); @@ -311,6 +318,7 @@ void TabDeckEditor::retranslateUi() aSaveDeckToClipboard->setText(tr("Save deck to clip&board")); aPrintDeck->setText(tr("&Print deck...")); aAnalyzeDeck->setText(tr("&Analyze deck on deckstats.net")); + aOpenCustomFolder->setText(tr("Open custom image folder")); aClose->setText(tr("&Close")); aClose->setShortcut(tr("Ctrl+Q")); @@ -523,6 +531,28 @@ void TabDeckEditor::actAnalyzeDeck() interface->analyzeDeck(deckModel->getDeckList()); } + +void TabDeckEditor::actOpenCustomFolder() { + +#if defined(Q_OS_MAC) + + QStringList scriptArgs; + scriptArgs << QLatin1String("-e"); + scriptArgs << QString::fromLatin1("tell application \"Finder\" to open POSIX file \"%1\"").arg(settingsCache->getPicsPath() + "/custom/"); + scriptArgs << QLatin1String("-e"); + scriptArgs << QLatin1String("tell application \"Finder\" to activate"); + + QProcess::execute("/usr/bin/osascript", scriptArgs); +#endif +#if defined(Q_OS_WIN) + QStringList args; + QString pathToFolder = settingsCache->getPicsPath().append("/custom"); + args << QDir::toNativeSeparators(pathToFolder); + 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 e80b59cb..1fba8e7c 100644 --- a/cockatrice/src/tab_deck_editor.h +++ b/cockatrice/src/tab_deck_editor.h @@ -20,55 +20,56 @@ class FilterTreeModel; class CardInfo; class SearchLineEdit : public QLineEdit { - private: - QTreeView *treeView; - protected: - void keyPressEvent(QKeyEvent *event); - public: - SearchLineEdit() : QLineEdit(), treeView(0) { } - void setTreeView(QTreeView *_treeView) { treeView = _treeView; } +private: + QTreeView *treeView; +protected: + void keyPressEvent(QKeyEvent *event); +public: + SearchLineEdit() : QLineEdit(), treeView(0) { } + void setTreeView(QTreeView *_treeView) { treeView = _treeView; } }; class TabDeckEditor : public Tab { Q_OBJECT -private slots: - void updateName(const QString &name); - void updateComments(); - void updateHash(); - void updateCardInfoLeft(const QModelIndex ¤t, const QModelIndex &previous); - void updateCardInfoRight(const QModelIndex ¤t, const QModelIndex &previous); - void updateSearch(const QString &search); + private slots: + void updateName(const QString &name); + void updateComments(); + void updateHash(); + void updateCardInfoLeft(const QModelIndex ¤t, const QModelIndex &previous); + void updateCardInfoRight(const QModelIndex ¤t, const QModelIndex &previous); + void updateSearch(const QString &search); - void actNewDeck(); - void actLoadDeck(); - bool actSaveDeck(); - bool actSaveDeckAs(); - void actLoadDeckFromClipboard(); - void actSaveDeckToClipboard(); - void actPrintDeck(); - void actAnalyzeDeck(); + void actNewDeck(); + void actLoadDeck(); + bool actSaveDeck(); + bool actSaveDeckAs(); + void actLoadDeckFromClipboard(); + void actSaveDeckToClipboard(); + void actPrintDeck(); + void actAnalyzeDeck(); + void actOpenCustomFolder(); - void actEditSets(); - void actEditTokens(); + void actEditSets(); + void actEditTokens(); - void actClearSearch(); + void actClearSearch(); - void actSwapCard(); - void actAddCard(); - void actAddCardToSideboard(); - void actRemoveCard(); - void actIncrement(); - void actDecrement(); - void actDecrementCard(); - void actDecrementCardFromSideboard(); + void actSwapCard(); + void actAddCard(); + void actAddCardToSideboard(); + void actRemoveCard(); + void actIncrement(); + void actDecrement(); + void actDecrementCard(); + void actDecrementCardFromSideboard(); - //void actUpdatePrices(); + //void actUpdatePrices(); - void finishedUpdatingPrices(); - void saveDeckRemoteFinished(const Response &r); - void filterViewCustomContextMenu(const QPoint &point); - void filterRemove(QAction *action); - void setPriceTagFeatureEnabled(int enabled); + void finishedUpdatingPrices(); + void saveDeckRemoteFinished(const Response &r); + void filterViewCustomContextMenu(const QPoint &point); + void filterRemove(QAction *action); + void setPriceTagFeatureEnabled(int enabled); private: CardInfo *currentCardInfo() const; void addCardHelper(QString zoneName); @@ -97,10 +98,10 @@ private: QTreeView *filterView; QMenu *deckMenu, *dbMenu; - QAction *aNewDeck, *aLoadDeck, *aSaveDeck, *aSaveDeckAs, *aLoadDeckFromClipboard, *aSaveDeckToClipboard, *aPrintDeck, *aAnalyzeDeck, *aClose; + QAction *aNewDeck, *aLoadDeck, *aSaveDeck, *aSaveDeckAs, *aLoadDeckFromClipboard, *aSaveDeckToClipboard, *aPrintDeck, *aAnalyzeDeck, *aClose, *aOpenCustomFolder; QAction *aEditSets, *aEditTokens, *aClearSearch, *aCardTextOnly; QAction *aAddCard, *aAddCardToSideboard, *aRemoveCard, *aIncrement, *aDecrement;// *aUpdatePrices; - + bool modified; public: TabDeckEditor(TabSupervisor *_tabSupervisor, QWidget *parent = 0); @@ -110,10 +111,10 @@ public: void setDeck(DeckLoader *_deckLoader); void setModified(bool _windowModified); bool confirmClose(); -public slots: - void closeRequest(); + public slots: + void closeRequest(); signals: - void deckEditorClosing(TabDeckEditor *tab); + void deckEditorClosing(TabDeckEditor *tab); }; #endif