Shorcut read from settings

This commit is contained in:
marco 2015-08-08 19:41:18 +02:00
parent 644ea0482f
commit b0bf94e378
14 changed files with 353 additions and 78 deletions

View file

@ -94,6 +94,7 @@ SET(cockatrice_SOURCES
src/qt-json/json.cpp
src/soundengine.cpp
src/pending_command.cpp
src/shortcutssettings.cpp
${VERSION_STRING_CPP}
)

View file

@ -1,5 +1,6 @@
#include "abstractcounter.h"
#include "player.h"
#include "settingscache.h"
#include <QPainter>
#include <QMenu>
#include <QAction>
@ -65,9 +66,17 @@ void AbstractCounter::retranslateUi()
void AbstractCounter::setShortcutsActive()
{
if (name == "life") {
aSet->setShortcut(QKeySequence("Ctrl+L"));
aDec->setShortcut(QKeySequence("F11"));
aInc->setShortcut(QKeySequence("F12"));
aSet->setShortcuts(settingsCache->shortcuts().getShortcut(
"AbstractCounter/aSet",
QKeySequence("Ctrl+L")));
aDec->setShortcuts(settingsCache->shortcuts().getShortcut(
"AbstractCounter/aDec",
QKeySequence("F11")));
aInc->setShortcuts(settingsCache->shortcuts().getShortcut(
"AbstractCounter/aInc",
QKeySequence("F12")));
}
}

View file

@ -10,6 +10,7 @@
#include <QMessageBox>
#include "dlg_load_deck_from_clipboard.h"
#include "deck_loader.h"
#include "settingscache.h"
DlgLoadDeckFromClipboard::DlgLoadDeckFromClipboard(QWidget *parent)
: QDialog(parent), deckList(0)
@ -17,7 +18,9 @@ DlgLoadDeckFromClipboard::DlgLoadDeckFromClipboard(QWidget *parent)
contentsEdit = new QPlainTextEdit;
refreshButton = new QPushButton(tr("&Refresh"));
refreshButton->setShortcut(QKeySequence("F5"));
refreshButton->setShortcut(settingsCache->shortcuts().getSingleShortcut(
"DlgLoadDeckFromClipboard/refreshButton",
QKeySequence("F5")));
connect(refreshButton, SIGNAL(clicked()), this, SLOT(actRefresh()));
QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);

View file

@ -1,5 +1,6 @@
#include "gameview.h"
#include "gamescene.h"
#include "settingscache.h"
#include <QResizeEvent>
#include <QAction>
#include <QRubberBand>
@ -19,7 +20,9 @@ GameView::GameView(QGraphicsScene *scene, QWidget *parent)
connect(scene, SIGNAL(sigStopRubberBand()), this, SLOT(stopRubberBand()));
aCloseMostRecentZoneView = new QAction(this);
aCloseMostRecentZoneView->setShortcut(QKeySequence("Esc"));
aCloseMostRecentZoneView->setShortcuts(settingsCache->shortcuts().getShortcut(
"GameView/aCloseMostRecentZoneView",
QKeySequence("Esc")));
connect(aCloseMostRecentZoneView, SIGNAL(triggered()), scene, SLOT(closeMostRecentZoneView()));
addAction(aCloseMostRecentZoneView);

View file

@ -691,25 +691,44 @@ void Player::retranslateUi()
aFlip->setText(tr("&Flip"));
aPeek->setText(tr("&Peek at card face"));
aClone->setText(tr("&Clone"));
aClone->setShortcut(QKeySequence("Ctrl+J"));
aClone->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aClone", QKeySequence("Ctrl+J")));
aAttach->setText(tr("Attac&h to card..."));
aAttach->setShortcut(QKeySequence("Ctrl+A"));
aAttach->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aAttach", QKeySequence("Ctrl+A")));
aUnattach->setText(tr("Unattac&h"));
aDrawArrow->setText(tr("&Draw arrow..."));
aIncP->setText(tr("&Increase power"));
aIncP->setShortcut(QKeySequence("Ctrl++"));
aIncP->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/IncP", QKeySequence("Ctrl++")));
aDecP->setText(tr("&Decrease power"));
aDecP->setShortcut(QKeySequence("Ctrl+-"));
aDecP->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aDecP", QKeySequence("Ctrl+-")));
aIncT->setText(tr("I&ncrease toughness"));
aIncT->setShortcut(QKeySequence("Alt++"));
aIncT->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aIncT", QKeySequence("Alt++")));
aDecT->setText(tr("D&ecrease toughness"));
aDecT->setShortcut(QKeySequence("Alt+-"));
aDecT->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aDecT", QKeySequence("Alt+-")));
aIncPT->setText(tr("In&crease power and toughness"));
aIncPT->setShortcut(QKeySequence("Ctrl+Alt++"));
aIncPT->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aIncPT", QKeySequence("Ctrl+Alt++")));
aDecPT->setText(tr("Dec&rease power and toughness"));
aDecPT->setShortcut(QKeySequence("Ctrl+Alt+-"));
aDecPT->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aDecPT", QKeySequence("Ctrl+Alt+-")));
aSetPT->setText(tr("Set &power and toughness..."));
aSetPT->setShortcut(QKeySequence("Ctrl+P"));
aSetPT->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aSetPT", QKeySequence("Ctrl+P")));
aSetAnnotation->setText(tr("&Set annotation..."));
QStringList counterColors;
counterColors.append(tr("Red"));
@ -725,7 +744,8 @@ void Player::retranslateUi()
aMoveToBottomLibrary->setText(tr("&Bottom of library"));
aMoveToHand->setText(tr("&Hand"));
aMoveToGraveyard->setText(tr("&Graveyard"));
aMoveToGraveyard->setShortcut(QKeySequence("Ctrl+Del"));
aMoveToGraveyard->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aMoveToGraveyard", QKeySequence("Ctrl+Del")));
aMoveToExile->setText(tr("&Exile"));
QMapIterator<QString, CardZone *> zoneIterator(zones);
@ -737,20 +757,50 @@ void Player::setShortcutsActive()
{
shortcutsActive = true;
aViewSideboard->setShortcut(QKeySequence("Ctrl+F3"));
aViewLibrary->setShortcut(QKeySequence("F3"));
aViewTopCards->setShortcut(QKeySequence("Ctrl+W"));
aViewGraveyard->setShortcut(QKeySequence("F4"));
aDrawCard->setShortcut(QKeySequence("Ctrl+D"));
aDrawCards->setShortcut(QKeySequence("Ctrl+E"));
aUndoDraw->setShortcut(QKeySequence("Ctrl+Shift+D"));
aMulligan->setShortcut(QKeySequence("Ctrl+M"));
aShuffle->setShortcut(QKeySequence("Ctrl+S"));
aUntapAll->setShortcut(QKeySequence("Ctrl+U"));
aRollDie->setShortcut(QKeySequence("Ctrl+I"));
aCreateToken->setShortcut(QKeySequence("Ctrl+T"));
aCreateAnotherToken->setShortcut(QKeySequence("Ctrl+G"));
aAlwaysRevealTopCard->setShortcut(QKeySequence("Ctrl+N"));
aViewSideboard->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aViewSideboard", QKeySequence("Ctrl+F3")));
aViewLibrary->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aViewLibrary", QKeySequence("F3")));
aViewTopCards->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aViewTopCards", QKeySequence("Ctrl+W")));
aViewGraveyard->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aViewGraveyard", QKeySequence("F4")));
aDrawCard->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aDrawCard", QKeySequence("Ctrl+D")));
aDrawCards->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aDrawCards", QKeySequence("Ctrl+E")));
aUndoDraw->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aUndoDraw", QKeySequence("Ctrl+Shift+D")));
aMulligan->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aMulligan", QKeySequence("Ctrl+M")));
aShuffle->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aShuffle", QKeySequence("Ctrl+S")));
aUntapAll->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aUntapAll", QKeySequence("Ctrl+U")));
aRollDie->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aRollDie", QKeySequence("Ctrl+I")));
aCreateToken->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aCreateToken",
QKeySequence("Ctrl+T")));
aCreateAnotherToken->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aCreateAnotherToken",
QKeySequence("Ctrl+G")));
aAlwaysRevealTopCard->setShortcuts(settingsCache->shortcuts().getShortcut(
"Player/aAlwaysRevealTopCard",
QKeySequence("Ctrl+N")));
QMapIterator<int, AbstractCounter *> counterIterator(counters);
while (counterIterator.hasNext())
@ -788,10 +838,15 @@ void Player::initSayMenu()
QSettings settings;
settings.beginGroup("messages");
int count = settings.value("count", 0).toInt();
QString base = settingsCache->shortcuts().getSingleShortcut(
"Player/say", QKeySequence("Ctrl")).toString();
base = base.append("+");
for (int i = 0; i < count; i++) {
QAction *newAction = new QAction(settings.value(QString("msg%1").arg(i)).toString(), this);
if (i <= 10)
newAction->setShortcut(QKeySequence(QString("Ctrl+%1").arg((i + 1) % 10)));
if (i <= 10){
newAction->setShortcut(QKeySequence(base + QString::number((i + 1) % 10)));
}
connect(newAction, SIGNAL(triggered()), this, SLOT(actSayMessage()));
sayMenu->addAction(newAction);
}
@ -805,13 +860,20 @@ void Player::setDeck(const DeckLoader &_deck)
createPredefinedTokenMenu->clear();
predefinedTokens.clear();
InnerDecklistNode *tokenZone = dynamic_cast<InnerDecklistNode *>(deck->getRoot()->findChild("tokens"));
QString base = settingsCache->shortcuts().getSingleShortcut(
"Player/token", QKeySequence("Alt")).toString();
base = base.append("+");
if (tokenZone)
for (int i = 0; i < tokenZone->size(); ++i) {
const QString tokenName = tokenZone->at(i)->getName();
predefinedTokens.append(tokenName);
QAction *a = createPredefinedTokenMenu->addAction(tokenName);
if (i < 10)
a->setShortcut(QKeySequence("Alt+" + QString::number((i + 1) % 10)));
{
a->setShortcut(QKeySequence(base + QString::number((i + 1) % 10)));
}
connect(a, SIGNAL(triggered()), this, SLOT(actCreatePredefinedToken()));
}
}

View file

@ -6,17 +6,17 @@
#include <QDesktopServices>
#endif
QString SettingsCache::getLayoutsSettingsPath()
QString SettingsCache::getSettingsPath()
{
QString file = "";
#ifndef PORTABLE_BUILD
#if QT_VERSION >= 0x050000
#if QT_VERSION >= 0x050000
file = QStandardPaths::writableLocation(QStandardPaths::DataLocation);
#else
file = QDesktopServices::storageLocation(QDesktopServices::DataLocation);
#endif
file.append("/settings/layouts/");
file.append("/settings/");
#endif
return file;
@ -25,6 +25,7 @@ QString SettingsCache::getLayoutsSettingsPath()
SettingsCache::SettingsCache()
{
settings = new QSettings(this);
shortcutsSettings = new ShortcutsSettings(getSettingsPath(),this);
lang = settings->value("personal/lang").toString();
keepalive = settings->value("personal/keepalive", 5).toInt();
@ -118,8 +119,8 @@ SettingsCache::SettingsCache()
spectatorsCanSeeEverything = settings->value("game/spectatorscanseeeverything", false).toBool();
clientID = settings->value("personal/clientid", "notset").toString();
QString file = getLayoutsSettingsPath();
file.append("deckLayout.ini");
QString file = getSettingsPath();
file.append("layouts/deckLayout.ini");
QSettings layout_settings(file , QSettings::IniFormat);
deckEditorLayoutState = layout_settings.value("layouts/deckEditor_state").toByteArray();
@ -497,8 +498,8 @@ void SettingsCache::setDeckEditorLayoutState(const QByteArray &value)
{
deckEditorLayoutState = value;
QString file = getLayoutsSettingsPath();
file.append("deckLayout.ini");
QString file = getSettingsPath();
file.append("layouts/deckLayout.ini");
QSettings layout_settings(file , QSettings::IniFormat);
layout_settings.setValue("layouts/deckEditor_state",value);
}
@ -507,8 +508,8 @@ void SettingsCache::setDeckEditorGeometry(const QByteArray &value)
{
deckEditorGeometry = value;
QString file = getLayoutsSettingsPath();
file.append("deckLayout.ini");
QString file = getSettingsPath();
file.append("layouts/deckLayout.ini");
QSettings layout_settings(file , QSettings::IniFormat);
layout_settings.setValue("layouts/deckEditor_geometry",value);
}
@ -517,8 +518,8 @@ void SettingsCache::setDeckEditorCardSize(const QSize &value)
{
deckEditorCardSize = value;
QString file = getLayoutsSettingsPath();
file.append("deckLayout.ini");
QString file = getSettingsPath();
file.append("layouts/deckLayout.ini");
QSettings layout_settings(file , QSettings::IniFormat);
layout_settings.setValue("layouts/deckEditor_CardSize",value);
}
@ -527,8 +528,8 @@ void SettingsCache::setDeckEditorDeckSize(const QSize &value)
{
deckEditorDeckSize = value;
QString file = getLayoutsSettingsPath();
file.append("deckLayout.ini");
QString file = getSettingsPath();
file.append("layouts/deckLayout.ini");
QSettings layout_settings(file , QSettings::IniFormat);
layout_settings.setValue("layouts/deckEditor_DeckSize",value);
}
@ -537,8 +538,8 @@ void SettingsCache::setDeckEditorFilterSize(const QSize &value)
{
deckEditorFilterSize = value;
QString file = getLayoutsSettingsPath();
file.append("deckLayout.ini");
QString file = getSettingsPath();
file.append("layouts/deckLayout.ini");
QSettings layout_settings(file , QSettings::IniFormat);
layout_settings.setValue("layouts/deckEditor_FilterSize",value);
}

View file

@ -4,6 +4,7 @@
#include <QObject>
#include <QSize>
#include <QStringList>
#include "shortcutssettings.h"
// the falbacks are used for cards without a muid
#define PIC_URL_DEFAULT "http://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=!cardid!&type=card"
@ -45,7 +46,7 @@ signals:
void masterVolumeChanged(int value);
private:
QSettings *settings;
ShortcutsSettings *shortcutsSettings;
QByteArray mainWindowGeometry;
QString lang;
QString deckPath, replaysPath, picsPath, cardDatabasePath, tokenDatabasePath;
@ -102,7 +103,7 @@ private:
int keepalive;
QByteArray deckEditorLayoutState, deckEditorGeometry;
QSize deckEditorFilterSize, deckEditorDeckSize, deckEditorCardSize;
QString getLayoutsSettingsPath();
QString getSettingsPath();
public:
SettingsCache();
@ -187,6 +188,7 @@ public:
void setDeckEditorDeckSize(const QSize &value);
QSize getDeckEditorFilterSize() const { return deckEditorFilterSize; }
void setDeckEditorFilterSize(const QSize &value);
ShortcutsSettings& shortcuts() const { return *shortcutsSettings; }
public slots:
void setMainWindowGeometry(const QByteArray &_mainWindowGeometry);

View file

@ -0,0 +1,102 @@
#include "shortcutssettings.h"
#include <QDebug>
QList<QKeySequence> ShortcutsSettings::parseSecuenceString(QString stringSecuence)
{
QStringList secuences = stringSecuence.split(";");
QList<QKeySequence> secuenceList;
for(QStringList::const_iterator ss = secuences.cbegin(); ss != secuences.cend(); ++ss)
{
secuenceList.append(QKeySequence(*ss, QKeySequence::PortableText));
}
return secuenceList;
}
ShortcutsSettings::ShortcutsSettings(QString settingsPath, QObject *parent) : QObject(parent)
{
this->settingsFilePath = settingsPath;
this->settingsFilePath.append("shortcuts.ini");
QSettings shortCutsFile(settingsFilePath, QSettings::IniFormat);
shortCutsFile.beginGroup("Custom");
const QStringList customKeys = shortCutsFile.allKeys();
for(QStringList::const_iterator it = customKeys.cbegin(); it != customKeys.cend(); ++it)
{
QString stringSecuence = shortCutsFile.value(*it).toString();
QList<QKeySequence> secuenceList = parseSecuenceString(stringSecuence);
shortCuts.insert(*it, secuenceList);
}
shortCutsFile.endGroup();
shortCutsFile.beginGroup("Defaults");
const QStringList defaultKeys = shortCutsFile.allKeys();
for(QStringList::const_iterator it = defaultKeys.cbegin(); it != defaultKeys.cend(); ++it)
{
QString stringSecuence = shortCutsFile.value(*it).toString();
QList<QKeySequence> secuenceList = parseSecuenceString(stringSecuence);
defaultShortCuts.insert(*it, secuenceList);
}
shortCutsFile.endGroup();
}
QList<QKeySequence> ShortcutsSettings::getShortcut(QString name, QList<QKeySequence> defaultShortCut)
{
if(shortCuts.contains(name))
return shortCuts.value(name);
setShortcuts(name, defaultShortCut);
defaultShortCuts[name] = defaultShortCut;
QSettings shortCutsFile(settingsFilePath, QSettings::IniFormat);
shortCutsFile.beginGroup("Defaults");
shortCutsFile.setValue(name, stringifySecuence(defaultShortCut));
shortCutsFile.endGroup();
return defaultShortCut;
}
QList<QKeySequence> ShortcutsSettings::getShortcut(QString name, QKeySequence defaultShortCut)
{
return getShortcut(name, QList<QKeySequence>() << defaultShortCut);
}
QKeySequence ShortcutsSettings::getSingleShortcut(QString name, QKeySequence defaultShortCut)
{
return getShortcut(name,defaultShortCut).at(0);
}
QList<QKeySequence> ShortcutsSettings::getDefaultShortCut(QString name)
{
return defaultShortCuts.value(name);
}
QString ShortcutsSettings::stringifySecuence(QList<QKeySequence> secuence) const
{
QString stringSecuence;
for(int i=0; i < secuence.size(); ++i)
{
stringSecuence.append(secuence.at(i).toString(QKeySequence::PortableText));
if(i < secuence.size() - 1)
stringSecuence.append(";");
}
return stringSecuence;
}
void ShortcutsSettings::setShortcuts(QString name, QList<QKeySequence> secuence)
{
shortCuts[name] = secuence;
QSettings shortCutsFile(settingsFilePath, QSettings::IniFormat);
shortCutsFile.beginGroup("Custom");
QString stringSecuence = stringifySecuence(secuence);
shortCutsFile.setValue(name, stringSecuence);
shortCutsFile.endGroup();
}
void ShortcutsSettings::setShortcuts(QString name, QKeySequence secuence)
{
setShortcuts(name, QList<QKeySequence>() << secuence);
}

View file

@ -0,0 +1,37 @@
#ifndef SHORTCUTSSETTINGS_H
#define SHORTCUTSSETTINGS_H
#include <QObject>
#include <QSettings>
#include <QMap>
#include <QKeySequence>
class ShortcutsSettings : public QObject
{
Q_OBJECT
public:
ShortcutsSettings(QString settingsFilePath, QObject *parent = 0);
~ShortcutsSettings() { }
QList<QKeySequence> getShortcut(QString name, QList<QKeySequence> defaultShortCut);
QList<QKeySequence> getShortcut(QString name, QKeySequence defaultShortCut);
QKeySequence getSingleShortcut(QString name, QKeySequence defaultShortCut);
QList<QKeySequence> getDefaultShortCut(QString name);
void setShortcuts(QString name, QList<QKeySequence> secuence);
void setShortcuts(QString name, QKeySequence secuence);
signals:
public slots:
private:
QString settingsFilePath;
QMap<QString,QList<QKeySequence> > shortCuts;
QMap<QString,QList<QKeySequence> > defaultShortCuts;
QString stringifySecuence(QList<QKeySequence> secuence) const;
QList<QKeySequence> parseSecuenceString(QString stringSecuence);
};
#endif // SHORTCUTSSETTINGS_H

View file

@ -254,26 +254,44 @@ void TabDeckEditor::createFiltersDock()
void TabDeckEditor::createMenus()
{
aNewDeck = new QAction(QString(), this);
aNewDeck->setShortcuts(QKeySequence::New);
aNewDeck->setShortcuts(settingsCache->shortcuts().getShortcut(
"TabDeckEditor/aNewDeck",
QKeySequence::New));
connect(aNewDeck, SIGNAL(triggered()), this, SLOT(actNewDeck()));
aLoadDeck = new QAction(QString(), this);
aLoadDeck->setShortcuts(QKeySequence::Open);
aLoadDeck->setShortcuts(settingsCache->shortcuts().getShortcut(
"TabDeckEditor/aLoadDeck",
QKeySequence::Open));
connect(aLoadDeck, SIGNAL(triggered()), this, SLOT(actLoadDeck()));
aSaveDeck = new QAction(QString(), this);
aSaveDeck->setShortcuts(QKeySequence::Save);
aSaveDeck->setShortcuts(settingsCache->shortcuts().getShortcut(
"TabDeckEditor/aSaveDeck",
QKeySequence::Save));
connect(aSaveDeck, SIGNAL(triggered()), this, SLOT(actSaveDeck()));
aSaveDeckAs = new QAction(QString(), this);
// aSaveDeckAs->setShortcuts(QKeySequence::SaveAs);
connect(aSaveDeckAs, SIGNAL(triggered()), this, SLOT(actSaveDeckAs()));
aLoadDeckFromClipboard = new QAction(QString(), this);
connect(aLoadDeckFromClipboard, SIGNAL(triggered()), this, SLOT(actLoadDeckFromClipboard()));
aLoadDeckFromClipboard->setShortcuts(QKeySequence::Paste);
aLoadDeckFromClipboard->setShortcuts(settingsCache->shortcuts().getShortcut(
"TabDeckEditor/aLoadDeckFromClipboard",
QKeySequence::Paste));
aSaveDeckToClipboard = new QAction(QString(), this);
connect(aSaveDeckToClipboard, SIGNAL(triggered()), this, SLOT(actSaveDeckToClipboard()));
aSaveDeckToClipboard->setShortcuts(QKeySequence::Copy);
aSaveDeckToClipboard->setShortcuts(settingsCache->shortcuts().getShortcut(
"TabDeckEditor/aSaveDeckToClipboard",
QKeySequence::Copy));
aPrintDeck = new QAction(QString(), this);
aPrintDeck->setShortcuts(QKeySequence::Print);
aPrintDeck->setShortcuts(settingsCache->shortcuts().getShortcut(
"TabDeckEditor/aPrintDeck",QKeySequence::Print));
connect(aPrintDeck, SIGNAL(triggered()), this, SLOT(actPrintDeck()));
aAnalyzeDeck = new QAction(QString(), this);
connect(aAnalyzeDeck, SIGNAL(triggered()), this, SLOT(actAnalyzeDeck()));
aClose = new QAction(QString(), this);
@ -514,7 +532,9 @@ void TabDeckEditor::retranslateUi()
aClearFilterAll->setText(tr("&Clear all filters"));
aClearFilterOne->setText(tr("Delete selected"));
aClearFilterOne->setShortcut(QKeySequence("Backspace"));
aClearFilterOne->setShortcuts(settingsCache->shortcuts().getShortcut(
"TabDeckEditor/aClearFilterOne",
QKeySequence("Backspace")));
nameLabel->setText(tr("Deck &name:"));
commentsLabel->setText(tr("&Comments:"));
@ -533,17 +553,27 @@ void TabDeckEditor::retranslateUi()
aAnalyzeDeck->setText(tr("&Analyze deck on deckstats.net"));
aOpenCustomFolder->setText(tr("Open custom image folder"));
aClose->setText(tr("&Close"));
aClose->setShortcut(QKeySequence("Ctrl+Q"));
aClose->setShortcuts(settingsCache->shortcuts().getShortcut(
"TabDeckEditor/aClose",
QKeySequence("Ctrl+Q")));
aAddCard->setText(tr("Add card to &maindeck"));
aAddCardToSideboard->setText(tr("Add card to &sideboard"));
aRemoveCard->setText(tr("&Remove row"));
aRemoveCard->setShortcut(QKeySequence("Del"));
aRemoveCard->setShortcuts(settingsCache->shortcuts().getShortcut(
"TabDeckEditor/aRemoveCard",
QKeySequence("Del")));
aIncrement->setText(tr("&Increment number"));
aIncrement->setShortcut(QKeySequence("+"));
aIncrement->setShortcuts(settingsCache->shortcuts().getShortcut(
"TabDeckEditor/aIncrement",
QKeySequence("+")));
aDecrement->setText(tr("&Decrement number"));
aDecrement->setShortcut(QKeySequence("-"));
aDecrement->setShortcuts(settingsCache->shortcuts().getShortcut(
"TabDeckEditor/aDecrement",
QKeySequence("-")));
deckMenu->setTitle(tr("&Deck Editor"));
dbMenu->setTitle(tr("C&ard Database"));

View file

@ -125,9 +125,13 @@ DeckViewContainer::DeckViewContainer(int _playerId, TabGame *parent)
void DeckViewContainer::retranslateUi()
{
loadLocalButton->setText(tr("Load local deck"));
loadLocalButton->setShortcut(QKeySequence("Ctrl+O"));
loadLocalButton->setShortcut(settingsCache->shortcuts().getSingleShortcut(
"DeckViewContainer/loadLocalButton",
QKeySequence("Ctrl+O")));
loadRemoteButton->setText(tr("Load deck from server"));
loadRemoteButton->setShortcut(QKeySequence("Ctrl+Alt+O"));
loadRemoteButton->setShortcut(settingsCache->shortcuts().getSingleShortcut(
"DeckViewContainer/loadRemoteButton",
QKeySequence("Ctrl+Alt+O")));
readyStartButton->setText(tr("Ready to s&tart"));
updateSideboardLockButtonText();
}
@ -469,12 +473,12 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor, QList<AbstractClient *> &_client
QAction *temp = new QAction(QString(), this);
connect(temp, SIGNAL(triggered()), this, SLOT(actPhaseAction()));
switch (i) {
case 0: temp->setShortcut(QKeySequence("F5")); break;
case 2: temp->setShortcut(QKeySequence("F6")); break;
case 3: temp->setShortcut(QKeySequence("F7")); break;
case 4: temp->setShortcut(QKeySequence("F8")); break;
case 9: temp->setShortcut(QKeySequence("F9")); break;
case 10: temp->setShortcut(QKeySequence("F10")); break;
case 0: temp->setShortcuts(settingsCache->shortcuts().getShortcut("TabGame/phase0" ,QKeySequence("F5"))); break;
case 2: temp->setShortcuts(settingsCache->shortcuts().getShortcut("TabGame/phase2" ,QKeySequence("F6"))); break;
case 3: temp->setShortcuts(settingsCache->shortcuts().getShortcut("TabGame/phase3" ,QKeySequence("F7"))); break;
case 4: temp->setShortcuts(settingsCache->shortcuts().getShortcut("TabGame/phase4" ,QKeySequence("F8"))); break;
case 9: temp->setShortcuts(settingsCache->shortcuts().getShortcut("TabGame/phase9" ,QKeySequence("F9"))); break;
case 10:temp->setShortcuts(settingsCache->shortcuts().getShortcut("TabGame/phase10" ,QKeySequence("F10"))); break;
default: ;
}
phasesMenu->addAction(temp);
@ -545,37 +549,57 @@ void TabGame::retranslateUi()
gameMenu->setTitle(tr("&Game"));
if (aNextPhase) {
aNextPhase->setText(tr("Next &phase"));
aNextPhase->setShortcuts(QList<QKeySequence>() << QKeySequence("Ctrl+Space") << QKeySequence("Tab"));
aNextPhase->setShortcuts(settingsCache->shortcuts().getShortcut(
"TabGame/aNextPhase",
QList<QKeySequence>()
<< QKeySequence("Ctrl+Space")
<< QKeySequence("Tab")));
}
if (aNextTurn) {
aNextTurn->setText(tr("Next &turn"));
aNextTurn->setShortcuts(QList<QKeySequence>() << QKeySequence("Ctrl+Return") << QKeySequence("Ctrl+Enter"));
aNextTurn->setShortcuts(settingsCache->shortcuts().getShortcut(
"TabGame/aNextTurn",
QList<QKeySequence>()
<< QKeySequence("Ctrl+Return")
<< QKeySequence("Ctrl+Enter")));
}
if (aRemoveLocalArrows) {
aRemoveLocalArrows->setText(tr("&Remove all local arrows"));
aRemoveLocalArrows->setShortcut(QKeySequence("Ctrl+R"));
aRemoveLocalArrows->setShortcuts(settingsCache->shortcuts().getShortcut(
"TabGame/aRemoveLocalArrows",
QKeySequence("Ctrl+R")));
}
if (aRotateViewCW) {
aRotateViewCW->setText(tr("Rotate View Cl&ockwise"));
aRotateViewCW->setShortcut(QKeySequence("Ctrl+]"));
aRotateViewCW->setShortcuts(settingsCache->shortcuts().getShortcut(
"TabGame/aRotateViewCW",
QKeySequence("Ctrl+]")));
}
if (aRotateViewCCW) {
aRotateViewCCW->setText(tr("Rotate View Co&unterclockwise"));
aRotateViewCCW->setShortcut(QKeySequence("Ctrl+["));
aRotateViewCCW->setShortcuts(settingsCache->shortcuts().getShortcut(
"TabGame/aRotateViewCCW",
QKeySequence("Ctrl+[")));
}
if (aGameInfo)
aGameInfo->setText(tr("Game &information"));
if (aConcede) {
aConcede->setText(tr("&Concede"));
aConcede->setShortcut(QKeySequence("F2"));
aConcede->setShortcuts(settingsCache->shortcuts().getShortcut(
"TabGame/aRotateViewCCW",
QKeySequence("F2")));
}
if (aLeaveGame) {
aLeaveGame->setText(tr("&Leave game"));
aLeaveGame->setShortcut(QKeySequence("Ctrl+Q"));
aLeaveGame->setShortcuts(settingsCache->shortcuts().getShortcut(
"TabGame/aLeaveGame",
QKeySequence("Ctrl+Q")));
}
if (aCloseReplay) {
aCloseReplay->setText(tr("C&lose replay"));
aCloseReplay->setShortcut(QKeySequence("Ctrl+Q"));
aCloseReplay->setShortcuts(settingsCache->shortcuts().getShortcut(
"TabGame/aCloseReplay",
QKeySequence("Ctrl+Q")));
}
if (sayLabel)

View file

@ -59,7 +59,7 @@ TabRoom::TabRoom(TabSupervisor *_tabSupervisor, AbstractClient *_client, ServerI
QMenu *chatSettingsMenu = new QMenu(this);
aClearChat = chatSettingsMenu->addAction(QString());
aClearChat->setShortcut(QKeySequence("F12"));
aClearChat->setShortcuts(settingsCache->shortcuts().getShortcut("tab_room/aClearChat", QKeySequence("F12")));
connect(aClearChat, SIGNAL(triggered()), this, SLOT(actClearChat()));
chatSettingsMenu->addSeparator();

View file

@ -458,7 +458,7 @@ void MainWindow::retranslateUi()
aWatchReplay->setText(tr("&Watch replay..."));
aDeckEditor->setText(tr("&Deck editor"));
aFullScreen->setText(tr("&Full screen"));
aFullScreen->setShortcut(QKeySequence("Ctrl+F"));
aFullScreen->setShortcuts(settingsCache->shortcuts().getShortcut("MainWindow/aFullScreen", QKeySequence("Ctrl+F")));
aRegister->setText(tr("&Register to server..."));
aSettings->setText(tr("&Settings..."));
aExit->setText(tr("&Exit"));

View file

@ -13,6 +13,7 @@ SET(oracle_SOURCES
src/oracleimporter.cpp
../cockatrice/src/carddatabase.cpp
../cockatrice/src/settingscache.cpp
../cockatrice/src/shortcutssettings.cpp
../cockatrice/src/qt-json/json.cpp
)