summaryrefslogtreecommitdiff
path: root/quacker/boardsetup.cpp
diff options
context:
space:
mode:
authorJohn Fultz <jfultz@wolfram.com>2013-12-29 19:33:26 -0600
committerJohn Fultz <jfultz@wolfram.com>2013-12-29 19:33:26 -0600
commitf3f60195ba3500c7d12b73f18343273e364025a1 (patch)
tree089bd4b3db5132b81c28f895eb1ce833520c0c10 /quacker/boardsetup.cpp
parentecae4ba252c9b78d6b4fa6d14d2e694b8f71306a (diff)
Add diagonal symmetry to board setup pane.
A simple feature, turned on by default, which makes setting up the board even faster.
Diffstat (limited to 'quacker/boardsetup.cpp')
-rw-r--r--quacker/boardsetup.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/quacker/boardsetup.cpp b/quacker/boardsetup.cpp
index 69b5097..c5dfd14 100644
--- a/quacker/boardsetup.cpp
+++ b/quacker/boardsetup.cpp
@@ -83,10 +83,11 @@ void BoardSetupFrame::setBoard(const Quackle::Board &board)
m_board = board;
}
-void BoardSetupFrame::setSymmetry(bool horizontal, bool vertical)
+void BoardSetupFrame::setSymmetry(bool horizontal, bool vertical, bool diagonal)
{
horizontalSymmetry = horizontal;
verticalSymmetry = vertical;
+ diagonalSymmetry = diagonal;
}
void BoardSetupFrame::parametersChanged()
@@ -148,6 +149,13 @@ void BoardSetupFrame::tileClicked(const QSize &tileLocation, const QMouseEvent *
setMultipliers(height - 1 - row, col, wordMultiplier, letterMultiplier);
if (horizontalSymmetry && verticalSymmetry)
setMultipliers(height - 1 - row, width - 1 - col, wordMultiplier, letterMultiplier);
+ if (diagonalSymmetry && (row != col) && (height - 1 - row != col))
+ {
+ setMultipliers(col, row, wordMultiplier, letterMultiplier);
+ setMultipliers(col, width - 1 - row, wordMultiplier, letterMultiplier);
+ setMultipliers(height - 1 - col, row, wordMultiplier, letterMultiplier);
+ setMultipliers(height - 1 - col, width - 1 - row, wordMultiplier, letterMultiplier);
+ }
prepare();
}