Commit graph

431 commits

Author SHA1 Message Date
Olivier Teulière
ce3da4adbb TimerWidget: new "chrono" mode, triggered with Ctrl+click 2013-01-11 11:06:57 +01:00
Olivier Teulière
c34bd76918 RackWidget: fix a bug when the rack is filtered (wrong variable used) 2013-01-11 11:06:56 +01:00
Olivier Teulière
02f284f3ae GameSignals: update member variables correctly when the game is destroyed 2013-01-10 21:42:07 +01:00
Olivier Teulière
b7825e1998 RackWidget: restore the rack properly if drag & drop fails 2013-01-09 18:56:25 +01:00
Olivier Teulière
4111afc04c RackWidget: after a drag & drop, notify the game that the rack has changed.
This allows synchronizing all the controls displaying the player rack
(visual and textual ones).
2013-01-09 18:56:25 +01:00
Olivier Teulière
0763c0771b RackWidget: only allow drag & drop if there is no preview on the board 2013-01-09 18:52:11 +01:00
Olivier Teulière
cedb320f91 Topping:: allow shuffling the rack 2013-01-09 18:52:11 +01:00
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