Commit graph

128 commits

Author SHA1 Message Date
Olivier Teulière
f3f2d916bb Fixed a few memory leaks 2012-04-28 15:34:37 +02:00
Olivier Teulière
afb45d62c4 Preferences: removed the option to link the rack with the 7+1 dictionary tool 2012-04-28 15:34:36 +02:00
Olivier Teulière
731eca6e9c Do not reset the timer when changing turn, it causes problems in arbitration mode.
In fact, it could be more subtle: the timer should be reset whenever a
new turn is created (and only in this case).
2012-04-16 20:32:57 +02:00
Olivier Teulière
0534e72c0e Only show data relative to the last turn on the external board (and rack) 2012-04-11 20:02:18 +02:00
Olivier Teulière
9f2ea4f340 Dictionary wizard: new button to load the letter values from the current dictionary 2012-04-07 13:29:07 +02:00
Olivier Teulière
b1e7381b39 Players can now have a table number 2012-03-19 22:49:58 +01:00
Olivier Teulière
ff21e64a7f Recreate the preferences dialog every time, to avoid displaying unsaved changes 2012-03-10 18:06:41 +01:00
Olivier Teulière
05a51101db New arbitration mode, dedicate to arbitration of duplicate games.
It is mostly working, but many things are still missing.
In particular:
 - ability to enter (or change) moves for a past turn
 - ability to change the rack (manually, or randomly)
 - ability to add/remove players during the game
 - support for solos, warnings, penalties
 - support for table number
 - more ergonomic interface
 - non regression tests
 - ... and probably bugs to fix
2012-03-10 18:06:41 +01:00
Olivier Teulière
ce5f2b2a8c Move the rack and the timer above the external board (useful when displayed with a projector) 2012-03-04 23:02:28 +01:00
Olivier Teulière
4077a25fa0 Use the GameMoveCmd command 2012-02-25 23:25:40 +01:00
Olivier Teulière
6ac6849bf8 Remove status bar messages automatically after 2s 2012-02-25 21:56:41 +01:00
Olivier Teulière
7195f3415c Warn when loading a game, if there is already an existing game 2012-02-25 21:56:41 +01:00
Olivier Teulière
efb5fddf58 Reset the timer when the current turn changes 2012-02-21 08:22:33 +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
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
e86d71626c Do not repeat the application name and organization name everywhere 2012-02-16 22:17:23 +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
8d9eaf3f3d Use the "visual" bag widget instead of the old one 2012-01-29 22:47:51 +01:00
Olivier Teulière
9d00f873a3 Changed the shortcut to change the dictionary, as it is already used for copy-paste... 2012-01-29 20:05:22 +01:00
Olivier Teulière
a7ef1f0f8c Added preferences to configure the time 2012-01-26 20:57:43 +01:00
Olivier Teulière
b158266acb Added an option to hide the signs (arrow and word preview) on the board.
This is used for the external board, which now shows only the played
words.
2012-01-22 23:55:44 +01:00
Olivier Teulière
2294bcbc80 Added an auxiliary window with the timer 2012-01-21 11:13:26 +01:00
Olivier Teulière
5535717ff4 Moved MainWindow::requestConfirmation() to the QtCommon class 2012-01-20 18:08:12 +01:00
Olivier Teulière
c8db48c1f0 Make the URL clickable in the About dialog 2012-01-20 13:41:17 +01:00
Olivier Teulière
765b57b781 Fixed initialization of the scores widget 2012-01-20 13:41:17 +01:00
Olivier Teulière
22f4341bdd Display information on the remaining letters in the status bar 2012-01-19 23:49:56 +01:00
Olivier Teulière
65501aad44 Display the current turn number in the status bar 2012-01-19 23:49:56 +01:00
Olivier Teulière
855718c6b8 Factorized code 2012-01-19 13:17:08 +01:00
Olivier Teulière
a899df5e46 The Training widget is not in a tab anymore 2012-01-19 11:18:23 +01:00
Olivier Teulière
50b55fb7f0 Create the players and scores widgets only when a new game is started. 2012-01-19 10:43:31 +01:00
Olivier Teulière
c81df46b5e Added a new type of move: NO_MOVE 2012-01-17 00:56:02 +01:00
Olivier Teulière
219b99192d Warn before exiting Eliot when a game is started 2012-01-05 21:08:54 +01:00
Olivier Teulière
5dc491d887 New preference to define a default AI level 2011-12-30 19:33:48 +01:00
Olivier Teulière
f9a7307898 Added a unit test for all the string conversions 2011-07-30 19:49:29 +00:00
Olivier Teulière
03d93c9360 Renamed the string conversion macros, to make chaining more natural. 2011-07-30 19:45:18 +00:00
Olivier Teulière
08516b07d7 Added support for definitions, using an external website 2011-07-28 20:55:48 +00:00
Olivier Teulière
23771f3f71 Indicate the end of the game 2011-01-30 00:23:45 +00:00
Olivier Teulière
0c76b9d781 Simplified the looging macros, and added logs in various key places. 2011-01-29 23:47:20 +00:00
Olivier Teulière
84b69e8919 Ask for a confirmation before starting a new game 2010-10-17 21:24:18 +00:00
Olivier Teulière
81809dd74f - Changed a few strings
- Updated the po files
 - Completed the French translation
2010-05-16 18:12:54 +00:00
Olivier Teulière
80ca8844d9 Generate the dictionary from the wizard, and (optinally) load it.
The wizard is now fully usable.
2010-05-15 12:20:19 +00:00
Olivier Teulière
7cf6e90303 New wizard, for creating a dictionary from the GUI.
The wizard is almost ready... except that the dictionary is not generated yet!
2010-05-15 12:13:35 +00:00
Olivier Teulière
8a1897db7a Mark a string as translatable 2010-03-09 22:32:09 +00:00
Olivier Teulière
6981cd18c2 Changed copyright year 2010-01-30 10:30:08 +00:00
Olivier Teulière
3c7a84d543 Support saving/loading games (any game type) in XML format.
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
2009-11-29 16:01:31 +00:00
Olivier Teulière
eb22343932 Added a missing translation 2009-10-23 20:19:04 +00:00
Olivier Teulière
4d86e236e0 - Fixed an accelerator key in the English version
- 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
2009-02-28 09:24:27 +00:00
Olivier Teulière
ed2a20a3e3 - Allow setting the coordinates of the played word by clicking on the board
- 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
2009-02-19 18:25:17 +00:00
Olivier Teulière
1df3c3ff51 Updated a few copyright dates 2009-01-24 17:44:56 +00:00
Olivier Teulière
e085384e2f - Do not save the splitter position when no game is playing, because the position is not relevant without the players group
- Updated the French translation
2009-01-22 21:41:27 +00:00
Olivier Teulière
e83e4dcc99 - Use splitters to allow the user to resize freely the components of the main window
- Save splitters positions from one session to the next
 - Fixed default focus issues introduced in the previous commit
2009-01-15 20:22:11 +00:00
Olivier Teulière
6a2eca1db1 New icons for the navigation actions, and additional ones for some menu items 2008-12-14 13:27:00 +00:00
Olivier Teulière
0e08cccd41 New preference, to allow linking the rack in training mode to the "Plus 1" dictionary tool 2008-12-14 13:20:38 +00:00
Olivier Teulière
97157b1716 Save the toolbar visibility from one session to the next 2008-12-08 21:38:12 +00:00
Olivier Teulière
846374e37b Allow deactivating the warning before replaying a turn 2008-12-08 21:37:02 +00:00
Olivier Teulière
c4f64c25e1 Improved confirmation dialogs 2008-11-30 21:09:09 +00:00
Olivier Teulière
f6d7804847 - New PublicGame class, intended to be used by the interfaces instead of accessing Game directly
- Migrated the text, Qt and ncurses interfaces to the new PublicGame API.
2008-11-30 20:53:44 +00:00
Olivier Teulière
a79b71f028 When navigating in the history, display the current turn in the status bar 2008-11-30 20:51:05 +00:00
Olivier Teulière
fb4ea0e559 - The actions on the game history are now available in the menu and the toolbar
- The toolbar can be shown/hidden via a menu entry
 - Added icons for all the history actions
 - Ask for confirmation before replaying a turn
2008-11-29 16:40:59 +00:00
Olivier Teulière
675b534e77 - Fixed compilation in debug mode
- Centralized navigation in the game history in the Navigation class
 - The Qt interface now has (very) basic controls to navigate in the history.
2008-11-23 16:55:28 +00:00
Olivier Teulière
4b766d2622 - Bumped version to 1.8-cvs
- Improved the error message when the dictionary cannot be loaded at startup
 - Updated the french translation
 - Made some Game fields private
 - Added more constness
2008-11-22 14:40:25 +00:00
Olivier Teulière
66538b4806 Removed support for the old dictionary format. The code becomes simpler and (very slightly) faster. 2008-11-22 13:11:48 +00:00
Olivier Teulière
5ea1ec4215 Write a message in the status bar when a search is on going (training mode) 2008-11-04 21:31:13 +00:00
Olivier Teulière
0de2e6256f Small fixes here and there 2008-09-27 20:38:33 +00:00
Olivier Teulière
0696a1b4a2 Qt interface:
- 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
2008-09-07 21:06:17 +00:00
Olivier Teulière
3837e548d4 - Updated the INSTALL and NEWS files
- Fixed menu accelerator keys
 - The board font size should be proportional to the board size
2008-09-06 20:06:58 +00:00
Olivier Teulière
990f4c5212 Qt interface:
- 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
2008-09-05 21:31:30 +00:00
Olivier Teulière
f5bde7fb4e - Compilation fix for Windows
- 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)
2008-09-03 17:28:27 +00:00
Olivier Teulière
75a67b28a5 Dic:
- 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.
2008-08-31 11:48:11 +00:00
Olivier Teulière
a32f1b7aaf Dic:
- 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
2008-08-27 21:20:03 +00:00
Olivier Teulière
9afebca0c2 - Allow sorting the training results
- 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
2008-01-26 23:03:32 +00:00
Olivier Teulière
457b368ae7 Qt interface:
- 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
2008-01-26 16:58:46 +00:00
Olivier Teulière
d8780822c2 - Fixed a bug due to the reject sign '-' preventing to load a saved training game
- Qt interface: Loading and saving a game is now supported (it only works in
   training mode, due to limitations in the core)
2008-01-26 10:10:50 +00:00
Olivier Teulière
f0b41f7ee7 Qt interface: First version of a dialog for preferences.
The preferences are not peristent yet.
2008-01-25 18:42:59 +00:00
Olivier Teulière
cba81de777 Qt interface: added support for training mode 2008-01-24 20:18:00 +00:00
Olivier Teulière
a5cefebd3f - New HistoryTabWidget control to display all the histories in a convenient way
- 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)
2008-01-22 15:30:20 +00:00
Olivier Teulière
0bcc2c0930 Very beginning of a Qt interface. Status:
- 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...
2008-01-20 18:40:12 +00:00