Olivier Teulière
59b739d292
GameSignals: new signal emitted when the rack of the current player changes.
...
We connect this signal to the RackWidget, which allows a more intuitive
behaviour (in particular, the visual rack is now updated when the
Shuffle button is clicked).
2013-01-09 18:52:11 +01:00
Olivier Teulière
c76c84e059
GameSignals: emit the gameRackChanged() signal even if this is not the last turn
2013-01-09 18:52:11 +01:00
Olivier Teulière
05150c4e86
TrainingWidget: fix an old bug (the "New rack" button was behaving like "Complement")
2013-01-09 17:15:18 +01:00
Olivier Teulière
b48f8c17d7
MainWindow: fix bugs introduced in 99e7628fed
2013-01-09 17:12:37 +01:00
Olivier Teulière
c285e37354
RackWidget: update the visual rack only when the game rack changes.
...
This avoids losing the state when any unrelated update happens in the
game (for example when clicking on the board to set the coordinates).
2013-01-09 16:39:10 +01:00
Olivier Teulière
f37b3f7d84
GameSignals: simplify slightly
2013-01-09 16:23:33 +01:00
Olivier Teulière
99e7628fed
Move game-related signals out of MainWindow, into the new dedicated class GameSignals
2013-01-09 16:23:33 +01:00
Olivier Teulière
7cd6313dac
Topping: integrate hints
2013-01-08 16:04:24 +01:00
Olivier Teulière
b80ca397ad
Topping: implement sorting properly
2013-01-08 16:04:23 +01:00
Olivier Teulière
b5d175fc5b
Topping: use a different method to play the move.
...
This allows providing additional time information
2013-01-08 16:04:23 +01:00
Olivier Teulière
686b896396
PlayModel: new signal to indicate that a move is played.
...
This allows moving the logic out of PlayWordMediator (it will make it
easier to have a different behaviour for different mode types).
2013-01-08 16:04:23 +01:00
Olivier Teulière
6a553bf2f5
PlayModel: remove a TODO
2013-01-08 16:04:23 +01:00
Olivier Teulière
0a7aa2ce8e
New dialog to display hints to the user. Not yet used.
2013-01-08 16:04:23 +01:00
Olivier Teulière
4153d45377
Favorite players: add buttons to move players up and down
2013-01-08 16:04:23 +01:00
Olivier Teulière
dd75556902
PlayWordMediator: set correctly the initial state
2013-01-08 16:04:23 +01:00
Olivier Teulière
4b077bbcd6
PlayWordMediator: fix header inclusion guards
2013-01-08 16:04:13 +01:00
Olivier Teulière
bbcb79625d
Stats: sort by ranking when the table is flipped
2013-01-08 15:55:59 +01:00
Olivier Teulière
579106828c
Stats: do not display the played move in the header when the table is flipped
2013-01-08 15:55:59 +01:00
Olivier Teulière
2fc948189f
Stats: fix a bug when the table is flipped.
...
The hidden rows/columns where not correctly updated.
2013-01-08 15:55:59 +01:00
Olivier Teulière
0c87ae7cde
Update some m4 macros with the latest available version
2013-01-06 17:46:35 +01:00
Olivier Teulière
76fefdf71d
New "master game" feature.
...
When a master game is defined, the racks and moves played from the
current game will be the same as in the master game. This can be
practical to replay a game in a different mode, or to replay at home a
duplicate game played in a club, for example.
2012-12-30 16:38:07 +01:00
Olivier Teulière
6e3c04b954
TileWidget: better colour for the shaded and played tiles
2012-12-30 01:53:14 +01:00
Olivier Teulière
ac0abba535
Topping: new widget dedicated to topping mode.
...
It is currently very ugly, and quite buggy...
2012-12-29 19:36:38 +01:00
Olivier Teulière
c4635c66f9
RackWidget: better-looking drag & drop, inspired by Firefox tabs
2012-12-29 19:36:38 +01:00
Olivier Teulière
66615b54ac
TileWidget: remove a duplicated line
2012-12-29 19:36:38 +01:00
Olivier Teulière
b070336886
NewGame: set tooltips for the game modes
2012-12-29 17:51:52 +01:00
Olivier Teulière
681a7b28cb
New topping mode (very beginning)
2012-12-29 17:51:16 +01:00
Olivier Teulière
5441007db1
New BoardLayout class to wrap the board layout (size and special squares).
...
Until now there is no user-visible change, but it should make it much
easier to add custom layouts.
2012-12-29 17:50:18 +01:00
Olivier Teulière
c775682881
RackWidget: hide tiles of the word being played.
...
This gives the nice impression that tiles are moved from the rack to the
board.
2012-12-29 17:48:15 +01:00
Olivier Teulière
fb8e464d7c
Display the word being played on the board
2012-12-29 17:46:18 +01:00
Olivier Teulière
a9f5935285
BoardWidget: preliminary version of played word preview
2012-12-29 17:46:18 +01:00
Olivier Teulière
8d85df630b
PlayModel now uses a Move internally
2012-12-29 17:46:18 +01:00
Olivier Teulière
0b9d8ecfbb
RackWidget: initial support for drag & drop of tiles in the rack
2012-12-29 17:46:18 +01:00
Olivier Teulière
d2b39b3a0a
Add a visual rack below the main board
2012-12-29 17:46:17 +01:00
Olivier Teulière
d55b3b2bdf
Use toLower() and toUpper()
2012-12-29 17:46:17 +01:00
Olivier Teulière
655169fda6
Remove a useless include
2012-12-29 17:45:44 +01:00
Olivier Teulière
71b0a61547
Fix a typo
2012-12-29 17:44:39 +01:00
Olivier Teulière
19387540cd
Arbitration: new search filter, filtering points
2012-12-29 17:44:39 +01:00
Olivier Teulière
487dd213ce
New game dialog: disable the up/down buttons when there is no selection
2012-12-29 17:44:39 +01:00
Olivier Teulière
844105a8e8
New game dialog: allow moving the selected players up and down
2012-12-29 17:44:39 +01:00
Olivier Teulière
d686f1a083
PlayModel: add a moveChanged() signal for convenience
2012-12-18 16:03:44 +01:00
Olivier Teulière
7f5651b4bb
RackWidget: add a setRack() slot
2012-12-18 16:03:44 +01:00
Olivier Teulière
536da10a97
Fix a typo
2012-12-18 16:03:44 +01:00
Olivier Teulière
3f269e5bd4
PlayModel: support for word changes in addition to coordinates.
...
This is not used anywhere yet.
2012-12-18 16:03:37 +01:00
Olivier Teulière
1e551207fb
PlayModel: do not emit the coordChanged() signal when no change occurred
2012-12-18 01:26:15 +01:00
Olivier Teulière
c31b789fc5
PlayModel: remove a useless getter
2012-12-18 01:00:53 +01:00
Olivier Teulière
3f10e9faba
PlayModel: exchange the order of the arguments for the coordChanged() signal
2012-12-18 00:57:04 +01:00
Olivier Teulière
c1332760d7
Rename CoordModel as PlayModel
2012-12-18 00:48:14 +01:00
Olivier Teulière
4bcd106577
RackWidget: center the tiles in the widget
2012-12-17 22:53:24 +01:00
Olivier Teulière
c21c109ddb
BoardWidget: center horizontally
2012-12-17 22:53:07 +01:00
Olivier Teulière
bf5ae9fc91
TileLayout: fix the row offset on lines other than the first one
2012-12-17 22:32:44 +01:00
Olivier Teulière
b5c36bed26
TileLayout: fix a bug (the rect offset was not taken into account)
2012-12-17 20:20:18 +01:00
Olivier Teulière
50a2ab7996
Arbitration: disable solo-related actions when automatic handling is active
2012-12-06 00:11:07 +01:00
Olivier Teulière
2cc0b2bc39
Preferences: add a checkbox for the new automatic solos handling option
2012-12-06 00:10:29 +01:00
Olivier Teulière
b0a9f44ab7
Fix a window placement bug.
...
Placing Eliot on a secondary monitor, and restarting it later when the
monitor is unplugged, made the window invisible (it was still at the
old position, thus off screen).
2012-11-13 12:38:27 +01:00
Olivier Teulière
f267b045b6
New option to start the timer automatically when the rack changes
2012-11-13 12:38:27 +01:00
Olivier Teulière
e355acc4fb
Reset the timer automatically when a new turn starts
2012-11-13 12:38:27 +01:00
Olivier Teulière
c89e91010c
Stats: enable sorting when the table is flipped.
...
This allows sorting the players by rank, for example.
2012-11-13 12:38:27 +01:00
Olivier Teulière
fa55eab82e
Stats: simplify the flipping code using the decorator pattern
2012-11-13 12:38:27 +01:00
Olivier Teulière
3f2568db5d
Stats: allow flipping the table
2012-11-13 12:38:27 +01:00
Olivier Teulière
63c7128d3e
Arbitration: display the solos, warnings and penalties in the players view
2012-11-13 12:38:27 +01:00
Olivier Teulière
c5fd006b9c
History widget: show solos before warnings and penalties
2012-11-13 12:38:27 +01:00
Olivier Teulière
5676d9c78f
Ignore requests to start the timer when it is already active
2012-11-13 12:38:27 +01:00
Olivier Teulière
f131fa9050
Fix a timer bug
2012-11-13 12:38:26 +01:00
Olivier Teulière
7f31fe8b0e
Fix a visual glitch on the status bar
2012-11-13 12:38:26 +01:00
Olivier Teulière
f76bd47882
Stats: show the played move with the turn number
2012-10-22 17:23:25 +02:00
Olivier Teulière
02249c214e
Various fixes for problems detected by Coverity.
...
Most of them where not actual problems, though.
2012-10-13 13:49:40 +02:00
Olivier Teulière
f6ced69c9e
Make sure some class members are initialized (bugs reported by Coverity)
2012-10-11 23:21:32 +02:00
Olivier Teulière
0315080d30
Fix small layout issues (use less margin in some places)
2012-10-11 14:20:32 +02:00
Olivier Teulière
4200e33c17
Change the copyright years for all the files modified in 2012
2012-10-11 13:45:24 +02:00
Olivier Teulière
07631b9a80
A few more string fixes
2012-10-07 13:00:08 +02:00
Olivier Teulière
c5591da9e5
Fix various strings
2012-10-06 22:17:43 +02:00
Olivier Teulière
e7aabdc4a2
Fix compilation warnings
2012-10-06 18:45:46 +02:00
Olivier Teulière
43471a52ac
BagWidget: merge the 2 implementations in a single file.
...
Note that only BagWidget2 is used at the moment. In the future, the
other one will probably disappear.
2012-10-06 17:49:36 +02:00
Olivier Teulière
e55f05e325
Arbitration: fix a focus problem
2012-10-06 17:49:36 +02:00
Olivier Teulière
97f4355502
PlayerWidget: improve focus behaviour and ergonomy
2012-10-06 17:49:36 +02:00
Olivier Teulière
18aa839f11
Validators: always force the input to upper case
2012-10-06 17:49:36 +02:00
Olivier Teulière
d3f642567d
Reuse a variable
2012-10-06 17:49:36 +02:00
Olivier Teulière
1e94c56067
Rename slots to indicate what the methods actually do
2012-10-06 17:49:36 +02:00
Olivier Teulière
ca5c6cff0d
Do not use Qt auto-connect feature
2012-10-06 17:49:36 +02:00
Olivier Teulière
d3c9c504ba
Fix a typo, causing a wrong error message to be displayed
2012-10-06 17:49:36 +02:00
Olivier Teulière
471dcf90e1
Rename Turn into TurnData (step 2)
2012-10-06 17:49:35 +02:00
Olivier Teulière
fa345a9f7b
Rename Turn into TurnData (step 1)
2012-10-06 17:49:35 +02:00
Olivier Teulière
65ed44d66d
Cosmetics
2012-10-06 17:49:35 +02:00
Olivier Teulière
77fcfab8a5
Stats: add an option to lock the columns sizes
2012-10-06 17:49:35 +02:00
Olivier Teulière
ef5f8e63e9
Do not cache the score of the player.
...
Caching is almost useless here, and makes the code more complex.
2012-10-06 17:49:35 +02:00
Olivier Teulière
40944884e6
Remove Player::getPoints()
2012-10-06 17:49:35 +02:00
Olivier Teulière
c700f39ac7
Stats: display end game points for a free game
2012-10-06 17:49:35 +02:00
Olivier Teulière
b53295c782
Stats: compute the ranking based on the final score, not the intermediate one
2012-10-06 17:49:35 +02:00
Olivier Teulière
2ab95b5ed9
Get rid of old CVS files
2012-10-06 01:44:33 +02:00
Olivier Teulière
db14ee0622
Training: do not use the auto-connect feature.
...
The code is now slightly more verbose, but easier to follow and
less sensitive to typos.
2012-10-05 16:10:41 +02:00
Olivier Teulière
75025c33df
Training: improve usability
2012-10-05 16:10:41 +02:00
Olivier Teulière
e4f9c03ca7
Training: define key accelerators for the main buttons
2012-10-05 16:10:41 +02:00
Olivier Teulière
1232eda206
Set the allColumnsShowFocus property to true on some views
2012-10-05 16:10:41 +02:00
Olivier Teulière
f4b78e09b1
Arbitration: restore properly the focused player
2012-10-05 16:10:41 +02:00
Olivier Teulière
56028c8651
Arbitration: new popup menu entry to suppress an assigned move
2012-10-05 16:10:41 +02:00
Olivier Teulière
a800863c1f
Arbitration: do not handle solos automatically.
...
The arbitrator has to specify them manually. Otherwise, we cannot know
when a turn is complete and thus we cannot determine if solos can/should
be applied.
2012-10-05 12:52:42 +02:00
Olivier Teulière
bcc2aedbff
Improve the detection of finished games for duplicate and arbitration modes
2012-10-05 01:42:46 +02:00
Olivier Teulière
ed152a380d
Arbitration: correctly set the state of buttons for past turns
2012-10-05 00:27:34 +02:00
Olivier Teulière
6ec9568020
Arbitration: better label for a popup menu entry
2012-10-05 00:27:10 +02:00