Commit graph

404 commits

Author SHA1 Message Date
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
Olivier Teulière
86860a9f80 RackWidget: inherit from QFrame instead of QWidget 2012-08-26 22:18:42 +02:00
Olivier Teulière
d693a53910 TileLayout: respect the margins and alignment 2012-08-26 22:18:42 +02:00
Olivier Teulière
aa557f8121 Improve the handling of favorite players 2012-08-26 22:18:36 +02:00
Olivier Teulière
ee31179864 StatsWidget: add the players ranking 2012-08-26 22:18:32 +02:00
Olivier Teulière
8e1c55c79d StatsWidget: use the player name for the title of the columns. Also hide some rows depending on the game type. 2012-08-26 22:18:32 +02:00
Olivier Teulière
24bf44779a StatsWidget: display some column names even when there is no game 2012-08-26 22:18:31 +02:00
Olivier Teulière
fb2a160d7b StatsWidget: improve the tooltips 2012-08-26 22:18:22 +02:00
Olivier Teulière
80a2e9ce9c StatsWidget: various improvements.
Main changes
 - clean model/view separation
 - code simplification
 - no multi-line cells anymore
 - possibility to change the orientation of the table
 - use of bold font to highlight "top moves"
 - use of colors to highlight some important details
2012-08-26 22:18:22 +02:00
Olivier Teulière
25f3bccdd1 TileWidget: make sure the font is at least one pixel wide 2012-06-10 23:34:23 +02:00
Olivier Teulière
fdc1478cf4 Arbitration: disable controls for a finished game only in the last turn 2012-06-09 19:18:43 +02:00
Olivier Teulière
3a18a78970 Fixed make dist 2012-06-04 23:04:07 +02:00
Olivier Teulière
4c76ffe8bc Moved the "Favorite players" window to a dedicated file, and added CSV import/export 2012-06-04 23:04:06 +02:00
Olivier Teulière
a4d5709d16 Catch exceptions during the auto-save 2012-06-04 23:04:06 +02:00
Olivier Teulière
e88de64ac9 Stats window: display the table number instead of the row number 2012-05-30 08:14:18 +02:00
Olivier Teulière
2b6b85cce3 Arbitration: allow removing penalties 2012-05-20 22:12:42 +02:00
Olivier Teulière
7868593cb2 Do not always reject completely a rack containing letters not in the bag anymore.
This could be a rack containing an incomplete input sequence for a tile...
2012-05-16 22:07:55 +02:00
Olivier Teulière
0c1634d530 Arbitration: do not accept blindly any rack in Intermediate state.
This fixes a bug with languages using multichar tiles.
2012-05-16 22:07:55 +02:00
Olivier Teulière
a07d39fc22 New statistics window, still quite unpolished. 2012-05-06 23:31:49 +02:00
Olivier Teulière
f7a7eab3a3 Arbitration: when a player is selected, automatically switch to the corresponding history tab 2012-05-06 23:23:52 +02:00
Olivier Teulière
1ad1ef7425 Arbitration: use the same solo-related settings as in duplicate mode 2012-05-05 19:58:31 +02:00