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