Commit graph

627 commits

Author SHA1 Message Date
Olivier Teulière
b1ed3215d9 Rewrote the navigation system, to make it more powerful and easier to understand.
Internally, commands are now stored a bit differently: some commands
which were at the end of a turn (like the players rack in duplicate
mode) are now at the beginning. But from a user point of view, there is
no visible difference, except some details in training mode (and the new
behaviour is arguably better :)).
Only (known) problem: after loading a game saved before this commit,
navigating in the game history may be less nice (in particular, racks
may not be fully restored).
2012-02-21 08:22:33 +01:00
Olivier Teulière
e915e5f2cf New "auto-executable" flag for commands, not yet used 2012-02-21 08:22:33 +01:00
Olivier Teulière
de2d2777e2 The TurnCmd class does not inherit from Command anymore 2012-02-21 08:22:33 +01:00
Olivier Teulière
59fac223f4 Renamed some methods 2012-02-21 08:22:32 +01:00
Olivier Teulière
038910e5df Removed a few useless assignations and Tile copies 2012-02-21 08:22:32 +01:00
Olivier Teulière
66eec913c9 Added several assertions 2012-02-21 08:22:32 +01:00
Olivier Teulière
32957abfcc When playing a word, forbid using a joker to specify a letter on the board (even a joker).
This is just a convention, but a reasonable one :)
2012-02-21 08:22:32 +01:00
Olivier Teulière
6e2c665bdf Simplify the handling of jokers in the Round class.
This also fixes a very old (but minor) bug: when a word containing a
joker was played "manually" (i.e. not via a round generated by the
Results class but via the Game::checkPlayedWord() method), subsequent
search results using this joker on the board would display it as a
joker, not as a normal tile.
2012-02-21 08:22:32 +01:00
Olivier Teulière
b855c5f64e Simplify slightly the Round API 2012-02-21 08:22:32 +01:00
Olivier Teulière
0be2769dfa New utility methods to get the lowercase (joker) or uppercase (no joker) variant of a tile 2012-02-21 08:22:32 +01:00
Olivier Teulière
0d45fc6227 When showing a preview on the board, do not hijack the normal internal data 2012-02-21 08:22:32 +01:00
Olivier Teulière
0ae77a659e Cosmetics 2012-02-21 08:22:32 +01:00
Olivier Teulière
221158e19a Simplify the Tile::operator==() method 2012-02-19 13:07:29 +01:00
Olivier Teulière
1336e3b65d Board: use the isVacant() method a bit more 2012-02-19 13:07:29 +01:00
Olivier Teulière
16a9a9b1a9 Removed Game::setTestTound() and Game::removeTestRound().
They are still available via the PublicGame class for interfaces.
2012-02-19 13:07:29 +01:00
Olivier Teulière
24d601543a Removed a useless include 2012-02-19 13:07:29 +01:00
Olivier Teulière
bf42c49850 Added loggers to most classes 2012-02-19 13:07:29 +01:00
Olivier Teulière
684880acbe Moved debug.h to dic/ 2012-02-19 13:07:29 +01:00
Olivier Teulière
a1c6a917a4 Get rid of the UI file for the favourite players: the same can be done with a few lines of code 2012-02-18 01:20:55 +01:00
Olivier Teulière
d45ad3325c Simplify the New Game dialog by removing various controls 2012-02-18 01:19:24 +01:00
Olivier Teulière
9d987974cd If the added fav player already exists, generate a new name 2012-02-18 01:19:24 +01:00
Olivier Teulière
33814ef058 Start editing the name directly after adding a player 2012-02-18 01:19:24 +01:00
Olivier Teulière
03f20dd7be Allow deleting players with the Del key only if there is a corresponding popup menu entry 2012-02-18 01:19:24 +01:00
Olivier Teulière
0daa773268 Do not allow duplicate entries in the players tables 2012-02-18 01:19:24 +01:00
Olivier Teulière
37715c1411 Extract PlayerDef from the PlayerTableHelper class 2012-02-18 01:19:24 +01:00
Olivier Teulière
b02d25dee7 New action, to mark a player as favourite 2012-02-18 01:19:24 +01:00
Olivier Teulière
987ff4c15f NewGame: new button to add favourite players. Also added a popup menu to delete players more easily. 2012-02-18 01:19:24 +01:00
Olivier Teulière
2cf5e29347 New dialog to define the favourite players 2012-02-18 01:19:24 +01:00
Olivier Teulière
323344a674 New helper class to help dealing with a players table 2012-02-16 22:17:26 +01:00
Olivier Teulière
c231cd4b5d Remove all the selected players, not only the first one 2012-02-16 22:17:26 +01:00
Olivier Teulière
a3084bc8b3 Use a QTableWidget instead of a QTreeView. This simplifies the code a little. 2012-02-16 22:17:26 +01:00
Olivier Teulière
e86d71626c Do not repeat the application name and organization name everywhere 2012-02-16 22:17:23 +01:00
Olivier Teulière
a3b8b9872a Removed (old) debugging code 2012-01-30 08:27:27 +01:00
Olivier Teulière
ea4b4396a8 Add auto-completion on the dictionary path 2012-01-29 23:40:02 +01:00
Olivier Teulière
84c4937d8d The external board now also contains a rack and a timer 2012-01-29 22:47:51 +01:00
Olivier Teulière
0e7880dbbe New Rack widget 2012-01-29 22:47:51 +01:00
Olivier Teulière
54700f71de Added an option to highlight the tiles in the rack, accessible via the context menu 2012-01-29 22:47:51 +01:00
Olivier Teulière
8bbbf32e8f Added an option to show/hide the played tiles, accessible via the context menu 2012-01-29 22:47:51 +01:00
Olivier Teulière
8d9eaf3f3d Use the "visual" bag widget instead of the old one 2012-01-29 22:47:51 +01:00
Olivier Teulière
85e79e0294 TileWidget: change the prototype of tileChanged() and improve the possible states 2012-01-29 22:47:51 +01:00
Olivier Teulière
00a98a7c31 TileWidget: rename some constants to be more explicit 2012-01-29 22:47:51 +01:00
Olivier Teulière
ebea504aa7 TileWidget: avoid a lot of useless repaintings 2012-01-29 22:47:51 +01:00
Olivier Teulière
f6d7661367 TileWidget: get rid of BasicTileWidget and TileWidgetDecorator.
TileWidget now supports all these functionalities, with a much simpler code.
2012-01-29 22:47:51 +01:00
Olivier Teulière
5d62711789 TileWidget: do not display anything on a joker tile that has not yet been played 2012-01-29 22:47:51 +01:00
Olivier Teulière
3aab437022 TileLayout: simplify code using the inherited "spacing" property 2012-01-29 22:47:51 +01:00
Olivier Teulière
c11de9eed5 TileLayout: proper sizeHint() implementation 2012-01-29 22:47:51 +01:00
Olivier Teulière
61f75894da TileLayout: fix the computation of the minimum size 2012-01-29 22:47:51 +01:00
Olivier Teulière
95211525a5 TileLayout: allow forcing the number of lines instead of the number of columns 2012-01-29 22:47:50 +01:00
Olivier Teulière
b45d113157 TileLayout: fix the clear() method 2012-01-29 22:47:50 +01:00
Olivier Teulière
6411b1975d TileLayout: fix a layout bug in "static" mode 2012-01-29 22:47:50 +01:00