Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Donald Haase
Cockatrice
Commits
b0bf94e3
Commit
b0bf94e3
authored
Aug 08, 2015
by
marco
Browse files
Shorcut read from settings
parent
644ea048
Changes
14
Show whitespace changes
Inline
Side-by-side
cockatrice/CMakeLists.txt
View file @
b0bf94e3
...
...
@@ -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
}
)
...
...
cockatrice/src/abstractcounter.cpp
View file @
b0bf94e3
#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"
)));
}
}
...
...
cockatrice/src/dlg_load_deck_from_clipboard.cpp
View file @
b0bf94e3
...
...
@@ -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
);
...
...
cockatrice/src/gameview.cpp
View file @
b0bf94e3
#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
);
...
...
cockatrice/src/player.cpp
View file @
b0bf94e3
...
...
@@ -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
()));
}
}
...
...
cockatrice/src/settingscache.cpp
View file @
b0bf94e3
...
...
@@ -6,17 +6,17 @@
#include
<QDesktopServices>
#endif
QString
SettingsCache
::
get
Layouts
SettingsPath
()
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
=
get
Layouts
SettingsPath
();
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
=
get
Layouts
SettingsPath
();
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
=
get
Layouts
SettingsPath
();
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
=
get
Layouts
SettingsPath
();
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
=
get
Layouts
SettingsPath
();
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
=
get
Layouts
SettingsPath
();
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
);
}
...
...
cockatrice/src/settingscache.h
View file @
b0bf94e3
...
...
@@ -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
get
Layouts
SettingsPath
();
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
);
...
...
cockatrice/src/shortcutssettings.cpp
0 → 100644
View file @
b0bf94e3
#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
);
}
cockatrice/src/shortcutssettings.h
0 → 100644
View file @
b0bf94e3
#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
cockatrice/src/tab_deck_editor.cpp
View file @
b0bf94e3
...
...
@@ -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"
));
...
...
cockatrice/src/tab_game.cpp
View file @
b0bf94e3
...
...
@@ -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
->
setShortcut
s
(
settingsCache
->
shortcuts
().
getShortcut
(
"TabGame/phase0"
,
QKeySequence
(
"F5"
))
)
;
break
;
case
2
:
temp
->
setShortcut
s
(
settingsCache
->
shortcuts
().
getShortcut
(
"TabGame/phase2"
,
QKeySequence
(
"F6"
))
)
;
break
;
case
3
:
temp
->
setShortcut
s
(
settingsCache
->
shortcuts
().
getShortcut
(
"TabGame/phase3"
,
QKeySequence
(
"F7"
))
)
;
break
;
case
4
:
temp
->
setShortcut
s
(
settingsCache
->
shortcuts
().
getShortcut
(
"TabGame/phase4"
,
QKeySequence
(
"F8"
))
)
;
break
;
case
9
:
temp
->
setShortcut
s
(
settingsCache
->
shortcuts
().
getShortcut
(
"TabGame/phase9"
,
QKeySequence
(
"F9"
))
)
;
break
;
case
10
:
temp
->
setShortcut
s
(
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
)
...
...
cockatrice/src/tab_room.cpp
View file @
b0bf94e3
...
...
@@ -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
->
setShortcut
s
(
settingsCache
->
shortcuts
().
getShortcut
(
"tab_room/aClearChat"
,
QKeySequence
(
"F12"
))
)
;
connect
(
aClearChat
,
SIGNAL
(
triggered
()),
this
,
SLOT
(
actClearChat
()));
chatSettingsMenu
->
addSeparator
();
...
...
cockatrice/src/window_main.cpp
View file @
b0bf94e3
...
...
@@ -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
->
setShortcut
s
(
settingsCache
->
shortcuts
().
getShortcut
(
"MainWindow/aFullScreen"
,
QKeySequence
(
"Ctrl+F"
))
)
;
aRegister
->
setText
(
tr
(
"&Register to server..."
));
aSettings
->
setText
(
tr
(
"&Settings..."
));
aExit
->
setText
(
tr
(
"&Exit"
));
...
...
oracle/CMakeLists.txt
View file @
b0bf94e3
...
...
@@ -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
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment