From f3f60195ba3500c7d12b73f18343273e364025a1 Mon Sep 17 00:00:00 2001 From: John Fultz Date: Sun, 29 Dec 2013 19:33:26 -0600 Subject: Add diagonal symmetry to board setup pane. A simple feature, turned on by default, which makes setting up the board even faster. --- quacker/boardsetup.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'quacker/boardsetup.cpp') 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(); } -- cgit v1.2.3