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
b2ab2c6e
Commit
b2ab2c6e
authored
Aug 20, 2015
by
Zach
Browse files
Merge pull request #1382 from marcofernandezheras/Customizable-shortcuts
Customizable shortcuts
parents
1ef90418
c6aba5a6
Changes
31
Expand all
Hide whitespace changes
Inline
Side-by-side
cockatrice/CMakeLists.txt
View file @
b2ab2c6e
...
...
@@ -94,6 +94,9 @@ SET(cockatrice_SOURCES
src/qt-json/json.cpp
src/soundengine.cpp
src/pending_command.cpp
src/shortcutssettings.cpp
src/sequenceEdit/sequenceedit.cpp
src/sequenceEdit/shortcutstab.cpp
${
VERSION_STRING_CPP
}
)
...
...
cockatrice/cockatrice.qrc
View file @
b2ab2c6e
This diff is collapsed.
Click to expand it.
cockatrice/resources/icon_config_shorcuts.svg
0 → 100644
View file @
b2ab2c6e
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc=
"http://purl.org/dc/elements/1.1/"
xmlns:cc=
"http://creativecommons.org/ns#"
xmlns:rdf=
"http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg=
"http://www.w3.org/2000/svg"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
xmlns:sodipodi=
"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape=
"http://www.inkscape.org/namespaces/inkscape"
width=
"500"
height=
"500"
id=
"svg2"
version=
"1.1"
inkscape:version=
"0.91 r13725"
sodipodi:docname=
"icon_config_shorcuts.svg"
>
<defs
id=
"defs4"
>
<inkscape:path-effect
effect=
"bend_path"
id=
"path-effect3618"
is_visible=
"true"
bendpath=
"m 142.49072,814.69439 c 81.91729,17.90777 153.31508,14.77655 218.89021,0"
prop_scale=
"1"
scale_y_rel=
"false"
vertical=
"false"
bendpath-nodetypes=
"cc"
/>
<inkscape:perspective
sodipodi:type=
"inkscape:persp3d"
inkscape:vp_x=
"0 : 526.18109 : 1"
inkscape:vp_y=
"0 : 1000 : 0"
inkscape:vp_z=
"744.09448 : 526.18109 : 1"
inkscape:persp3d-origin=
"372.04724 : 350.78739 : 1"
id=
"perspective10"
/>
<inkscape:perspective
id=
"perspective4226"
inkscape:persp3d-origin=
"0.5 : 0.33333333 : 1"
inkscape:vp_z=
"1 : 0.5 : 1"
inkscape:vp_y=
"0 : 1000 : 0"
inkscape:vp_x=
"0 : 0.5 : 1"
sodipodi:type=
"inkscape:persp3d"
/>
<linearGradient
inkscape:collect=
"always"
xlink:href=
"#linearGradient6464"
id=
"linearGradient6470"
x1=
"32.090908"
y1=
"1.8181819"
x2=
"31.09091"
y2=
"62.909088"
gradientUnits=
"userSpaceOnUse"
gradientTransform=
"translate(0,-0.1818182)"
/>
<linearGradient
id=
"linearGradient6464"
>
<stop
style=
"stop-color:#0061ff;stop-opacity:1;"
offset=
"0"
id=
"stop6466"
/>
<stop
style=
"stop-color:#001c4c;stop-opacity:1;"
offset=
"1"
id=
"stop6468"
/>
</linearGradient>
<linearGradient
inkscape:collect=
"always"
xlink:href=
"#linearGradient6482"
id=
"linearGradient6488"
x1=
"32.18182"
y1=
"3.2835093"
x2=
"32.18182"
y2=
"13.02554"
gradientUnits=
"userSpaceOnUse"
gradientTransform=
"matrix(1.0281354,0,0,1.0429299,-0.9963584,-0.6864152)"
/>
<linearGradient
id=
"linearGradient6482"
>
<stop
style=
"stop-color:#ffffff;stop-opacity:1;"
offset=
"0"
id=
"stop6484"
/>
<stop
style=
"stop-color:#00ff00;stop-opacity:0;"
offset=
"1"
id=
"stop6486"
/>
</linearGradient>
<linearGradient
y2=
"13.02554"
x2=
"32.18182"
y1=
"3.2835093"
x1=
"32.18182"
gradientTransform=
"matrix(1.0281354,0,0,1.0429299,-0.9963584,-0.6864152)"
gradientUnits=
"userSpaceOnUse"
id=
"linearGradient4241"
xlink:href=
"#linearGradient6482"
inkscape:collect=
"always"
/>
</defs>
<sodipodi:namedview
id=
"base"
pagecolor=
"#ffffff"
bordercolor=
"#666666"
borderopacity=
"1.0"
inkscape:pageopacity=
"0.0"
inkscape:pageshadow=
"2"
inkscape:zoom=
"0.42293617"
inkscape:cx=
"401.93458"
inkscape:cy=
"251.13063"
inkscape:document-units=
"px"
inkscape:current-layer=
"layer1"
showgrid=
"false"
inkscape:window-width=
"1280"
inkscape:window-height=
"745"
inkscape:window-x=
"0"
inkscape:window-y=
"0"
inkscape:window-maximized=
"1"
/>
<metadata
id=
"metadata7"
>
<rdf:RDF>
<cc:Work
rdf:about=
""
>
<dc:format>
image/svg+xml
</dc:format>
<dc:type
rdf:resource=
"http://purl.org/dc/dcmitype/StillImage"
/>
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label=
"Ebene 1"
inkscape:groupmode=
"layer"
id=
"layer1"
transform=
"translate(0,-552.36218)"
>
<g
transform=
"matrix(7.8163235,0,0,7.8163235,-0.83292805,550.81868)"
id=
"g4214"
>
<rect
ry=
"5.6363635"
y=
"1.6363637"
x=
"1.2727273"
height=
"61.090908"
width=
"61.636364"
id=
"rect6462"
style=
"fill:url(#linearGradient6470);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-opacity:1"
/>
<rect
ry=
"4.7325583"
y=
"2.7380548"
x=
"2.1926003"
height=
"13.251164"
width=
"59.796619"
id=
"rect6472"
style=
"fill:url(#linearGradient4241);fill-opacity:1;fill-rule:nonzero;stroke:none"
/>
</g>
<image
width=
"330.20697"
height=
"335.80368"
preserveAspectRatio=
"none"
xlink:href=
"data:image/png;base64,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 "
id=
"image4221"
x=
"89.958641"
y=
"628.24109"
/>
</g>
</svg>
cockatrice/src/abstractcounter.cpp
View file @
b2ab2c6e
#include
"abstractcounter.h"
#include
"player.h"
#include
"settingscache.h"
#include
<QPainter>
#include
<QMenu>
#include
<QAction>
...
...
@@ -17,6 +18,8 @@ AbstractCounter::AbstractCounter(Player *_player, int _id, const QString &_name,
setAcceptHoverEvents
(
true
);
#endif
shortcutActive
=
false
;
if
(
player
->
getLocal
())
{
menu
=
new
QMenu
(
name
);
aSet
=
new
QAction
(
this
);
...
...
@@ -39,6 +42,8 @@ AbstractCounter::AbstractCounter(Player *_player, int _id, const QString &_name,
}
else
menu
=
0
;
connect
(
&
settingsCache
->
shortcuts
(),
SIGNAL
(
shortCutchanged
()),
this
,
SLOT
(
refreshShortcuts
()));
refreshShortcuts
();
retranslateUi
();
}
...
...
@@ -65,14 +70,16 @@ void AbstractCounter::retranslateUi()
void
AbstractCounter
::
setShortcutsActive
()
{
if
(
name
==
"life"
)
{
aSet
->
setShortcut
(
QKeySequence
(
"Ctrl+L"
));
aDec
->
setShortcut
(
QKeySequence
(
"F11"
));
aInc
->
setShortcut
(
QKeySequence
(
"F12"
));
shortcutActive
=
true
;
aSet
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aSet"
));
aDec
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aDec"
));
aInc
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aInc"
));
}
}
void
AbstractCounter
::
setShortcutsInactive
()
{
shortcutActive
=
false
;
if
(
name
==
"life"
)
{
aSet
->
setShortcut
(
QKeySequence
());
aDec
->
setShortcut
(
QKeySequence
());
...
...
@@ -80,6 +87,12 @@ void AbstractCounter::setShortcutsInactive()
}
}
void
AbstractCounter
::
refreshShortcuts
()
{
if
(
shortcutActive
)
setShortcutsActive
();
}
void
AbstractCounter
::
setValue
(
int
_value
)
{
value
=
_value
;
...
...
cockatrice/src/abstractcounter.h
View file @
b2ab2c6e
...
...
@@ -26,6 +26,7 @@ private:
bool
dialogSemaphore
,
deleteAfterDialog
;
bool
shownInCounterArea
;
private
slots
:
void
refreshShortcuts
();
void
incrementCounter
();
void
setCounter
();
public:
...
...
@@ -44,6 +45,7 @@ public:
void
setShortcutsActive
();
void
setShortcutsInactive
();
bool
shortcutActive
;
};
#endif
cockatrice/src/dlg_load_deck_from_clipboard.cpp
View file @
b2ab2c6e
...
...
@@ -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,6 @@ DlgLoadDeckFromClipboard::DlgLoadDeckFromClipboard(QWidget *parent)
contentsEdit
=
new
QPlainTextEdit
;
refreshButton
=
new
QPushButton
(
tr
(
"&Refresh"
));
refreshButton
->
setShortcut
(
QKeySequence
(
"F5"
));
connect
(
refreshButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
actRefresh
()));
QDialogButtonBox
*
buttonBox
=
new
QDialogButtonBox
(
QDialogButtonBox
::
Ok
|
QDialogButtonBox
::
Cancel
);
...
...
@@ -35,6 +35,8 @@ DlgLoadDeckFromClipboard::DlgLoadDeckFromClipboard(QWidget *parent)
resize
(
500
,
500
);
actRefresh
();
connect
(
&
settingsCache
->
shortcuts
(),
SIGNAL
(
shortCutchanged
()),
this
,
SLOT
(
refreshShortcuts
()));
refreshShortcuts
();
}
void
DlgLoadDeckFromClipboard
::
actRefresh
()
...
...
@@ -42,6 +44,11 @@ void DlgLoadDeckFromClipboard::actRefresh()
contentsEdit
->
setPlainText
(
QApplication
::
clipboard
()
->
text
());
}
void
DlgLoadDeckFromClipboard
::
refreshShortcuts
()
{
refreshButton
->
setShortcut
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"DlgLoadDeckFromClipboard/refreshButton"
));
}
void
DlgLoadDeckFromClipboard
::
actOK
()
{
QString
buffer
=
contentsEdit
->
toPlainText
();
...
...
cockatrice/src/dlg_load_deck_from_clipboard.h
View file @
b2ab2c6e
...
...
@@ -12,6 +12,7 @@ class DlgLoadDeckFromClipboard : public QDialog {
private
slots
:
void
actOK
();
void
actRefresh
();
void
refreshShortcuts
();
private:
DeckLoader
*
deckList
;
public:
...
...
cockatrice/src/dlg_settings.cpp
View file @
b2ab2c6e
...
...
@@ -28,6 +28,7 @@
#include
"settingscache.h"
#include
"priceupdater.h"
#include
"soundengine.h"
#include
"sequenceEdit/shortcutstab.h"
#define LINKING_FAQ_URL "https://github.com/Cockatrice/Cockatrice/wiki/Custom-Download-URLs"
...
...
@@ -863,6 +864,7 @@ DlgSettings::DlgSettings(QWidget *parent)
pagesWidget
->
addWidget
(
new
DeckEditorSettingsPage
);
pagesWidget
->
addWidget
(
new
MessagesSettingsPage
);
pagesWidget
->
addWidget
(
new
SoundSettingsPage
);
pagesWidget
->
addWidget
(
new
ShortcutsTab
);
createIcons
();
contentsWidget
->
setCurrentRow
(
0
);
...
...
@@ -917,6 +919,11 @@ void DlgSettings::createIcons()
soundButton
->
setFlags
(
Qt
::
ItemIsSelectable
|
Qt
::
ItemIsEnabled
);
soundButton
->
setIcon
(
QIcon
(
":/resources/icon_config_sound.svg"
));
shortcutsButton
=
new
QListWidgetItem
(
contentsWidget
);
shortcutsButton
->
setTextAlignment
(
Qt
::
AlignHCenter
);
shortcutsButton
->
setFlags
(
Qt
::
ItemIsSelectable
|
Qt
::
ItemIsEnabled
);
shortcutsButton
->
setIcon
(
QIcon
(
":/resources/icon_config_shorcuts.svg"
));
connect
(
contentsWidget
,
SIGNAL
(
currentItemChanged
(
QListWidgetItem
*
,
QListWidgetItem
*
)),
this
,
SLOT
(
changePage
(
QListWidgetItem
*
,
QListWidgetItem
*
)));
}
...
...
@@ -1026,6 +1033,7 @@ void DlgSettings::retranslateUi()
deckEditorButton
->
setText
(
tr
(
"Deck Editor"
));
messagesButton
->
setText
(
tr
(
"Chat"
));
soundButton
->
setText
(
tr
(
"Sound"
));
shortcutsButton
->
setText
(
tr
(
"Shortcuts"
));
for
(
int
i
=
0
;
i
<
pagesWidget
->
count
();
i
++
)
dynamic_cast
<
AbstractSettingsPage
*>
(
pagesWidget
->
widget
(
i
))
->
retranslateUi
();
...
...
cockatrice/src/dlg_settings.h
View file @
b2ab2c6e
...
...
@@ -224,6 +224,7 @@ private:
QListWidget
*
contentsWidget
;
QStackedWidget
*
pagesWidget
;
QListWidgetItem
*
generalButton
,
*
appearanceButton
,
*
userInterfaceButton
,
*
deckEditorButton
,
*
messagesButton
,
*
soundButton
;
QListWidgetItem
*
shortcutsButton
;
void
createIcons
();
void
retranslateUi
();
protected:
...
...
cockatrice/src/gameview.cpp
View file @
b2ab2c6e
#include
"gameview.h"
#include
"gamescene.h"
#include
"settingscache.h"
#include
<QResizeEvent>
#include
<QAction>
#include
<QRubberBand>
...
...
@@ -19,10 +20,11 @@ GameView::GameView(QGraphicsScene *scene, QWidget *parent)
connect
(
scene
,
SIGNAL
(
sigStopRubberBand
()),
this
,
SLOT
(
stopRubberBand
()));
aCloseMostRecentZoneView
=
new
QAction
(
this
);
aCloseMostRecentZoneView
->
setShortcut
(
QKeySequence
(
"Esc"
));
connect
(
aCloseMostRecentZoneView
,
SIGNAL
(
triggered
()),
scene
,
SLOT
(
closeMostRecentZoneView
()));
addAction
(
aCloseMostRecentZoneView
);
connect
(
&
settingsCache
->
shortcuts
(),
SIGNAL
(
shortCutchanged
()),
this
,
SLOT
(
refreshShortcuts
()));
refreshShortcuts
();
rubberBand
=
new
QRubberBand
(
QRubberBand
::
Rectangle
,
this
);
}
...
...
@@ -59,3 +61,8 @@ void GameView::stopRubberBand()
{
rubberBand
->
hide
();
}
void
GameView
::
refreshShortcuts
()
{
aCloseMostRecentZoneView
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aCloseMostRecentZoneView"
));
}
cockatrice/src/gameview.h
View file @
b2ab2c6e
...
...
@@ -17,6 +17,7 @@ private slots:
void
startRubberBand
(
const
QPointF
&
selectionOrigin
);
void
resizeRubberBand
(
const
QPointF
&
cursorPoint
);
void
stopRubberBand
();
void
refreshShortcuts
();
public
slots
:
void
updateSceneRect
(
const
QRectF
&
rect
);
public:
...
...
cockatrice/src/player.cpp
View file @
b2ab2c6e
...
...
@@ -454,6 +454,8 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, TabGame *_pare
rearrangeZones
();
retranslateUi
();
connect
(
&
settingsCache
->
shortcuts
(),
SIGNAL
(
shortCutchanged
()),
this
,
SLOT
(
refreshShortcuts
()));
refreshShortcuts
();
}
Player
::~
Player
()
...
...
@@ -616,6 +618,7 @@ void Player::retranslateUi()
{
aViewGraveyard
->
setText
(
tr
(
"&View graveyard"
));
aViewRfg
->
setText
(
tr
(
"&View exile"
));
playerMenu
->
setTitle
(
tr
(
"Player
\"
%1
\"
"
).
arg
(
QString
::
fromStdString
(
userInfo
->
name
())));
graveMenu
->
setTitle
(
tr
(
"&Graveyard"
));
rfgMenu
->
setTitle
(
tr
(
"&Exile"
));
...
...
@@ -684,50 +687,45 @@ void Player::retranslateUi()
aPlay
->
setText
(
tr
(
"&Play"
));
aHide
->
setText
(
tr
(
"&Hide"
));
aPlayFacedown
->
setText
(
tr
(
"Play &Face Down"
));
aTap
->
setText
(
tr
(
"&Tap"
));
aUntap
->
setText
(
tr
(
"&Untap"
));
aDoesntUntap
->
setText
(
tr
(
"Toggle &normal untapping"
));
aFlip
->
setText
(
tr
(
"&Flip"
));
aPeek
->
setText
(
tr
(
"&Peek at card face"
));
aClone
->
setText
(
tr
(
"&Clone"
));
aClone
->
setShortcut
(
QKeySequence
(
"Ctrl+J"
));
aAttach
->
setText
(
tr
(
"Attac&h to card..."
));
aAttach
->
setShortcut
(
QKeySequence
(
"Ctrl+A"
));
aUnattach
->
setText
(
tr
(
"Unattac&h"
));
aDrawArrow
->
setText
(
tr
(
"&Draw arrow..."
));
aIncP
->
setText
(
tr
(
"&Increase power"
));
aIncP
->
setShortcut
(
QKeySequence
(
"Ctrl++"
));
aDecP
->
setText
(
tr
(
"&Decrease power"
));
aDecP
->
setShortcut
(
QKeySequence
(
"Ctrl+-"
));
aIncT
->
setText
(
tr
(
"I&ncrease toughness"
));
aIncT
->
setShortcut
(
QKeySequence
(
"Alt++"
));
aDecT
->
setText
(
tr
(
"D&ecrease toughness"
));
aDecT
->
setShortcut
(
QKeySequence
(
"Alt+-"
));
aIncPT
->
setText
(
tr
(
"In&crease power and toughness"
));
aIncPT
->
setShortcut
(
QKeySequence
(
"Ctrl+Alt++"
));
aDecPT
->
setText
(
tr
(
"Dec&rease power and toughness"
));
aDecPT
->
setShortcut
(
QKeySequence
(
"Ctrl+Alt+-"
));
aSetPT
->
setText
(
tr
(
"Set &power and toughness..."
));
aSetPT
->
setShortcut
(
QKeySequence
(
"Ctrl+P"
));
aSetAnnotation
->
setText
(
tr
(
"&Set annotation..."
));
QStringList
counterColors
;
counterColors
.
append
(
tr
(
"Red"
));
counterColors
.
append
(
tr
(
"Yellow"
));
counterColors
.
append
(
tr
(
"Green"
));
for
(
int
i
=
0
;
i
<
aAddCounter
.
size
();
++
i
)
for
(
int
i
=
0
;
i
<
aAddCounter
.
size
();
++
i
){
aAddCounter
[
i
]
->
setText
(
tr
(
"&Add counter (%1)"
).
arg
(
counterColors
[
i
]));
for
(
int
i
=
0
;
i
<
aRemoveCounter
.
size
();
++
i
)
}
for
(
int
i
=
0
;
i
<
aRemoveCounter
.
size
();
++
i
){
aRemoveCounter
[
i
]
->
setText
(
tr
(
"&Remove counter (%1)"
).
arg
(
counterColors
[
i
]));
for
(
int
i
=
0
;
i
<
aSetCounter
.
size
();
++
i
)
}
for
(
int
i
=
0
;
i
<
aSetCounter
.
size
();
++
i
){
aSetCounter
[
i
]
->
setText
(
tr
(
"&Set counters (%1)..."
).
arg
(
counterColors
[
i
]));
}
aMoveToTopLibrary
->
setText
(
tr
(
"&Top of library"
));
aMoveToBottomLibrary
->
setText
(
tr
(
"&Bottom of library"
));
aMoveToHand
->
setText
(
tr
(
"&Hand"
));
aMoveToGraveyard
->
setText
(
tr
(
"&Graveyard"
));
aMoveToGraveyard
->
setShortcut
(
QKeySequence
(
"Ctrl+Del"
));
aMoveToExile
->
setText
(
tr
(
"&Exile"
));
QMapIterator
<
QString
,
CardZone
*>
zoneIterator
(
zones
);
while
(
zoneIterator
.
hasNext
())
zoneIterator
.
next
().
value
()
->
retranslateUi
();
...
...
@@ -737,24 +735,73 @@ 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"
));
aPlay
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aPlay"
));
aTap
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aTap"
));
aUntap
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aUntap"
));
aDoesntUntap
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aDoesntUntap"
));
aFlip
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aFlip"
));
aPeek
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aPeek"
));
aClone
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aClone"
));
aAttach
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aAttach"
));
aUnattach
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aUnattach"
));
aDrawArrow
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aDrawArrow"
));
aIncP
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/IncP"
));
aDecP
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aDecP"
));
aIncT
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aIncT"
));
aDecT
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aDecT"
));
aIncPT
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aIncPT"
));
aDecPT
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aDecPT"
));
aSetPT
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aSetPT"
));
aSetAnnotation
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aSetAnnotation"
));
aMoveToTopLibrary
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aMoveToTopLibrary"
));
aMoveToBottomLibrary
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aMoveToBottomLibrary"
));
aMoveToHand
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aMoveToHand"
));
aMoveToGraveyard
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aMoveToGraveyard"
));
aMoveToExile
->
setShortcuts
(
settingsCache
->
shortcuts
().
getShortcut
(
"Player/aMoveToExile"
));
QList
<
QKeySequence
>
addCCShortCuts
;
addCCShortCuts
.
append
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aCCRed"
));
addCCShortCuts
.
append
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aCCYellow"
));
addCCShortCuts
.
append
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aCCGreen"
));
QList
<
QKeySequence
>
removeCCShortCuts
;
removeCCShortCuts
.
append
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aRCRed"
));
removeCCShortCuts
.
append
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aRCYellow"
));
removeCCShortCuts
.
append
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aRCGreen"
));
QList
<
QKeySequence
>
setCCShortCuts
;
setCCShortCuts
.
append
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aSCRed"
));
setCCShortCuts
.
append
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aSCYellow"
));
setCCShortCuts
.
append
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aSCGreen"
));
for
(
int
i
=
0
;
i
<
aAddCounter
.
size
();
++
i
){
aAddCounter
[
i
]
->
setShortcut
(
addCCShortCuts
.
at
(
i
));
}
for
(
int
i
=
0
;
i
<
aRemoveCounter
.
size
();
++
i
){
aRemoveCounter
[
i
]
->
setShortcut
(
removeCCShortCuts
.
at
(
i
));
}
for
(
int
i
=
0
;
i
<
aSetCounter
.
size
();
++
i
){
aSetCounter
[
i
]
->
setShortcut
(
setCCShortCuts
.
at
(
i
));
}
QMapIterator
<
int
,
AbstractCounter
*>
counterIterator
(
counters
);
while
(
counterIterator
.
hasNext
())
counterIterator
.
next
().
value
()
->
setShortcutsActive
();
aViewSideboard
->
setShortcut
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aViewSideboard"
));
aViewLibrary
->
setShortcut
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aViewLibrary"
));
aViewTopCards
->
setShortcut
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aViewTopCards"
));
aViewGraveyard
->
setShortcut
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aViewGraveyard"
));
aDrawCard
->
setShortcut
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aDrawCard"
));
aDrawCards
->
setShortcut
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aDrawCards"
));
aUndoDraw
->
setShortcut
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aUndoDraw"
));
aMulligan
->
setShortcut
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aMulligan"
));
aShuffle
->
setShortcut
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aShuffle"
));
aUntapAll
->
setShortcut
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aUntapAll"
));
aRollDie
->
setShortcut
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aRollDie"
));
aCreateToken
->
setShortcut
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aCreateToken"
));
aCreateAnotherToken
->
setShortcut
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aCreateAnotherToken"
));
aAlwaysRevealTopCard
->
setShortcut
(
settingsCache
->
shortcuts
().
getSingleShortcut
(
"Player/aAlwaysRevealTopCard"
));
}
void
Player
::
setShortcutsInactive
()
...
...
@@ -788,10 +835,12 @@ void Player::initSayMenu()
QSettings
settings
;
settings
.
beginGroup
(
"messages"
);
int
count
=
settings
.
value
(
"count"
,
0
).
toInt
();
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
(
"Ctrl+"
+
QString
::
number
((
i
+
1
)
%
10
)));
}
connect
(
newAction
,
SIGNAL
(
triggered
()),
this
,
SLOT
(
actSayMessage
()));
sayMenu
->
addAction
(
newAction
);
}
...
...
@@ -805,13 +854,16 @@ void Player::setDeck(const DeckLoader &_deck)
createPredefinedTokenMenu
->
clear
();
predefinedTokens
.
clear
();
InnerDecklistNode
*
tokenZone
=
dynamic_cast
<
InnerDecklistNode
*>
(
deck
->
getRoot
()
->
findChild
(
"tokens"
));
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
)));
}
connect
(
a
,
SIGNAL
(
triggered
()),
this
,
SLOT
(
actCreatePredefinedToken
()));
}
}
...
...
@@ -2238,6 +2290,12 @@ void Player::actPlayFacedown()
playCard
(
game
->
getActiveCard
(),
true
,
false
);
}
void
Player
::
refreshShortcuts
()
{
if
(
shortcutsActive
)
setShortcutsActive
();
}
void
Player
::
updateCardMenu
(
CardItem
*
card
)
{
QMenu
*
cardMenu
=
card
->
getCardMenu
();
...
...
cockatrice/src/player.h
View file @
b2ab2c6e
...
...
@@ -159,6 +159,7 @@ private slots:
void
actPlay
();
void
actHide
();
void
actPlayFacedown
();
void
refreshShortcuts
();
private:
TabGame
*
game
;
...
...
cockatrice/src/sequenceEdit/sequenceedit.cpp
0 → 100644
View file @
b2ab2c6e
#include
"sequenceedit.h"
#include
"../settingscache.h"
#include
<QLineEdit>
#include
<QPushButton>
#include
<QHBoxLayout>
#include
<QEvent>
#include
<QKeyEvent>
#include
<QToolTip>
SequenceEdit
::
SequenceEdit
(
QString
_shorcutName
,
QWidget
*
parent
)
:
QWidget
(
parent
)
{
shorcutName
=
_shorcutName
;
currentKey
=
0
;
maxKeys
=
4
;
keys
=
0
;
valid
=
false
;
lineEdit
=
new
QLineEdit
(
this
);
clearButton
=
new
QPushButton
(
""
,
this
);
defaultButton
=
new
QPushButton
(
""
,
this
);
lineEdit
->
setMinimumWidth
(
70
);
clearButton
->
setMaximumWidth
(
lineEdit
->
height
());
defaultButton
->
setMaximumWidth
(
lineEdit
->
height
());
clearButton
->
setMaximumHeight
(
lineEdit
->
height
());
defaultButton
->
setMaximumHeight
(
lineEdit
->
height
());
clearButton
->
setIcon
(
QIcon
(
":/resources/icon_clearsearch.svg"
));
defaultButton
->
setIcon
(
QIcon
(
":/resources/icon_update.png"
));
clearButton
->
setAttribute
(
Qt
::
WA_LayoutUsesWidgetRect
);
defaultButton
->
setAttribute
(
Qt
::
WA_LayoutUsesWidgetRect
);
QHBoxLayout
*
layout
=
new
QHBoxLayout
(
this
);
layout
->
setContentsMargins
(
0
,
0
,
0
,
0
);
layout
->
setSpacing
(
1
);
layout
->
addWidget
(
lineEdit
);
layout
->
addWidget
(
clearButton
);
layout
->
addWidget
(
defaultButton
);
connect
(
clearButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
removeLastShortcut
()));
connect
(
defaultButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
restoreDefault
()));
lineEdit
->
installEventFilter
(
this
);
lineEdit
->
setText
(
settingsCache
->
shortcuts
().
getShortcutString
(
shorcutName
));
}
QString
SequenceEdit
::
getSecuence
()
{
return
lineEdit
->
text
();
}
void
SequenceEdit
::
removeLastShortcut
()
{
QString
secuences
=
lineEdit
->
text
();
if
(
!
secuences
.
isEmpty
())
{
if
(
secuences
.
lastIndexOf
(
";"
)
>
0
){
QString
valid
=
secuences
.
left
(
secuences
.
lastIndexOf
(
";"
));
lineEdit
->
setText
(
valid
);
}
else
lineEdit
->
clear
();
updateSettings
();
}
}
void
SequenceEdit
::
restoreDefault
()
{
lineEdit
->
setText
(
settingsCache
->
shortcuts
().
getDefaultShortcutString
(
shorcutName
));
updateSettings
();
}
bool
SequenceEdit
::
eventFilter
(
QObject
*
,
QEvent
*
event
)
{
if
(
event
->
type
()
==
QEvent
::
KeyPress
||
event
->
type
()
==
QEvent
::
KeyRelease
)
{
QKeyEvent
*
keyEvent
=
(
QKeyEvent
*
)
event
;
if
(
event
->
type
()
==
QEvent
::
KeyPress
&&
!
keyEvent
->
isAutoRepeat
())
processKey
(
keyEvent
);
else
if
(
event
->
type
()
==
QEvent
::
KeyRelease
&&
!
keyEvent
->
isAutoRepeat
())
finishShortcut
();
return
true
;
}
return
false
;
}
void
SequenceEdit
::
processKey
(
QKeyEvent
*
e
)
{
int
key
=
e
->
key
();
if
(
key
!=
Qt
::
Key_Control
&&
key
!=
Qt
::
Key_Shift
&&
key
!=
Qt
::
Key_Meta
&&
key
!=
Qt
::
Key_Alt
)
{
valid
=
true
;
key
|=
translateModifiers
(
e
->
modifiers
(),
e
->
text
());
}
keys
=
key
;
currentKey
++
;
if
(
currentKey
>=
key
)
finishShortcut
();
}
int
SequenceEdit
::
translateModifiers
(
Qt
::
KeyboardModifiers
state
,
const
QString
&
text
)
{
int
result
=
0
;
// The shift modifier only counts when it is not used to type a symbol
// that is only reachable using the shift key anyway
if
((
state
&
Qt
::
ShiftModifier
)
&&
(
text
.
isEmpty
()
||
!
text
.
at
(
0
).
isPrint
()
||
text
.
at
(
0
).
isLetterOrNumber
()
||
text
.
at
(
0
).
isSpace
()))
result
|=
Qt
::
SHIFT
;
if
(
state
&
Qt
::
ControlModifier
)
result
|=
Qt
::
CTRL
;
if
(
state
&
Qt
::
MetaModifier
)
result
|=
Qt
::
META
;
if
(
state
&
Qt
::
AltModifier
)
result
|=
Qt
::
ALT
;
return
result
;
}
void
SequenceEdit
::
finishShortcut
()
{
QKeySequence
secuence
(
keys
);
if
(
!
secuence
.
isEmpty
()
&&
valid
)
{
QString
secuenceString
=
secuence
.
toString
();
if
(
settingsCache
->
shortcuts
().
isValid
(
shorcutName
,
secuenceString
))
{
if
(
!
lineEdit
->
text
().
isEmpty
())
{
if
(
lineEdit
->
text
().
contains
(
secuenceString
))
return
;
lineEdit
->
setText
(
lineEdit
->
text
()
+
";"
);
}
lineEdit
->
setText
(
lineEdit
->
text
()
+
secuenceString
);
}
else
{
QToolTip
::
showText
(
lineEdit
->
mapToGlobal
(
QPoint
()),
tr
(
"Shortcut already in use"
));
}
}
currentKey
=
0
;
keys
=
0
;
valid
=
false
;
updateSettings
();
}
void
SequenceEdit
::
updateSettings
()
{
settingsCache
->
shortcuts
().
setShortcuts
(
shorcutName
,
lineEdit
->
text
());
}
cockatrice/src/sequenceEdit/sequenceedit.h
0 → 100644
View file @
b2ab2c6e
#ifndef SECUENCEEDIT_H
#define SECUENCEEDIT_H
#include
<QWidget>
#include
<QKeySequence>
class
QLineEdit
;
class
QPushButton
;
class
QEvent
;
class
SequenceEdit
:
public
QWidget
{
Q_OBJECT
public:
SequenceEdit
(
QString
_shorcutName
,
QWidget
*
parent
=
0
);
QString
getSecuence
();
signals:
private
slots
:
void
removeLastShortcut
();
void
restoreDefault
();
protected:
bool
eventFilter
(
QObject
*
,
QEvent
*
event
);
private:
QString
shorcutName
;
QLineEdit
*
lineEdit
;
QPushButton
*
clearButton
;
QPushButton
*
defaultButton
;
int
keys
;
int
currentKey
;
int
maxKeys
;
bool
valid
;
void
processKey
(
QKeyEvent
*
e
);
int
translateModifiers
(
Qt
::
KeyboardModifiers
state
,
const
QString
&
text
);
void
finishShortcut
();
void
updateSettings
();
};
#endif // SECUENCEEDIT_H
cockatrice/src/sequenceEdit/shortcutstab.cpp
0 → 100644
View file @
b2ab2c6e
#include
"shortcutstab.h"
#include
"ui_shortcutstab.h"
ShortcutsTab
::
ShortcutsTab
()
:
ui
(
new
Ui
::
shortcutsTab
)
{
ui
->
setupUi
(
this
);
}
void
ShortcutsTab
::
retranslateUi
()
{
ui
->
retranslateUi
(
this
);
}
ShortcutsTab
::~
ShortcutsTab
()
{
delete
ui
;
}
cockatrice/src/sequenceEdit/shortcutstab.h
0 → 100644
View file @
b2ab2c6e
#ifndef SHORTCUTSTAB_H
#define SHORTCUTSTAB_H
#include
<QWidget>
#include
"../dlg_settings.h"
namespace
Ui
{
class
shortcutsTab
;
}
class
ShortcutsTab
:
public
AbstractSettingsPage
{
Q_OBJECT
public:
ShortcutsTab
();
void
retranslateUi
();
~
ShortcutsTab
();
private:
Ui
::
shortcutsTab
*
ui
;
};
#endif // SHORTCUTSTAB_H
cockatrice/src/sequenceEdit/ui_shortcutstab.h
0 → 100644
View file @
b2ab2c6e
This diff is collapsed.
Click to expand it.
cockatrice/src/settingscache.cpp
View file @
b2ab2c6e
...
...
@@ -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
();
...
...
@@ -119,8 +120,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
();
...
...
@@ -505,8 +506,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
);
}
...
...
@@ -515,8 +516,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
);
}
...
...
@@ -525,8 +526,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
);
}
...
...
@@ -535,8 +536,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
);
}
...
...
@@ -545,8 +546,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 @
b2ab2c6e
...
...
@@ -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"
...
...
@@ -46,7 +47,7 @@ signals:
void
chatMentionCompleterChanged
();
private:
QSettings
*
settings
;
ShortcutsSettings
*
shortcutsSettings
;
QByteArray
mainWindowGeometry
;
QString
lang
;
QString
deckPath
,
replaysPath
,
picsPath
,
cardDatabasePath
,
tokenDatabasePath
;
...
...
@@ -104,7 +105,7 @@ private:
int
keepalive
;
QByteArray
deckEditorLayoutState
,
deckEditorGeometry
;
QSize
deckEditorFilterSize
,
deckEditorDeckSize
,
deckEditorCardSize
;
QString
get
Layouts
SettingsPath
();
QString
getSettingsPath
();
public:
SettingsCache
();
...
...
@@ -190,6 +191,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
);
...
...
Prev
1
2
Next
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