- Improved the error message when the dictionary cannot be loaded at startup
- Updated the french translation
- Made some Game fields private
- Added more constness
- Removed logiv from the History class
- Used BOOST_FOREACH to simplify loops
- Remove useless annotations and doxygen blocks
- Added some constness
- Marked Training::setRack() as deprecated
- Improved compilation order in game/
- New (optional) dependency on the libconfig library, to save/load configuration files.
- On Unix, the location of the configuration file respects the XDG Base Directory Specification.
- The contrib system automatically fetches and builds libconfig for Windows cross-compilation
- Fixed make distcheck
- Fixed a crash on Windows
- Do not authorize words if the cross-checks are invalid (it was possible when playing a joker)
- Fixed detextion of invalid moves
- Improved unit tests, and fixed a bug in one of them
Qt interface:
- Do not allow playing a word if the coordinates are missing
- Better focus
- Be more explicit if the dictionary name is missing
- Changed the colour of the joker on the board, instead of displaying it in lower case
- Incorrect words are now refused by default
- Changed the way words are input: the case is no longer relevant,
and the coordinates are in a separate control
- Explain the problem when a word is refused
- Updated the French translation
- Embed the program icon into the executable on Windows: the icon is not visible in Windows explorer
- Fixed gettext configuration on Windows. The translations now appear, but the accents still don't display correctly.
- Fixed a few translation issues
- Initialize the random numbers generator, and print the seed value
- Handle properly Qt builds without STL support
- Save the position of the main window
- Got rid of the useless toolbar
- Better size of the preferences dialog
- Hopefully fixed translation issues on Windows
- The Settings class throws an exception when asked for a non-existing setting
- Display the Eliot icon
- Improved printing
- Allow changing the level of computer players
- Generate automatically a default name for players
- Translate Qt's own strings (only works on Linux at the moment)
- Throw an exception if a regular expresison is invalid
- Handle the exception in callers code
Game:
- Fixed a bug in setRackRandom()
Qt interface:
- Display the dictionary name in the status bar
- Implemented printing
- Translation of the interface into French. The menus have temporarily lost their accelerator keys in English.
- regexp search results are now in uppercase, like other results
- the regexp search indicates if there are more results than the maximum
allowed
Qt interface:
- new window with some dictionary tools: check word, word+1 and regexp search
- Added auxiliary windows for the history and the external board
- Gave a title to auxiliary windows and remember their position (more or less) and size
- Auxiliary windows do not survive anymore after the main one
- Preferences are now stored in a sensible place
- Ensure unicity of players names (in the interface only, not the core)
- Update the main window title with the game type
- Display the player name in the history
- The history widget is now able not to align the rack and the corresponding word
- The dictionary path is remembered in the preferences
- Ask for confirmation when loading a dictionary in the middle of a game
- Preview tiles are coloured differently, and joker characters are in lowercase
- New PlayerTabWidget control to simplify the code in MainWindow
- Simplification and uniformization of signal handling when the Game object is changed or updated
- Improved the general layout a little bit (but the resizing behaviour is far from perfect)
- the multiplayer modes are more or less playable
- the training mode is not playable at all
- the current layout is still experimental
- many dialogs and options are missing
- tested on Linux only
There are still hundreds of things to do...