Commit graph

401 commits

Author SHA1 Message Date
Olivier Teulière
e6c1a180c8 Arbitration: by convention, use negative values to indicate a penalty 2012-05-05 19:45:44 +02:00
Olivier Teulière
6c16f203a5 Warn on game creation before showing the new game dialog, not after 2012-04-29 10:31:30 +02:00
Olivier Teulière
4b4b715a41 New options to desactivate the confirmation dialogs, and rework of the preferences window. 2012-04-29 01:58:43 +02:00
Olivier Teulière
f83b397549 Removed the now useless preference about the default AI level 2012-04-28 15:34:39 +02:00
Olivier Teulière
eaf536b3ba Favorite players: new "Default" column, for automatic inclusion in a new game 2012-04-28 15:34:39 +02:00
Olivier Teulière
094af979c7 Create the new game dialog every time, instead of reusing it 2012-04-28 15:34:39 +02:00
Olivier Teulière
43470edc04 Arbitration: changed some shortcuts, to avoid interferences when typing 2012-04-28 15:34:39 +02:00
Olivier Teulière
c58282faad Arbitration: use a placehoder for the results filter 2012-04-28 15:34:38 +02:00
Olivier Teulière
c3d4f9aa67 Arbitration: do not select the rack after ending the turn 2012-04-28 15:34:38 +02:00
Olivier Teulière
e87018a583 Arbitration: the "Points" column was mistakenly hidden in the players table 2012-04-28 15:34:38 +02:00
Olivier Teulière
917c94fd5e Display the total number of warnings of a player in the corresponding history tab title 2012-04-28 15:34:38 +02:00
Olivier Teulière
a03eaab88a Arbitration: clear the results filter when a new search is performed 2012-04-28 15:34:38 +02:00
Olivier Teulière
81dfee8e55 Emit a beep when the timer reaches the alert level or expires 2012-04-28 15:34:38 +02:00
Olivier Teulière
50855fc104 Arbitration: give the focus on the first search result after a search 2012-04-28 15:34:38 +02:00
Olivier Teulière
27a7cc6846 Arbitration: accept only 7 letters in the rack (or 8, in the game variant) 2012-04-28 15:34:38 +02:00
Olivier Teulière
11db8eb48f Arbitration: accept racks in "intermediate" state 2012-04-28 15:34:38 +02:00
Olivier Teulière
c4fad05ffd Arbitration: new option to deactivate the automatic random rack 2012-04-28 15:34:37 +02:00
Olivier Teulière
c891671588 Arbitration: improve the refreshing of controls when the rack changes 2012-04-28 15:34:37 +02:00
Olivier Teulière
de5783d51a Auto-save the current game regularly, to reduce the loss in case of crash 2012-04-28 15:34:37 +02:00
Olivier Teulière
f3f2d916bb Fixed a few memory leaks 2012-04-28 15:34:37 +02:00
Olivier Teulière
0a2727e767 Added missing headers 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
e8649aae28 Fixed a typo in 0534e72c 2012-04-12 08:47:20 +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
a2ba303307 History widget: display warnings, penalties and solos 2012-04-11 20:02:18 +02:00
Olivier Teulière
cc0fe39c76 HistoryWidget: simplified the handling of columns 2012-04-10 08:51:12 +02:00
Olivier Teulière
7e37cde0c0 Arbitration: after the end of turn, give the focus to the rack and select all the letters 2012-04-10 08:51:12 +02:00
Olivier Teulière
537d00714b Arbitration: allow selecting all the players directly from the players/results tables 2012-04-10 08:51:12 +02:00
Olivier Teulière
4fe2cf3469 Arbitration: really treat the "No move" pseudo-move as if the player had not played 2012-04-08 20:57:47 +02:00
Olivier Teulière
bcd3f73e62 Arbitration: "No move" is now named "Suppress move" 2012-04-08 20:57:46 +02:00
Olivier Teulière
1f4db7a742 Arbitration: various minor improvements related to search results handling 2012-04-08 20:57:46 +02:00
Olivier Teulière
2f7c09ec83 Arbitration: do not consider the "No move" move as a real move assignment 2012-04-08 20:57:46 +02:00
Olivier Teulière
4e5c86ef11 Added shortcuts to some buttons 2012-04-08 20:57:46 +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
e6a2a6c750 Cosmetics 2012-04-07 13:29:07 +02:00
Olivier Teulière
d6a2fc6e4e PublicGame: more direct access to the game current rack 2012-03-26 07:49:25 +02:00
Olivier Teulière
82b5694a59 Split the ArbitrationWidget class into 2 classes, to keep the code manageable 2012-03-26 07:49:25 +02:00
Olivier Teulière
d4c7511ae5 Allow giving warnings and penalties from the interface 2012-03-26 07:49:25 +02:00
Olivier Teulière
7f504671bb Fixed use of uninitialized value 2012-03-26 07:49:24 +02:00
Olivier Teulière
f9ca096dda Disable impossible actions in the popup menu instead of hiding them 2012-03-20 21:16:25 +01:00
Olivier Teulière
893219b164 New method to select players and to assign moves.
A player can now be selected by typing his table number, when the focus
is in the results table. Pressing the Enter key will assign the current
move to the selected player(s).
This allows a very fast assignment of moves.
2012-03-20 20:52:33 +01:00
Olivier Teulière
1dd271b147 Allow filtering several keys with the same filter 2012-03-19 23:14:34 +01:00
Olivier Teulière
b1e7381b39 Players can now have a table number 2012-03-19 22:49:58 +01:00
Olivier Teulière
7539cddf92 Factorize some code using a utility class 2012-03-18 02:45:15 +01:00
Olivier Teulière
e77923674f Arbitration: a click on the master move previews it on the board 2012-03-18 01:00:25 +01:00
Olivier Teulière
35acc7b7a3 New misc_helpers files to group some utility classes
Currently, it contains only the KeyEventFilter class, and a new
ClickableLabel class (not used yet).
2012-03-18 00:37:57 +01:00
Olivier Teulière
96c0497f7b Arbitraion: the rack can be modified only at the last turn 2012-03-17 23:53:40 +01:00
Olivier Teulière
f3b2442cc0 Arbitration: improved the refresh of search results 2012-03-17 23:53:40 +01:00
Olivier Teulière
3a8ac20a0a Arbitration: allow ending the turn even if some players have no assigned move 2012-03-17 23:53:31 +01:00
Olivier Teulière
0fa7bc91c6 Arbitration mode: allow editing the rack manually 2012-03-11 00:24:29 +01:00
Olivier Teulière
25a36ec9cd Arbitration mode: allow setting the rack randomly 2012-03-11 00:24:21 +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
9160e6bc99 New preference to save the search results limit in arbitration mode 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
51622a0012 Make sure the tooltip for the "show definition" menu entry is displayed 2012-03-04 23:02:32 +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
22fd6484f3 Correctly retrieve the game rack 2012-02-25 23:51:30 +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
cae5f38af5 Allow saving the results of a regular expression search into a file 2012-02-25 21:56:41 +01:00
Olivier Teulière
746abef2cf Added search buttons to the "plus 1" and "regexp" tools 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
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
bf42c49850 Added loggers to most classes 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
Olivier Teulière
51d6a3bc8b Added logging macros 2012-01-29 20:34:48 +01:00
Olivier Teulière
afe54e9785 Set a minimum size to the timer 2012-01-29 20:05:22 +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
f0c7c9ce23 Fixed a potential division by zero. 2012-01-26 22:04:00 +01:00
Olivier Teulière
a7ef1f0f8c Added preferences to configure the time 2012-01-26 20:57:43 +01:00
Olivier Teulière
8b33f45dca New column in the players history: "Game %", percentage of the game total 2012-01-26 20:12:47 +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
5cc5a9942f Introduced a TimerModel, to be able to synchronize various timers 2012-01-21 11:13:22 +01:00
Olivier Teulière
00e9ca0365 New timer widget (not used yet). 2012-01-21 11:13:02 +01:00
Olivier Teulière
5535717ff4 Moved MainWindow::requestConfirmation() to the QtCommon class 2012-01-20 18:08:12 +01:00
Olivier Teulière
fff127333a Added a column for the total score of the player 2012-01-20 13:41:17 +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
54736b211a Moved some code to static methods, so that it can be reused more easily. 2012-01-19 21:20:03 +01:00
Olivier Teulière
cfdf5a928d Group all the custom validators in a factory class.
This will make it easier to factorize and reuse this code.
2012-01-19 15:19:11 +01:00
Olivier Teulière
855718c6b8 Factorized code 2012-01-19 13:17:08 +01:00
Olivier Teulière
eadac39a09 Removed a useless include 2012-01-19 11:47:39 +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
fbb34d795c The history now shows the "Player" column only in FreeGame mode.
It doesn't really make sense (or it is useless) in the other modes.
2012-01-17 21:45:31 +01:00
Olivier Teulière
7fd8a245f8 Do not refresh the coordinates for a non-visible player.
This fixes a focus bug, and makes it easier to enter moves for several
human players.
2012-01-17 10:48:36 +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
482b5d674f Previewing a Round is now possible in all the game types.
It was only possible in Training mode. This change will be useful for
the future arbitration mdoe.
2012-01-17 00:43:19 +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
7883aab6b5 Removed a useless name 2012-01-05 20:44:44 +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
9dfed9c51d Fixed a dictionary creation bug on Win32 with input files containing a BOM.
The bug was not showing on Wine, only on Windows itself.
2011-12-30 15:12:26 +01:00
Olivier Teulière
9aea22d968 Use an enum for the variants 2011-08-28 19:25:26 +02:00
Olivier Teulière
56b66fea28 Added setters to GameParams, to simplify the code a little 2011-08-28 19:25:26 +02:00
Olivier Teulière
17bdd27899 Moved the dictionary to the GameParams class 2011-08-28 19:25:26 +02:00
Olivier Teulière
408c92df42 Moved the game mode to the GameParams class 2011-08-28 19:25:26 +02:00
Olivier Teulière
d6fbd6bef1 Allow combining several variants in a single game 2011-08-28 18:47:25 +02:00
Olivier Teulière
e9a49a87ab Use radio buttons for the game type instead of a combo box 2011-08-27 21:55:49 +02:00
Olivier Teulière
fdc29871e5 New GameParams class to wrap a few game characteristics.
These characteristics will not change during the game.
2011-08-27 21:55:49 +02: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
cbaad7ff6c Compilation fixes for the Windows build 2011-07-30 13:15:52 +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
c8305a0b10 Allow very thin columns 2011-07-17 09:16:52 +00:00
Olivier Teulière
77827bee1a Added a context menu to the tree header in training mode, to disable automatic resizing of the columns 2011-07-17 09:09:47 +00:00
Olivier Teulière
424fd3af32 Display the points of the word entered by the player before validating it. 2011-07-16 23:31:17 +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
e175a6d8bc Added a new (optional) dependency on log4cxx, to enable logging.
If disabled (the default), everything is compiled away.
2011-01-16 21:30:30 +00:00
Olivier Teulière
9ad384eae1 Make sure the board is cleared when a game stops 2011-01-15 21:47:42 +00:00
Olivier Teulière
15da522038 The changed letters are now displayed in upper case 2011-01-15 16:42:20 +00:00
Olivier Teulière
9e4d196d70 Fixed a typo 2011-01-15 16:35:36 +00:00
Olivier Teulière
bbb0ee4510 In free game mode, the "Change" button cannot be used anymore to pass without changing any letter.
This should be more intuitive.
2011-01-15 16:33:02 +00:00
Olivier Teulière
6f4c575eb6 Improved error messages when changing letters and/or passing 2011-01-10 22:06:10 +00:00
Olivier Teulière
af37443fc0 New bag widget, showing the remaining tiles. Not used for real yet. 2010-11-01 17:49:55 +00:00
Olivier Teulière
1374304ff9 Moved the tiles layout to a dedicated file 2010-10-22 17:01:31 +00:00
Olivier Teulière
6bf27a4509 Layout improvements:
- Handle the minimum size of the layout correctly
 - Draw the lines between tiles, instead of drawing on them
2010-10-22 16:59:43 +00:00
Olivier Teulière
3352337142 Let the TileWidget class handle mouse clicks, instead of doing it in the BoardWidget class 2010-10-22 16:58:37 +00:00
Olivier Teulière
cbc6215967 Handle arrows again 2010-10-22 16:57:59 +00:00
Olivier Teulière
e5eb6dd654 Draw an outline around the arrow 2010-10-22 16:57:13 +00:00
Olivier Teulière
308e609966 Display the letters correctly 2010-10-22 16:56:32 +00:00
Olivier Teulière
90027c3210 Display the coordinates of the board, and draw a square around it.
It now looks exactly like the old board (with 1 pixel difference for the coordinates, making it better).
2010-10-17 21:45:10 +00:00
Olivier Teulière
858b3997ae New TileWidget class, to handle a single square 2010-10-17 21:28:01 +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
c3785555b9 Print to stderr the complete stack trace in case of exception or segmentation fault.
This feature will only be activated in debug mode, and if available on the platform.
The symbols will even be demangled if possible (i.e. if compiled with g++).
2010-10-17 21:23:39 +00:00
Olivier Teulière
5cb6ad38cd New button on the "Dic. info" tab, to save the dictionary words list to a file 2010-09-18 13:07:39 +00:00
Olivier Teulière
31922c8da9 Display the number of remaining vowels, consonants and jokers in the bag window 2010-09-12 15:27:38 +00:00
Olivier Teulière
809eb9eb94 Alternate row colors to make the results table a bit nicer 2010-07-11 20:59:05 +00:00
Olivier Teulière
3608c76fa4 Display for each result the difference with the top score 2010-07-11 20:58:41 +00:00
Olivier Teulière
9c0ca5835a Force the sort column when refreshing the results 2010-07-11 20:58:21 +00:00
Olivier Teulière
f74e762ee3 Color in red the line if the word corresponds to the best score 2010-07-11 20:58:03 +00:00
Olivier Teulière
d3df401664 Compilation fix for the Windows build 2010-05-19 19:28:09 +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
32a252c96b Fixed a bug and added a sanity checks (no duplicate entries in the word list) 2010-05-16 10:05:09 +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
3666b89337 Do not distribute moc files.
Problem reported by Julien Catalano.
2010-05-12 22:12:31 +00:00
Olivier Teulière
8a1897db7a Mark a string as translatable 2010-03-09 22:32:09 +00:00
Olivier Teulière
b7fff8b4a1 - Removed various C-style casts
- Factorized code in the Bag class
2010-03-06 16:54:20 +00:00
Olivier Teulière
2268f4ce0b Force the gettext() messages to be in UTF-8, because I don't know how to
detect properly the correct encoding on Mac OS X when the LANG variable
is not set...
2010-02-12 18:16:57 +00:00
Olivier Teulière
f42398e714 Workaround encoding issues on Mac OS X: when Eliot is started from the dock, the LANG variable is not set. So retrieve the language from the preferences, and force encoding to UTF-8. 2010-02-07 17:34:59 +00:00
Olivier Teulière
57d083cedf Fixed a macro used to translate text from the .ui files 2010-02-07 17:34:34 +00:00
Olivier Teulière
6981cd18c2 Changed copyright year 2010-01-30 10:30:08 +00:00
Olivier Teulière
eb9f7bb8d5 On Mac, retrieve the locales in the bundle 2010-01-29 21:11:44 +00:00
Olivier Teulière
14ce195e83 One more encoding fix. Hopefully the last one. 2010-01-24 00:53:21 +00:00
Olivier Teulière
41b0d38c8f Fixed encoding bugs for good, this time. 2010-01-23 23:34:48 +00:00
Olivier Teulière
51b0197afd Make the code more robust by catching std::exception instead of only GameException 2010-01-23 23:34:23 +00:00
Olivier Teulière
5e3a3b4ceb Fixed an encoding issue occurring on Windows when Qt is compiled without STL compatibility 2010-01-04 20:19:34 +00:00
Olivier Teulière
99573edcc4 Improved some strings 2010-01-02 11:30:20 +00:00
Olivier Teulière
854733fed2 Fixed a typo 2009-12-06 00:10:29 +00:00
Olivier Teulière
2eb28d61c5 Use expat instead of libxml2: it is much smaller, and is easier to use with Arabica when cross-compiling for Windows 2009-12-06 00:07:35 +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
43d42a0388 Little hack to have the 7+1 search in alphabetical order (or more precisely, in the order of the letters as defined at dictionary creation) 2009-09-21 20:10:34 +00:00
Olivier Teulière
02e4cb2970 - Invalid moves should be in the display form
- Moved some code from Header to Dictionary
2009-07-03 21:40:14 +00:00
Olivier Teulière
8485e317b5 - Improved some strings
- Update of the French translation
 - Fixed make distcheck (compdic.cpp contains non-ascii chars)
2009-06-28 12:11:10 +00:00
Olivier Teulière
e42bc55965 Display the alternative inputs in the dictionary information tab 2009-06-28 11:47:50 +00:00
Olivier Teulière
0e9711da25 Accept various inputs for the same tile in the Qt interface.
The dictionary format still needs to support that.
2009-06-27 18:09:44 +00:00
Olivier Teulière
3a4daa844b Fixed tab order on the player widget 2009-06-26 21:27:13 +00:00
Olivier Teulière
adda457672 Use the display strings also when verifying a word and when listing the dictionary letters 2009-06-23 17:07:17 +00:00
Olivier Teulière
47e4b8c6b0 Simplifications 2009-06-23 12:56:40 +00:00
Olivier Teulière
7569a58bb7 Each letter (tile) now has a display string, defaulting to its internal char. It is not yet possible to change it.
This display string is used in the ncurses and Qt interfaces.

Display strings are types "wdstring" instead of plain "wstring" in a few places (not all of them) to help recognize them.
2009-06-23 12:41:53 +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
2ced8b3131 Changed slightly the behaviour of the coordinates arrow on a left click 2009-02-21 16:53:18 +00:00