Status:
It works well, but there are still a few details to improve/fix
More details about the changes:
- New dependency on Arabica and Libxml2 to parse the XML
- Loading the old format is still supported for this release, but won't be supported anymore in the next one
- Games are now only saved in the new format
- In training mode, the player is now created externally, like in the other modes
- Avoid using GameIO (the one from game/) whenever possible
- Do not use a FILE* argument anymore when loading a game
- Throw and catch exceptions correctly when a game cannot be loaded or saved
- The non-regression tests now use a new method to print the game history
- Added a reference to the web site in the About box
- Fixed an encoding problem on an error message
- Explained better the error message saying to select a dictionary
- New PlayWordMediator class, to encapsulate the behaviour of the controls
used to play a word
- The Training mode now has input fields to play words directly, without
choosing them in the search results
- Improved the error message when the dictionary cannot be loaded at startup
- Updated the french translation
- Made some Game fields private
- Added more constness
- 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
- 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