eliot-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Eliot-dev] eliot INSTALL NEWS po/eliot.pot po/fr.po qt/boa...


From: eliot-dev
Subject: [Eliot-dev] eliot INSTALL NEWS po/eliot.pot po/fr.po qt/boa...
Date: Sat, 06 Sep 2008 20:06:59 +0000

CVSROOT:        /cvsroot/eliot
Module name:    eliot
Changes by:     Olivier Teulière <ipkiss>      08/09/06 20:06:59

Modified files:
        .              : INSTALL NEWS 
        po             : eliot.pot fr.po 
        qt             : board_widget.cpp main_window.cpp main_window.h 
        qt/ui          : main_window.ui 

Log message:
         - Updated the INSTALL and NEWS files
         - Fixed menu accelerator keys
         - The board font size should be proportional to the board size

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/eliot/INSTALL?cvsroot=eliot&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/eliot/NEWS?cvsroot=eliot&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/eliot/po/eliot.pot?cvsroot=eliot&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/eliot/po/fr.po?cvsroot=eliot&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/eliot/qt/board_widget.cpp?cvsroot=eliot&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/eliot/qt/main_window.cpp?cvsroot=eliot&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/eliot/qt/main_window.h?cvsroot=eliot&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/eliot/qt/ui/main_window.ui?cvsroot=eliot&r1=1.10&r2=1.11

Patches:
Index: INSTALL
===================================================================
RCS file: /cvsroot/eliot/eliot/INSTALL,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- INSTALL     19 Jan 2008 19:33:08 -0000      1.11
+++ INSTALL     6 Sep 2008 20:06:58 -0000       1.12
@@ -12,7 +12,7 @@
 Then, as root:
     make install
 
-No graphical interface is built by default, see below for more details.
+See below for more details on the available interfaces.
 
 
 * If you build from a release tarball, run the following commands:
@@ -22,16 +22,17 @@
 Then, as root:
     make install
 
-No graphical interface is built by default, see below for more details.
+See below for more details on the available interfaces.
 
 
 There are in fact several interfaces to Eliot:
  - one in text mode: mostly useful to debug Eliot
- - one using the ncursesw library: nice but not really graphical
- - a wxWidgets interface: complete, but it does not allow multiplayer
-   modes, only training mode
- - a Qt interface: currently under construction, it will replace the
-   wxWidgets interface when finished. It will support all Eliot features.
+ - one using the ncursesw library: nice and complete, but not really graphical
+ - a wxWidgets interface: working, but it does not allow multiplayer
+   modes, only training mode. This interface will disappear in version 1.8.
+ - a Qt interface: the best interface to use, it supports all the features.
+   This one is enabled by default if Qt development files are detected, but
+   you can force it with --enable-qt
 
 These interfaces can be enabled or disabled at configuration time. Example:
     ./configure --disable-text --enable-ncurses --disable-wxwidgets --enable-qt
@@ -58,8 +59,7 @@
     cd extras/contrib && make all
 
   Eliot dependencies (libiconv, boost, wxWidgets and Qt) will be downloaded
-  and cross-compiled, except Qt, which is only downloaded. Install it with
-  Wine, ignoring the warning that mingw is not found.
+  and cross-compiled (except Qt, which is already compiled).
   The dependencies are installed in 'extras/contrib/inst'
 
 * build Eliot:
@@ -67,7 +67,7 @@
     - if you don't have the 'configure' script, generate it:
             ./bootstrap
 
-    - because of a bug in gettext, you need to apply a little patch to the 
files
+    - because of a bug in gettext, you may need to apply a little patch to the 
files
       installed in the 'intl' directory:
             - download the patch here (link in the top-left-hand corner)
               
http://www.koders.com/noncode/fid46DF595700FEB564B6EF45BFF55067F95DCF0420.aspx
@@ -76,6 +76,7 @@
 
     - configure with the following command:
             export INST=`pwd`/extras/contrib/inst && \
+            PKG_CONFIG_PATH="${INST}/lib/pkgconfig:${PKG_CONFIG_PATH}" \
             CPPFLAGS=-I${INST}/include LDFLAGS=-L${INST}/lib \
             CC=i586-mingw32msvc-gcc CXX=i586-mingw32msvc-g++ \
             ./configure --host=i586-mingw32msvc --build=i386-linux \
@@ -84,3 +85,5 @@
 
     - to compile, run 'make', possibly followed with 'make install'
 
+    - run 'make package-win32-zip' to get everything packed up in a nice .zip
+

Index: NEWS
===================================================================
RCS file: /cvsroot/eliot/eliot/NEWS,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- NEWS        13 Jan 2008 18:19:10 -0000      1.2
+++ NEWS        6 Sep 2008 20:06:58 -0000       1.3
@@ -1,3 +1,27 @@
+Changes between 1.6 and 1.7:
+----------------------------
+
+Dictionary:
+ * Fixed regular expressions for non-ASCII languages
+ * Fixed bugs in the dictionary cmopression tool (compdic)
+ * The French translation of dictionary tools is now working on Windows
+
+New Qt interface:
+ * Allows playing several types of games:
+    - Training game: allows to set the rack and place your solution,
+      like in the previous Eliot versions
+    - Duplicate game: play a duplicate game against human or computer players
+    - Free game: play a free game against human or computer players
+ * All these types of games can be joker games
+ * Computer level can be adjusted to have a challenging opponent
+
+WxWidgets interface:
+ * This interface is still present (wxeliot binary) but will disappear in the
+   next release. Please indicate missing features in the new interface!
+
+Build system:
+ * It is now much easier to cross-compile a version for Windows
+
 Changes between 1.5 and 1.6:
 ----------------------------
 

Index: po/eliot.pot
===================================================================
RCS file: /cvsroot/eliot/eliot/po/eliot.pot,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- po/eliot.pot        3 Sep 2008 17:28:27 -0000       1.11
+++ po/eliot.pot        6 Sep 2008 20:06:58 -0000       1.12
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-09-02 23:17+0200\n"
+"POT-Creation-Date: 2008-09-06 16:02+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <address@hidden>\n"
 "Language-Team: LANGUAGE <address@hidden>\n"
@@ -85,346 +85,346 @@
 msgid "letter | points | frequency | vowel | consonant\n"
 msgstr ""
 
-#: dic/compdic.cpp:405
+#: dic/compdic.cpp:408
 msgid "Mandatory options:"
 msgstr ""
 
-#: dic/compdic.cpp:406
+#: dic/compdic.cpp:409
 msgid "  -d, --dicname <string>  Set the dictionary name and version"
 msgstr ""
 
-#: dic/compdic.cpp:407
+#: dic/compdic.cpp:410
 msgid ""
 "  -l, --letters <string>  Path to the file containing the letters (see below)"
 msgstr ""
 
-#: dic/compdic.cpp:408
+#: dic/compdic.cpp:411
 msgid ""
 "  -i, --input <string>    Path to the uncompressed dictionary file (encoded "
 "in UTF-8)"
 msgstr ""
 
-#: dic/compdic.cpp:409
+#: dic/compdic.cpp:412
 msgid ""
 "                          The words must be in alphabetical order, without "
 "duplicates"
 msgstr ""
 
-#: dic/compdic.cpp:410
+#: dic/compdic.cpp:413
 msgid ""
 "  -o, --output <string    Path to the generated compressed dictionary file"
 msgstr ""
 
-#: dic/compdic.cpp:411
+#: dic/compdic.cpp:414
 msgid "Other options:"
 msgstr ""
 
-#: dic/compdic.cpp:412
+#: dic/compdic.cpp:415
 msgid "  -h, --help              Print this help and exit"
 msgstr ""
 
-#: dic/compdic.cpp:413
+#: dic/compdic.cpp:416
 msgid "Example:"
 msgstr ""
 
-#: dic/compdic.cpp:414
+#: dic/compdic.cpp:417
 msgid " -d 'ODS 5.0' -l letters.txt -i ods5.txt -o ods5.dawg"
 msgstr ""
 
-#: dic/compdic.cpp:416
+#: dic/compdic.cpp:419
 msgid ""
 "The file containing the letters (--letters switch) must be UTF-8 encoded."
 msgstr ""
 
-#: dic/compdic.cpp:417
+#: dic/compdic.cpp:420
 msgid ""
 "Each line corresponds to one letter, and must contain 5 fields separated "
 "with "
 msgstr ""
 
-#: dic/compdic.cpp:418
+#: dic/compdic.cpp:421
 msgid "one or more space(s)."
 msgstr ""
 
-#: dic/compdic.cpp:419
+#: dic/compdic.cpp:422
 msgid " - 1st field: the letter itself"
 msgstr ""
 
-#: dic/compdic.cpp:420
+#: dic/compdic.cpp:423
 msgid " - 2nd field: the points of the letter"
 msgstr ""
 
-#: dic/compdic.cpp:421
+#: dic/compdic.cpp:424
 msgid ""
 " - 3rd field: the frequency of the letter (how many letters of this kind in "
 "the game)"
 msgstr ""
 
-#: dic/compdic.cpp:422
+#: dic/compdic.cpp:425
 msgid ""
 " - 4th field: 1 if the letter is considered as a vowel in Scrabble game, 0 "
 "otherwise"
 msgstr ""
 
-#: dic/compdic.cpp:423
+#: dic/compdic.cpp:426
 msgid ""
 " - 5th field: 1 if the letter is considered as a consonant in Scrabble game, "
 "0 otherwise"
 msgstr ""
 
-#: dic/compdic.cpp:424
+#: dic/compdic.cpp:427
 msgid "Example for french:"
 msgstr ""
 
-#: dic/compdic.cpp:425
+#: dic/compdic.cpp:428
 msgid "A 1 9 1 0"
 msgstr ""
 
-#: dic/compdic.cpp:426
+#: dic/compdic.cpp:429
 msgid "[...]"
 msgstr ""
 
-#: dic/compdic.cpp:427
+#: dic/compdic.cpp:430
 msgid "Z 10 1 0 1"
 msgstr ""
 
-#: dic/compdic.cpp:428
+#: dic/compdic.cpp:431
 msgid "? 0 2 1 1"
 msgstr ""
 
-#: dic/compdic.cpp:498
+#: dic/compdic.cpp:511
 msgid "A mandatory option is missing"
 msgstr ""
 
-#: dic/compdic.cpp:506
+#: dic/compdic.cpp:519
 msgid "Cannot stat uncompressed dictionary "
 msgstr ""
 
-#: dic/compdic.cpp:514
+#: dic/compdic.cpp:527
 msgid "Cannot open output file "
 msgstr ""
 
-#: dic/compdic.cpp:562
+#: dic/compdic.cpp:575
 #, c-format
 msgid " Load time: %.3f s\n"
 msgstr ""
 
-#: dic/compdic.cpp:563
+#: dic/compdic.cpp:576
 #, c-format
 msgid " Compression time: %.3f s\n"
 msgstr ""
 
-#: dic/compdic.cpp:565
+#: dic/compdic.cpp:578
 #, c-format
 msgid " Maximum recursion level reached: %d\n"
 msgstr ""
 
-#: dic/listdic.cpp:102
+#: dic/listdic.cpp:105
 #, c-format
 msgid "offset binary   | structure\n"
 msgstr ""
 
-#: dic/listdic.cpp:111
+#: dic/listdic.cpp:114
 #, c-format
 msgid "usage: %s [-a|-h|-l|-x] dictionary\n"
 msgstr ""
 
-#: dic/listdic.cpp:112
+#: dic/listdic.cpp:115
 #, c-format
 msgid "  -a: print all\n"
 msgstr ""
 
-#: dic/listdic.cpp:113
+#: dic/listdic.cpp:116
 #, c-format
 msgid "  -h: print header\n"
 msgstr ""
 
-#: dic/listdic.cpp:114
+#: dic/listdic.cpp:117
 #, c-format
 msgid "  -l: print dictionary word list\n"
 msgstr ""
 
-#: dic/listdic.cpp:115
+#: dic/listdic.cpp:118
 #, c-format
 msgid "  -x: print dictionary in hex\n"
 msgstr ""
 
-#: dic/regexpmain.cpp:50
+#: dic/regexpmain.cpp:53
 #, c-format
 msgid "usage: %s dictionary"
 msgstr ""
 
-#: dic/regexpmain.cpp:51
+#: dic/regexpmain.cpp:54
 msgid "   dictionary: path to eliot dawg dictionary"
 msgstr ""
 
-#: dic/regexpmain.cpp:81 dic/regexpmain.cpp:105
+#: dic/regexpmain.cpp:94 dic/regexpmain.cpp:118
 msgid "Enter a regular expression:"
 msgstr ""
 
-#: dic/regexpmain.cpp:92
+#: dic/regexpmain.cpp:105
 msgid "result:"
 msgstr ""
 
-#: dic/regexpmain.cpp:101 wxwin/searchpanel.cc:296
+#: dic/regexpmain.cpp:114 wxwin/searchpanel.cc:296
 msgid "Invalid regular expression: "
 msgstr ""
 
-#: game/training.cpp:49 qt/new_game.cpp:96 qt/new_game.cpp:104
-#: qt/new_game.cpp:139 qt/ui/new_game.ui:46
+#: game/training.cpp:49 qt/new_game.cpp:97 qt/new_game.cpp:105
+#: qt/new_game.cpp:140 qt/ui/new_game.ui:46
 msgid "Training"
 msgstr ""
 
-#: utils/ncurses.cpp:279
+#: utils/ncurses.cpp:282
 msgid "Scores"
 msgstr ""
 
-#: utils/ncurses.cpp:283 utils/ncurses.cpp:288
+#: utils/ncurses.cpp:286 utils/ncurses.cpp:291
 #, c-format
 msgid "%s: %d"
 msgstr ""
 
-#: utils/ncurses.cpp:300
+#: utils/ncurses.cpp:303
 msgid "Racks"
 msgstr ""
 
-#: utils/ncurses.cpp:304 utils/ncurses.cpp:310
+#: utils/ncurses.cpp:307 utils/ncurses.cpp:313
 #, c-format
 msgid "%s: %ls"
 msgstr ""
 
-#: utils/ncurses.cpp:324 utils/ncurses.cpp:327
+#: utils/ncurses.cpp:327 utils/ncurses.cpp:330
 msgid "Search complete"
 msgstr ""
 
-#: utils/ncurses.cpp:337 qt/ui/training_widget.ui:71
+#: utils/ncurses.cpp:340 qt/ui/training_widget.ui:71
 msgid "Search results"
 msgstr ""
 
-#: utils/ncurses.cpp:366
+#: utils/ncurses.cpp:369
 msgid "History of the game"
 msgstr ""
 
-#: utils/ncurses.cpp:372
+#: utils/ncurses.cpp:375
 msgid " N |   RACK   |    SOLUTION     | REF | PTS | P | BONUS"
 msgstr ""
 
-#: utils/ncurses.cpp:411 qt/history_widget.cpp:143 qt/main_window.cpp:442
+#: utils/ncurses.cpp:414 qt/history_widget.cpp:143 qt/main_window.cpp:545
 msgid "(PASS)"
 msgstr ""
 
-#: utils/ncurses.cpp:437 qt/ui/main_window.ui:100
+#: utils/ncurses.cpp:440
 msgid "Help"
 msgstr ""
 
-#: utils/ncurses.cpp:441
+#: utils/ncurses.cpp:444
 msgid "[Global]"
 msgstr ""
 
-#: utils/ncurses.cpp:442
+#: utils/ncurses.cpp:445
 msgid "   h, H, ?          Show/hide help box"
 msgstr ""
 
-#: utils/ncurses.cpp:443
+#: utils/ncurses.cpp:446
 msgid "   y, Y             Show/hide history of the game"
 msgstr ""
 
-#: utils/ncurses.cpp:444
+#: utils/ncurses.cpp:447
 msgid ""
 "   b, B             Show/hide contents of the bag (including letters of the "
 "racks)"
 msgstr ""
 
-#: utils/ncurses.cpp:445
+#: utils/ncurses.cpp:448
 msgid "   e, E             Show/hide dots on empty squares of the board"
 msgstr ""
 
-#: utils/ncurses.cpp:446
+#: utils/ncurses.cpp:449
 msgid "   d, D             Check the existence of a word in the dictionary"
 msgstr ""
 
-#: utils/ncurses.cpp:447
+#: utils/ncurses.cpp:450
 msgid "   j, J             Play a word"
 msgstr ""
 
-#: utils/ncurses.cpp:448
+#: utils/ncurses.cpp:451
 msgid "   s, S             Save the game"
 msgstr ""
 
-#: utils/ncurses.cpp:449
+#: utils/ncurses.cpp:452
 msgid "   l, L             Load a game"
 msgstr ""
 
-#: utils/ncurses.cpp:450
+#: utils/ncurses.cpp:453
 msgid "   q, Q             Quit"
 msgstr ""
 
-#: utils/ncurses.cpp:453
+#: utils/ncurses.cpp:456
 msgid "[Training mode]"
 msgstr ""
 
-#: utils/ncurses.cpp:454
+#: utils/ncurses.cpp:457
 msgid "   *                Take a random rack"
 msgstr ""
 
-#: utils/ncurses.cpp:455
+#: utils/ncurses.cpp:458
 msgid "   +                Complete the current rack randomly"
 msgstr ""
 
-#: utils/ncurses.cpp:456
+#: utils/ncurses.cpp:459
 msgid "   t, T             Set the rack manually"
 msgstr ""
 
-#: utils/ncurses.cpp:457
+#: utils/ncurses.cpp:460
 msgid "   c, C             Compute all the possible words"
 msgstr ""
 
-#: utils/ncurses.cpp:458
+#: utils/ncurses.cpp:461
 msgid "   r, R             Show/hide search results"
 msgstr ""
 
-#: utils/ncurses.cpp:461
+#: utils/ncurses.cpp:464
 msgid "[Duplicate mode]"
 msgstr ""
 
-#: utils/ncurses.cpp:462
+#: utils/ncurses.cpp:465
 msgid "   n, N             Switch to the next human player"
 msgstr ""
 
-#: utils/ncurses.cpp:465
+#: utils/ncurses.cpp:468
 msgid "[Free game mode]"
 msgstr ""
 
-#: utils/ncurses.cpp:466
+#: utils/ncurses.cpp:469
 msgid "   p, P             Pass your turn (with or without changing letters)"
 msgstr ""
 
-#: utils/ncurses.cpp:469
+#: utils/ncurses.cpp:472
 msgid "[Miscellaneous]"
 msgstr ""
 
-#: utils/ncurses.cpp:470
+#: utils/ncurses.cpp:473
 msgid "   <up>, <down>     Navigate in a box line by line"
 msgstr ""
 
-#: utils/ncurses.cpp:471
+#: utils/ncurses.cpp:474
 msgid "   <pgup>, <pgdown> Navigate in a box page by page"
 msgstr ""
 
-#: utils/ncurses.cpp:472
+#: utils/ncurses.cpp:475
 msgid "   Ctrl-l           Refresh the screen"
 msgstr ""
 
-#: utils/ncurses.cpp:483 wxwin/auxframes.cc:147 qt/main_window.cpp:525
-#: qt/ui/main_window.ui:188
+#: utils/ncurses.cpp:486 wxwin/auxframes.cc:147 qt/main_window.cpp:628
+#: qt/ui/main_window.ui:94
 msgid "Bag"
 msgstr ""
 
-#: utils/ncurses.cpp:490
+#: utils/ncurses.cpp:493
 msgid " LETTER | POINTS | FREQUENCY | REMAINING"
 msgstr ""
 
-#: utils/ncurses.cpp:543
+#: utils/ncurses.cpp:546
 msgid "Play a word"
 msgstr ""
 
@@ -432,115 +432,115 @@
 #. "Coordinates:". For example:
 #. Pl. word   :
 #. Coordinates:
-#: utils/ncurses.cpp:544 utils/ncurses.cpp:552
+#: utils/ncurses.cpp:547 utils/ncurses.cpp:555
 msgid "Played word:"
 msgstr ""
 
-#: utils/ncurses.cpp:545 utils/ncurses.cpp:553
+#: utils/ncurses.cpp:548 utils/ncurses.cpp:556
 msgid "Coordinates:"
 msgstr ""
 
-#: utils/ncurses.cpp:567
+#: utils/ncurses.cpp:570
 msgid "Incorrect or misplaced word"
 msgstr ""
 
-#: utils/ncurses.cpp:577
+#: utils/ncurses.cpp:580
 msgid "Dictionary"
 msgstr ""
 
-#: utils/ncurses.cpp:578
+#: utils/ncurses.cpp:581
 msgid "Enter the word to check:"
 msgstr ""
 
-#: utils/ncurses.cpp:587
+#: utils/ncurses.cpp:590
 #, c-format
 msgid "The word '%ls' exists"
 msgstr ""
 
-#: utils/ncurses.cpp:589
+#: utils/ncurses.cpp:592
 #, c-format
 msgid "The word '%ls' does not exist"
 msgstr ""
 
-#: utils/ncurses.cpp:599 wxwin/mainframe.cc:475 wxwin/mainframe.cc:483
+#: utils/ncurses.cpp:602 wxwin/mainframe.cc:475 wxwin/mainframe.cc:483
 msgid "Save the game"
 msgstr ""
 
-#: utils/ncurses.cpp:600 utils/ncurses.cpp:630
+#: utils/ncurses.cpp:603 utils/ncurses.cpp:633
 msgid "Enter the file name:"
 msgstr ""
 
-#: utils/ncurses.cpp:610
+#: utils/ncurses.cpp:613
 #, c-format
 msgid "Cannot open file %ls for writing"
 msgstr ""
 
-#: utils/ncurses.cpp:618
+#: utils/ncurses.cpp:621
 #, c-format
 msgid "Game saved in '%ls'"
 msgstr ""
 
-#: utils/ncurses.cpp:629 wxwin/mainframe.cc:275 wxwin/mainframe.cc:405
-#: wxwin/mainframe.cc:429 qt/main_window.cpp:287
+#: utils/ncurses.cpp:632 wxwin/mainframe.cc:275 wxwin/mainframe.cc:405
+#: wxwin/mainframe.cc:429 qt/main_window.cpp:390
 msgid "Load a game"
 msgstr ""
 
-#: utils/ncurses.cpp:640
+#: utils/ncurses.cpp:643
 #, c-format
 msgid "Cannot open file '%ls' for reading"
 msgstr ""
 
-#: utils/ncurses.cpp:648
+#: utils/ncurses.cpp:651
 #, c-format
 msgid "Invalid saved game"
 msgstr ""
 
-#: utils/ncurses.cpp:653 qt/main_window.cpp:301
+#: utils/ncurses.cpp:656 qt/main_window.cpp:404
 #, c-format
 msgid "Game loaded"
 msgstr ""
 
-#: utils/ncurses.cpp:668
+#: utils/ncurses.cpp:671
 msgid "Pass your turn"
 msgstr ""
 
-#: utils/ncurses.cpp:669
+#: utils/ncurses.cpp:672
 msgid "Enter the letters to change:"
 msgstr ""
 
-#: utils/ncurses.cpp:678
+#: utils/ncurses.cpp:681
 msgid "Cannot pass the turn"
 msgstr ""
 
-#: utils/ncurses.cpp:688
+#: utils/ncurses.cpp:691
 msgid "Set rack"
 msgstr ""
 
-#: utils/ncurses.cpp:689
+#: utils/ncurses.cpp:692
 msgid "Enter the new letters:"
 msgstr ""
 
-#: utils/ncurses.cpp:698
+#: utils/ncurses.cpp:701
 msgid "Cannot take these letters from the bag"
 msgstr ""
 
-#: utils/ncurses.cpp:1092 qt/main_window.cpp:193 qt/ui/prefs_dialog.ui:175
+#: utils/ncurses.cpp:1095 qt/main_window.cpp:211 qt/ui/prefs_dialog.ui:181
 msgid "Training mode"
 msgstr ""
 
-#: utils/ncurses.cpp:1094 qt/ui/prefs_dialog.ui:156
+#: utils/ncurses.cpp:1097 qt/ui/prefs_dialog.ui:162
 msgid "Free game mode"
 msgstr ""
 
-#: utils/ncurses.cpp:1096 qt/ui/prefs_dialog.ui:69
+#: utils/ncurses.cpp:1099 qt/ui/prefs_dialog.ui:75
 msgid "Duplicate mode"
 msgstr ""
 
-#: utils/ncurses.cpp:1099 qt/ui/new_game.ui:67
+#: utils/ncurses.cpp:1102 qt/ui/new_game.ui:67
 msgid "Joker game"
 msgstr ""
 
-#: utils/ncurses.cpp:1100
+#: utils/ncurses.cpp:1103
 msgid "[h for help]"
 msgstr ""
 
@@ -797,7 +797,7 @@
 msgid "&New game\tCtrl+N"
 msgstr ""
 
-#: wxwin/mainframe.cc:272 qt/ui/main_window.ui:177
+#: wxwin/mainframe.cc:272 qt/main_window.cpp:308
 msgid "Start a new game"
 msgstr ""
 
@@ -817,7 +817,7 @@
 msgid "&Save as...\tCtrl+S"
 msgstr ""
 
-#: wxwin/mainframe.cc:276 qt/ui/main_window.ui:232
+#: wxwin/mainframe.cc:276 qt/main_window.cpp:313
 msgid "Save the current game"
 msgstr ""
 
@@ -849,7 +849,7 @@
 msgid "&Quit\tCtrl+Q"
 msgstr ""
 
-#: wxwin/mainframe.cc:284 qt/ui/main_window.ui:169
+#: wxwin/mainframe.cc:284 qt/main_window.cpp:319
 msgid "Quit Eliot"
 msgstr ""
 
@@ -857,7 +857,7 @@
 msgid "&Dictionary...\tCtrl+D"
 msgstr ""
 
-#: wxwin/mainframe.cc:287 wxwin/mainframe.cc:604 qt/main_window.cpp:492
+#: wxwin/mainframe.cc:287 wxwin/mainframe.cc:604 qt/main_window.cpp:595
 msgid "Choose a dictionary"
 msgstr ""
 
@@ -966,6 +966,7 @@
 msgstr ""
 
 #: wxwin/mainframe.cc:310 wxwin/mainframe.cc:334 qt/history_widget.cpp:177
+#: qt/main_window.cpp:306
 msgid "&Game"
 msgstr ""
 
@@ -1061,24 +1062,24 @@
 msgid "R&esults"
 msgstr ""
 
-#: wxwin/mainframe.cc:331
+#: wxwin/mainframe.cc:331 qt/main_window.cpp:344
 msgid "&About..."
 msgstr ""
 
-#: wxwin/mainframe.cc:331 wxwin/mainframe.cc:733 qt/main_window.cpp:603
-#: qt/ui/main_window.ui:161
+#: wxwin/mainframe.cc:331 wxwin/mainframe.cc:733 qt/main_window.cpp:345
+#: qt/main_window.cpp:706
 msgid "About Eliot"
 msgstr ""
 
-#: wxwin/mainframe.cc:335
+#: wxwin/mainframe.cc:335 qt/main_window.cpp:323
 msgid "&Settings"
 msgstr ""
 
-#: wxwin/mainframe.cc:336
+#: wxwin/mainframe.cc:336 qt/main_window.cpp:331
 msgid "&Windows"
 msgstr ""
 
-#: wxwin/mainframe.cc:337
+#: wxwin/mainframe.cc:337 qt/main_window.cpp:343
 msgid "&Help"
 msgstr ""
 
@@ -1095,7 +1096,7 @@
 msgid "Cannot open "
 msgstr ""
 
-#: wxwin/mainframe.cc:440 wxwin/mainframe.cc:449 qt/main_window.cpp:294
+#: wxwin/mainframe.cc:440 wxwin/mainframe.cc:449 qt/main_window.cpp:397
 msgid "Error while loading the game"
 msgstr ""
 
@@ -1260,81 +1261,205 @@
 msgid "Player"
 msgstr ""
 
-#: qt/main_window.cpp:91 qt/main_window.cpp:543 qt/ui/main_window.ui:40
+#: qt/main_window.cpp:109 qt/main_window.cpp:646 qt/ui/main_window.ui:40
 msgid "Board"
 msgstr ""
 
-#: qt/main_window.cpp:144
+#: qt/main_window.cpp:162
 msgid "Cannot load dictionary '%1' indicated in the preferences"
 msgstr ""
 
-#: qt/main_window.cpp:185
+#: qt/main_window.cpp:203
 msgid "No game"
 msgstr ""
 
-#: qt/main_window.cpp:197
+#: qt/main_window.cpp:215
 msgid "Duplicate game"
 msgstr ""
 
-#: qt/main_window.cpp:201 qt/new_game.cpp:98 qt/new_game.cpp:164
+#: qt/main_window.cpp:219 qt/new_game.cpp:99 qt/new_game.cpp:165
 #: qt/ui/new_game.ui:41
 msgid "Free game"
 msgstr ""
 
-#: qt/main_window.cpp:250 qt/main_window.cpp:283
+#: qt/main_window.cpp:237
+msgid "%1 error"
+msgstr ""
+
+#: qt/main_window.cpp:307
+msgid "&New..."
+msgstr ""
+
+#: qt/main_window.cpp:307
+msgid "Ctrl+N"
+msgstr ""
+
+#: qt/main_window.cpp:310
+msgid "&Load..."
+msgstr ""
+
+#: qt/main_window.cpp:310
+msgid "Ctrl+O"
+msgstr ""
+
+#: qt/main_window.cpp:311
+msgid "Load an existing game"
+msgstr ""
+
+#: qt/main_window.cpp:312
+msgid "&Save as..."
+msgstr ""
+
+#: qt/main_window.cpp:312
+msgid "Ctrl+S"
+msgstr ""
+
+#: qt/main_window.cpp:315
+msgid "&Print..."
+msgstr ""
+
+#: qt/main_window.cpp:315
+msgid "Ctrl+P"
+msgstr ""
+
+#: qt/main_window.cpp:316
+msgid "Print the current game"
+msgstr ""
+
+#: qt/main_window.cpp:318
+msgid "&Quit"
+msgstr ""
+
+#: qt/main_window.cpp:318
+msgid "Ctrl+Q"
+msgstr ""
+
+#: qt/main_window.cpp:324
+msgid "&Choose dictionary..."
+msgstr ""
+
+#: qt/main_window.cpp:325
+msgid "Select a new dictionary"
+msgstr ""
+
+#: qt/main_window.cpp:326
+msgid "&Preferences..."
+msgstr ""
+
+#: qt/main_window.cpp:326
+msgid "Ctrl+F"
+msgstr ""
+
+#: qt/main_window.cpp:327
+msgid "Edit the preferences"
+msgstr ""
+
+#: qt/main_window.cpp:332
+msgid "&Bag"
+msgstr ""
+
+#: qt/main_window.cpp:332
+msgid "Ctrl+B"
+msgstr ""
+
+#: qt/main_window.cpp:333 qt/ui/main_window.ui:97
+msgid "Show/hide the remaining tiles in the bag"
+msgstr ""
+
+#: qt/main_window.cpp:334
+msgid "&External board"
+msgstr ""
+
+#: qt/main_window.cpp:334
+msgid "Ctrl+E"
+msgstr ""
+
+#: qt/main_window.cpp:335 qt/ui/main_window.ui:111
+msgid "Show/hide the external board"
+msgstr ""
+
+#: qt/main_window.cpp:336
+msgid "&History"
+msgstr ""
+
+#: qt/main_window.cpp:336
+msgid "Ctrl+H"
+msgstr ""
+
+#: qt/main_window.cpp:337 qt/ui/main_window.ui:125
+msgid "Show/hide the game history"
+msgstr ""
+
+#: qt/main_window.cpp:338
+msgid "&Dictionary tools"
+msgstr ""
+
+#: qt/main_window.cpp:338
+msgid "Ctrl+D"
+msgstr ""
+
+#: qt/main_window.cpp:339 qt/ui/main_window.ui:139
+msgid "Show/hide the dictionary tools"
+msgstr ""
+
+#: qt/main_window.cpp:344
+msgid "Ctrl+A"
+msgstr ""
+
+#: qt/main_window.cpp:353 qt/main_window.cpp:386
 msgid "You have to select a dictionary first!"
 msgstr ""
 
-#: qt/main_window.cpp:275
+#: qt/main_window.cpp:378
 msgid "Game started"
 msgstr ""
 
-#: qt/main_window.cpp:311
+#: qt/main_window.cpp:414
 msgid "Save a game"
 msgstr ""
 
-#: qt/main_window.cpp:316
+#: qt/main_window.cpp:419
 msgid "Game saved"
 msgstr ""
 
-#: qt/main_window.cpp:350
+#: qt/main_window.cpp:453
 msgid "N."
 msgstr ""
 
-#: qt/main_window.cpp:350
+#: qt/main_window.cpp:453
 msgid "RACK"
 msgstr ""
 
-#: qt/main_window.cpp:350
+#: qt/main_window.cpp:453
 msgid "SOLUTION"
 msgstr ""
 
-#: qt/main_window.cpp:350
+#: qt/main_window.cpp:453
 msgid "REF"
 msgstr ""
 
-#: qt/main_window.cpp:350
+#: qt/main_window.cpp:453
 msgid "PTS"
 msgstr ""
 
-#: qt/main_window.cpp:483
+#: qt/main_window.cpp:586
 msgid "Stop current game?"
 msgstr ""
 
-#: qt/main_window.cpp:484
+#: qt/main_window.cpp:587
 msgid ""
 "Loading a dictionary will stop the current game. Do you want to continue?"
 msgstr ""
 
-#: qt/main_window.cpp:561 qt/ui/main_window.ui:53 qt/ui/main_window.ui:257
+#: qt/main_window.cpp:664 qt/ui/main_window.ui:53 qt/ui/main_window.ui:122
 msgid "History"
 msgstr ""
 
-#: qt/main_window.cpp:578 qt/ui/main_window.ui:282
+#: qt/main_window.cpp:681 qt/ui/main_window.ui:136
 msgid "Dictionary tools"
 msgstr ""
 
-#: qt/main_window.cpp:595
+#: qt/main_window.cpp:698
 msgid ""
 "Copyright (C) 1999-2008 - Antoine Fraboulet & Olivier Teuliere\n"
 "\n"
@@ -1352,8 +1477,8 @@
 msgid "Computer"
 msgstr ""
 
-#: qt/new_game.cpp:46 qt/new_game.cpp:53 qt/new_game.cpp:111
-#: qt/new_game.cpp:200 qt/new_game.cpp:203
+#: qt/new_game.cpp:46 qt/new_game.cpp:53 qt/new_game.cpp:112
+#: qt/new_game.cpp:201 qt/new_game.cpp:204
 msgid "Player %1"
 msgstr ""
 
@@ -1373,7 +1498,7 @@
 msgid "Eliot"
 msgstr ""
 
-#: qt/new_game.cpp:163 qt/ui/new_game.ui:36
+#: qt/new_game.cpp:164 qt/ui/new_game.ui:36
 msgid "Duplicate"
 msgstr ""
 
@@ -1413,90 +1538,10 @@
 msgid "Players"
 msgstr ""
 
-#: qt/ui/main_window.ui:80
-msgid "Game"
-msgstr ""
-
-#: qt/ui/main_window.ui:93
-msgid "Settings"
-msgstr ""
-
-#: qt/ui/main_window.ui:107
-msgid "Windows"
-msgstr ""
-
-#: qt/ui/main_window.ui:150
-msgid "Choose dictionary..."
-msgstr ""
-
-#: qt/ui/main_window.ui:153
-msgid "Select a new dictionary"
-msgstr ""
-
-#: qt/ui/main_window.ui:158
-msgid "About..."
-msgstr ""
-
-#: qt/ui/main_window.ui:166
-msgid "Quit"
-msgstr ""
-
-#: qt/ui/main_window.ui:174
-msgid "New..."
-msgstr ""
-
-#: qt/ui/main_window.ui:191
-msgid "Show/hide the remaining tiles in the bag"
-msgstr ""
-
-#: qt/ui/main_window.ui:199
-msgid "Preferences..."
-msgstr ""
-
-#: qt/ui/main_window.ui:202
-msgid "Edit the preferences"
-msgstr ""
-
-#: qt/ui/main_window.ui:210
-msgid "Save"
-msgstr ""
-
-#: qt/ui/main_window.ui:218
-msgid "Load..."
-msgstr ""
-
-#: qt/ui/main_window.ui:221
-msgid "Load an existing game"
-msgstr ""
-
-#: qt/ui/main_window.ui:229
-msgid "Save as..."
-msgstr ""
-
-#: qt/ui/main_window.ui:243
+#: qt/ui/main_window.ui:108
 msgid "External board"
 msgstr ""
 
-#: qt/ui/main_window.ui:246
-msgid "Show/hide the external board"
-msgstr ""
-
-#: qt/ui/main_window.ui:260
-msgid "Show/hide the game history"
-msgstr ""
-
-#: qt/ui/main_window.ui:268
-msgid "Print..."
-msgstr ""
-
-#: qt/ui/main_window.ui:271
-msgid "Print the current game"
-msgstr ""
-
-#: qt/ui/main_window.ui:285
-msgid "Show/hide the dictionary tools"
-msgstr ""
-
 #: qt/ui/new_game.ui:13
 msgid "New game"
 msgstr ""
@@ -1571,51 +1616,51 @@
 msgid "Dictionary path:"
 msgstr ""
 
-#: qt/ui/prefs_dialog.ui:34
+#: qt/ui/prefs_dialog.ui:40
 msgid "Enter the dictionary path (mandatory to start a game)"
 msgstr ""
 
-#: qt/ui/prefs_dialog.ui:41
+#: qt/ui/prefs_dialog.ui:47
 msgid "Open a browser window to choose the dictionary"
 msgstr ""
 
-#: qt/ui/prefs_dialog.ui:44
+#: qt/ui/prefs_dialog.ui:50
 msgid "Browse..."
 msgstr ""
 
-#: qt/ui/prefs_dialog.ui:53
+#: qt/ui/prefs_dialog.ui:59
 msgid ""
 "If checked, the game and player histories will display the rack and the "
 "corresponding solution on the same line"
 msgstr ""
 
-#: qt/ui/prefs_dialog.ui:56
+#: qt/ui/prefs_dialog.ui:62
 msgid "Align the rack and the solution in history"
 msgstr ""
 
-#: qt/ui/prefs_dialog.ui:75 qt/ui/prefs_dialog.ui:162
+#: qt/ui/prefs_dialog.ui:81 qt/ui/prefs_dialog.ui:168
 msgid ""
 "If checked, playing an invalid or misplaced word will not be possible. If "
 "unchecked, you will get 0 point and lose your turn"
 msgstr ""
 
-#: qt/ui/prefs_dialog.ui:78 qt/ui/prefs_dialog.ui:165
+#: qt/ui/prefs_dialog.ui:84 qt/ui/prefs_dialog.ui:171
 msgid "Refuse to play invalid moves"
 msgstr ""
 
-#: qt/ui/prefs_dialog.ui:87
+#: qt/ui/prefs_dialog.ui:93
 msgid "Min. players for a solo:"
 msgstr ""
 
-#: qt/ui/prefs_dialog.ui:107
+#: qt/ui/prefs_dialog.ui:113
 msgid "Minimum number of players needed to take into account the solo bonus"
 msgstr ""
 
-#: qt/ui/prefs_dialog.ui:121
+#: qt/ui/prefs_dialog.ui:127
 msgid "Solo value:"
 msgstr ""
 
-#: qt/ui/prefs_dialog.ui:141
+#: qt/ui/prefs_dialog.ui:147
 msgid "Value of the solo bonus. Set it to 0 if you don't want solo bonus"
 msgstr ""
 

Index: po/fr.po
===================================================================
RCS file: /cvsroot/eliot/eliot/po/fr.po,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- po/fr.po    3 Sep 2008 17:28:27 -0000       1.12
+++ po/fr.po    6 Sep 2008 20:06:58 -0000       1.13
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: eliot 1.7\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-09-02 23:17+0200\n"
+"POT-Creation-Date: 2008-09-06 16:02+0200\n"
 "PO-Revision-Date: 2008-08-31 10:43+0100\n"
 "Last-Translator: Olivier Teuliere <address@hidden>\n"
 "Language-Team: French <address@hidden>\n"
@@ -86,22 +86,22 @@
 msgid "letter | points | frequency | vowel | consonant\n"
 msgstr "lettre | points | frequence | voye. | consonne\n"
 
-#: dic/compdic.cpp:405
+#: dic/compdic.cpp:408
 msgid "Mandatory options:"
 msgstr "Options obligatoires :"
 
-#: dic/compdic.cpp:406
+#: dic/compdic.cpp:409
 msgid "  -d, --dicname <string>  Set the dictionary name and version"
 msgstr "  -d, --dicname <string>  Choisir le nom et la version du dictionnaire"
 
-#: dic/compdic.cpp:407
+#: dic/compdic.cpp:410
 msgid ""
 "  -l, --letters <string>  Path to the file containing the letters (see below)"
 msgstr ""
 "  -l, --letters <string>  Chemin vers un fichier contenant les lettres (voir "
 "ci-dessous)"
 
-#: dic/compdic.cpp:408
+#: dic/compdic.cpp:411
 msgid ""
 "  -i, --input <string>    Path to the uncompressed dictionary file (encoded "
 "in UTF-8)"
@@ -109,7 +109,7 @@
 "  -i, --input <string>    Chemin vers le fichier de dictionnaire non "
 "compressé (encodé en UTF-8)"
 
-#: dic/compdic.cpp:409
+#: dic/compdic.cpp:412
 msgid ""
 "                          The words must be in alphabetical order, without "
 "duplicates"
@@ -117,56 +117,56 @@
 "                          Les mots doivent être triés par ordre 
alphabétique,"
 "sans doublons"
 
-#: dic/compdic.cpp:410
+#: dic/compdic.cpp:413
 msgid ""
 "  -o, --output <string    Path to the generated compressed dictionary file"
 msgstr ""
 "  -o, --output <string    Chemin vers le fichier de dictionnaire compressé "
 "généré"
 
-#: dic/compdic.cpp:411
+#: dic/compdic.cpp:414
 msgid "Other options:"
 msgstr "Autres options :"
 
-#: dic/compdic.cpp:412
+#: dic/compdic.cpp:415
 msgid "  -h, --help              Print this help and exit"
 msgstr "  -h, --help              Affiche cette aide et quitte"
 
-#: dic/compdic.cpp:413
+#: dic/compdic.cpp:416
 msgid "Example:"
 msgstr "Exemple :"
 
-#: dic/compdic.cpp:414
+#: dic/compdic.cpp:417
 msgid " -d 'ODS 5.0' -l letters.txt -i ods5.txt -o ods5.dawg"
 msgstr " -d 'ODS 5.0' -l lettres.txt -i ods5.txt -o ods5.dawg"
 
-#: dic/compdic.cpp:416
+#: dic/compdic.cpp:419
 msgid ""
 "The file containing the letters (--letters switch) must be UTF-8 encoded."
 msgstr ""
 "Le fichier contenant les lettres (option --letters) doit être encodé en 
UTF-"
 "8."
 
-#: dic/compdic.cpp:417
+#: dic/compdic.cpp:420
 msgid ""
 "Each line corresponds to one letter, and must contain 5 fields separated "
 "with "
 msgstr ""
 "Chaque ligne correspond à une lettre, et doit contenir 5 champs séparés 
par "
 
-#: dic/compdic.cpp:418
+#: dic/compdic.cpp:421
 msgid "one or more space(s)."
 msgstr "un ou plusieurs espace(s)."
 
-#: dic/compdic.cpp:419
+#: dic/compdic.cpp:422
 msgid " - 1st field: the letter itself"
 msgstr " - 1er champ : la lettre elle-même"
 
-#: dic/compdic.cpp:420
+#: dic/compdic.cpp:423
 msgid " - 2nd field: the points of the letter"
 msgstr " - 2e champ : les points de cette lettre"
 
-#: dic/compdic.cpp:421
+#: dic/compdic.cpp:424
 msgid ""
 " - 3rd field: the frequency of the letter (how many letters of this kind in "
 "the game)"
@@ -174,7 +174,7 @@
 " - 3e champ : la fréquence de la lettre (nombre de lettres de ce genre dans "
 "le jeu)"
 
-#: dic/compdic.cpp:422
+#: dic/compdic.cpp:425
 msgid ""
 " - 4th field: 1 if the letter is considered as a vowel in Scrabble game, 0 "
 "otherwise"
@@ -182,7 +182,7 @@
 " - 4e champ : 1 si la lettre est considérée comme une voyelle au jeu de "
 "Scrabble, 0 sinon"
 
-#: dic/compdic.cpp:423
+#: dic/compdic.cpp:426
 msgid ""
 " - 5th field: 1 if the letter is considered as a consonant in Scrabble game, "
 "0 otherwise"
@@ -190,164 +190,164 @@
 " - 5e champ : 1 si la lettre est considérée comme une consonne au jeu de "
 "Scrabble, 0 sinon"
 
-#: dic/compdic.cpp:424
+#: dic/compdic.cpp:427
 msgid "Example for french:"
 msgstr "Exemple pour le Français :"
 
-#: dic/compdic.cpp:425
+#: dic/compdic.cpp:428
 msgid "A 1 9 1 0"
 msgstr "A 1 9 1 0"
 
-#: dic/compdic.cpp:426
+#: dic/compdic.cpp:429
 msgid "[...]"
 msgstr "[...]"
 
-#: dic/compdic.cpp:427
+#: dic/compdic.cpp:430
 msgid "Z 10 1 0 1"
 msgstr "Z 10 1 0 1"
 
-#: dic/compdic.cpp:428
+#: dic/compdic.cpp:431
 msgid "? 0 2 1 1"
 msgstr "? 0 2 1 1"
 
-#: dic/compdic.cpp:498
+#: dic/compdic.cpp:511
 msgid "A mandatory option is missing"
 msgstr "Une option obligatoire est manquante"
 
-#: dic/compdic.cpp:506
+#: dic/compdic.cpp:519
 msgid "Cannot stat uncompressed dictionary "
 msgstr "Impossible de trouver le dictionnaire non compressé "
 
-#: dic/compdic.cpp:514
+#: dic/compdic.cpp:527
 msgid "Cannot open output file "
 msgstr "Impossible d'ouvrir le fichier d'output "
 
-#: dic/compdic.cpp:562
+#: dic/compdic.cpp:575
 #, c-format
 msgid " Load time: %.3f s\n"
 msgstr " Temps de chargement : %.3f s\n"
 
-#: dic/compdic.cpp:563
+#: dic/compdic.cpp:576
 #, c-format
 msgid " Compression time: %.3f s\n"
 msgstr " Temps de compression : %.3f s\n"
 
-#: dic/compdic.cpp:565
+#: dic/compdic.cpp:578
 #, c-format
 msgid " Maximum recursion level reached: %d\n"
 msgstr " Niveau maximum de rcursion atteint : %d\n"
 
-#: dic/listdic.cpp:102
+#: dic/listdic.cpp:105
 #, c-format
 msgid "offset binary   | structure\n"
 msgstr "offset binaire  | structure\n"
 
-#: dic/listdic.cpp:111
+#: dic/listdic.cpp:114
 #, c-format
 msgid "usage: %s [-a|-h|-l|-x] dictionary\n"
 msgstr "Usage : %s [-a|-h|-l|-x] dictionnaire\n"
 
-#: dic/listdic.cpp:112
+#: dic/listdic.cpp:115
 #, c-format
 msgid "  -a: print all\n"
 msgstr "  -a : affiche tout\n"
 
-#: dic/listdic.cpp:113
+#: dic/listdic.cpp:116
 #, c-format
 msgid "  -h: print header\n"
 msgstr "  -h : affiche l'en-tête\n"
 
-#: dic/listdic.cpp:114
+#: dic/listdic.cpp:117
 #, c-format
 msgid "  -l: print dictionary word list\n"
 msgstr "  -l : affiche la liste de mots du dictionnaire\n"
 
-#: dic/listdic.cpp:115
+#: dic/listdic.cpp:118
 #, c-format
 msgid "  -x: print dictionary in hex\n"
 msgstr "  -x : affiche le dictionnaire en hexadécimal\n"
 
-#: dic/regexpmain.cpp:50
+#: dic/regexpmain.cpp:53
 #, c-format
 msgid "usage: %s dictionary"
 msgstr "Usage : %s dictionnaire"
 
-#: dic/regexpmain.cpp:51
+#: dic/regexpmain.cpp:54
 msgid "   dictionary: path to eliot dawg dictionary"
 msgstr "   dictionnaire : chemin vers un dictionnaire de type dawg pour Eliot"
 
-#: dic/regexpmain.cpp:81 dic/regexpmain.cpp:105
+#: dic/regexpmain.cpp:94 dic/regexpmain.cpp:118
 msgid "Enter a regular expression:"
 msgstr "Entrer une expression régulière :"
 
-#: dic/regexpmain.cpp:92
+#: dic/regexpmain.cpp:105
 msgid "result:"
 msgstr "résultat :"
 
-#: dic/regexpmain.cpp:101 wxwin/searchpanel.cc:296
+#: dic/regexpmain.cpp:114 wxwin/searchpanel.cc:296
 msgid "Invalid regular expression: "
 msgstr "Expression régulière invalide : "
 
-#: game/training.cpp:49 qt/new_game.cpp:96 qt/new_game.cpp:104
-#: qt/new_game.cpp:139 qt/ui/new_game.ui:46
+#: game/training.cpp:49 qt/new_game.cpp:97 qt/new_game.cpp:105
+#: qt/new_game.cpp:140 qt/ui/new_game.ui:46
 msgid "Training"
 msgstr "Entraînement"
 
-#: utils/ncurses.cpp:279
+#: utils/ncurses.cpp:282
 msgid "Scores"
 msgstr "Scores"
 
-#: utils/ncurses.cpp:283 utils/ncurses.cpp:288
+#: utils/ncurses.cpp:286 utils/ncurses.cpp:291
 #, c-format
 msgid "%s: %d"
 msgstr "%s : %d"
 
-#: utils/ncurses.cpp:300
+#: utils/ncurses.cpp:303
 msgid "Racks"
 msgstr "Tirages"
 
-#: utils/ncurses.cpp:304 utils/ncurses.cpp:310
+#: utils/ncurses.cpp:307 utils/ncurses.cpp:313
 #, c-format
 msgid "%s: %ls"
 msgstr "%s : %ls"
 
-#: utils/ncurses.cpp:324 utils/ncurses.cpp:327
+#: utils/ncurses.cpp:327 utils/ncurses.cpp:330
 msgid "Search complete"
 msgstr "Recherche terminée"
 
-#: utils/ncurses.cpp:337 qt/ui/training_widget.ui:71
+#: utils/ncurses.cpp:340 qt/ui/training_widget.ui:71
 msgid "Search results"
 msgstr "Résultats de la recherche"
 
-#: utils/ncurses.cpp:366
+#: utils/ncurses.cpp:369
 msgid "History of the game"
 msgstr "Historique de la partie"
 
-#: utils/ncurses.cpp:372
+#: utils/ncurses.cpp:375
 msgid " N |   RACK   |    SOLUTION     | REF | PTS | P | BONUS"
 msgstr " N |  TIRAGE  |    SOLUTION     | REF | PTS | J | BONUS"
 
-#: utils/ncurses.cpp:411 qt/history_widget.cpp:143 qt/main_window.cpp:442
+#: utils/ncurses.cpp:414 qt/history_widget.cpp:143 qt/main_window.cpp:545
 msgid "(PASS)"
 msgstr "(PASSE)"
 
-#: utils/ncurses.cpp:437 qt/ui/main_window.ui:100
+#: utils/ncurses.cpp:440
 msgid "Help"
 msgstr "Aide"
 
-#: utils/ncurses.cpp:441
+#: utils/ncurses.cpp:444
 msgid "[Global]"
 msgstr "[Général]"
 
-#: utils/ncurses.cpp:442
+#: utils/ncurses.cpp:445
 msgid "   h, H, ?          Show/hide help box"
 msgstr "   h, H, ?          Afficher/cacher la boîte d'aide"
 
-#: utils/ncurses.cpp:443
+#: utils/ncurses.cpp:446
 msgid "   y, Y             Show/hide history of the game"
 msgstr "   y, Y             Afficher/cacher l'historique de la partie"
 
-#: utils/ncurses.cpp:444
+#: utils/ncurses.cpp:447
 msgid ""
 "   b, B             Show/hide contents of the bag (including letters of the "
 "racks)"
@@ -355,99 +355,99 @@
 "   b, B             Afficher/cacher le contenu du sac (avec les lettres des "
 "tirages)"
 
-#: utils/ncurses.cpp:445
+#: utils/ncurses.cpp:448
 msgid "   e, E             Show/hide dots on empty squares of the board"
 msgstr ""
 "   e, E             Afficher/cacher les points sur les cases vides du "
 "plateau de jeu"
 
-#: utils/ncurses.cpp:446
+#: utils/ncurses.cpp:449
 msgid "   d, D             Check the existence of a word in the dictionary"
 msgstr "   d, D             Vérifier l'existence d'un mot dans le 
dictionnaire"
 
-#: utils/ncurses.cpp:447
+#: utils/ncurses.cpp:450
 msgid "   j, J             Play a word"
 msgstr "   j, J             Jouer un mot"
 
-#: utils/ncurses.cpp:448
+#: utils/ncurses.cpp:451
 msgid "   s, S             Save the game"
 msgstr "   s, S             Sauvegarder la partie"
 
-#: utils/ncurses.cpp:449
+#: utils/ncurses.cpp:452
 msgid "   l, L             Load a game"
 msgstr "   l, L             Charger une partie"
 
-#: utils/ncurses.cpp:450
+#: utils/ncurses.cpp:453
 msgid "   q, Q             Quit"
 msgstr "   q, Q             Quitter"
 
-#: utils/ncurses.cpp:453
+#: utils/ncurses.cpp:456
 msgid "[Training mode]"
 msgstr "[Mode entraînement]"
 
-#: utils/ncurses.cpp:454
+#: utils/ncurses.cpp:457
 msgid "   *                Take a random rack"
 msgstr "   *                Tirage aléatoire"
 
-#: utils/ncurses.cpp:455
+#: utils/ncurses.cpp:458
 msgid "   +                Complete the current rack randomly"
 msgstr "   +                Compléter le tirage courant de manière 
aléatoire"
 
-#: utils/ncurses.cpp:456
+#: utils/ncurses.cpp:459
 msgid "   t, T             Set the rack manually"
 msgstr "   t, T             Entrer le tirage manuellement"
 
-#: utils/ncurses.cpp:457
+#: utils/ncurses.cpp:460
 msgid "   c, C             Compute all the possible words"
 msgstr "   c, C             Calculer tous les mots possibles"
 
-#: utils/ncurses.cpp:458
+#: utils/ncurses.cpp:461
 msgid "   r, R             Show/hide search results"
 msgstr "   r, R             Afficher/cacher les résultats de la recherche"
 
-#: utils/ncurses.cpp:461
+#: utils/ncurses.cpp:464
 msgid "[Duplicate mode]"
 msgstr "[Mode duplicate]"
 
-#: utils/ncurses.cpp:462
+#: utils/ncurses.cpp:465
 msgid "   n, N             Switch to the next human player"
 msgstr "   n, N             Passer au joueur humain suivant"
 
-#: utils/ncurses.cpp:465
+#: utils/ncurses.cpp:468
 msgid "[Free game mode]"
 msgstr "[Mode partie libre]"
 
-#: utils/ncurses.cpp:466
+#: utils/ncurses.cpp:469
 msgid "   p, P             Pass your turn (with or without changing letters)"
 msgstr ""
 "   p, P             Passer son tour (en changeant ou pas certaines lettres)"
 
-#: utils/ncurses.cpp:469
+#: utils/ncurses.cpp:472
 msgid "[Miscellaneous]"
 msgstr "[Divers]"
 
-#: utils/ncurses.cpp:470
+#: utils/ncurses.cpp:473
 msgid "   <up>, <down>     Navigate in a box line by line"
 msgstr "   <haut>, <bas>    Naviguer dans une boîte ligne par ligne"
 
-#: utils/ncurses.cpp:471
+#: utils/ncurses.cpp:474
 msgid "   <pgup>, <pgdown> Navigate in a box page by page"
 msgstr "   <pgup>, <pgdown> Naviguer dans une boîte page par page"
 
-#: utils/ncurses.cpp:472
+#: utils/ncurses.cpp:475
 msgid "   Ctrl-l           Refresh the screen"
 msgstr "   Ctrl-l           Rafraîchir l'écran"
 
-#: utils/ncurses.cpp:483 wxwin/auxframes.cc:147 qt/main_window.cpp:525
-#: qt/ui/main_window.ui:188
+#: utils/ncurses.cpp:486 wxwin/auxframes.cc:147 qt/main_window.cpp:628
+#: qt/ui/main_window.ui:94
 msgid "Bag"
 msgstr "Sac"
 
-#: utils/ncurses.cpp:490
+#: utils/ncurses.cpp:493
 msgid " LETTER | POINTS | FREQUENCY | REMAINING"
 msgstr " LETTRE | POINTS | FREQUENCE | RESTANT"
 
-#: utils/ncurses.cpp:543
+#: utils/ncurses.cpp:546
 msgid "Play a word"
 msgstr "Jouer un mot"
 
@@ -455,115 +455,115 @@
 #. "Coordinates:". For example:
 #. Pl. word   :
 #. Coordinates:
-#: utils/ncurses.cpp:544 utils/ncurses.cpp:552
+#: utils/ncurses.cpp:547 utils/ncurses.cpp:555
 msgid "Played word:"
 msgstr "Mot joué    :"
 
-#: utils/ncurses.cpp:545 utils/ncurses.cpp:553
+#: utils/ncurses.cpp:548 utils/ncurses.cpp:556
 msgid "Coordinates:"
 msgstr "Coordonnées :"
 
-#: utils/ncurses.cpp:567
+#: utils/ncurses.cpp:570
 msgid "Incorrect or misplaced word"
 msgstr "Mot incorrect ou mal placé"
 
-#: utils/ncurses.cpp:577
+#: utils/ncurses.cpp:580
 msgid "Dictionary"
 msgstr "Dictionnaire"
 
-#: utils/ncurses.cpp:578
+#: utils/ncurses.cpp:581
 msgid "Enter the word to check:"
 msgstr "Entrer le mot à vérifier:"
 
-#: utils/ncurses.cpp:587
+#: utils/ncurses.cpp:590
 #, c-format
 msgid "The word '%ls' exists"
 msgstr "Le mot '%ls' existe"
 
-#: utils/ncurses.cpp:589
+#: utils/ncurses.cpp:592
 #, c-format
 msgid "The word '%ls' does not exist"
 msgstr "Le mot '%ls' n'existe pas"
 
-#: utils/ncurses.cpp:599 wxwin/mainframe.cc:475 wxwin/mainframe.cc:483
+#: utils/ncurses.cpp:602 wxwin/mainframe.cc:475 wxwin/mainframe.cc:483
 msgid "Save the game"
 msgstr "Sauvegarder la partie"
 
-#: utils/ncurses.cpp:600 utils/ncurses.cpp:630
+#: utils/ncurses.cpp:603 utils/ncurses.cpp:633
 msgid "Enter the file name:"
 msgstr "Entrer le nom du fichier :"
 
-#: utils/ncurses.cpp:610
+#: utils/ncurses.cpp:613
 #, c-format
 msgid "Cannot open file %ls for writing"
 msgstr "Impossible d'ouvrir le fichier %ls en écriture"
 
-#: utils/ncurses.cpp:618
+#: utils/ncurses.cpp:621
 #, c-format
 msgid "Game saved in '%ls'"
 msgstr "Partie sauvée dans '%ls'"
 
-#: utils/ncurses.cpp:629 wxwin/mainframe.cc:275 wxwin/mainframe.cc:405
-#: wxwin/mainframe.cc:429 qt/main_window.cpp:287
+#: utils/ncurses.cpp:632 wxwin/mainframe.cc:275 wxwin/mainframe.cc:405
+#: wxwin/mainframe.cc:429 qt/main_window.cpp:390
 msgid "Load a game"
 msgstr "Charger une partie"
 
-#: utils/ncurses.cpp:640
+#: utils/ncurses.cpp:643
 #, c-format
 msgid "Cannot open file '%ls' for reading"
 msgstr "Impossible d'ouvrir le fichier '%ls' en lecture"
 
-#: utils/ncurses.cpp:648
+#: utils/ncurses.cpp:651
 #, c-format
 msgid "Invalid saved game"
 msgstr "Partie sauvée invalide"
 
-#: utils/ncurses.cpp:653 qt/main_window.cpp:301
+#: utils/ncurses.cpp:656 qt/main_window.cpp:404
 #, c-format
 msgid "Game loaded"
 msgstr "Partie chargée"
 
-#: utils/ncurses.cpp:668
+#: utils/ncurses.cpp:671
 msgid "Pass your turn"
 msgstr "Passer son tour"
 
-#: utils/ncurses.cpp:669
+#: utils/ncurses.cpp:672
 msgid "Enter the letters to change:"
 msgstr "Entrer les lettres à changer:"
 
-#: utils/ncurses.cpp:678
+#: utils/ncurses.cpp:681
 msgid "Cannot pass the turn"
 msgstr "Impossible de passer le tour"
 
-#: utils/ncurses.cpp:688
+#: utils/ncurses.cpp:691
 msgid "Set rack"
 msgstr "Choix du tirage"
 
-#: utils/ncurses.cpp:689
+#: utils/ncurses.cpp:692
 msgid "Enter the new letters:"
 msgstr "Entrer les nouvelles lettres:"
 
-#: utils/ncurses.cpp:698
+#: utils/ncurses.cpp:701
 msgid "Cannot take these letters from the bag"
 msgstr "Impossible de retirer ces lettres du sac"
 
-#: utils/ncurses.cpp:1092 qt/main_window.cpp:193 qt/ui/prefs_dialog.ui:175
+#: utils/ncurses.cpp:1095 qt/main_window.cpp:211 qt/ui/prefs_dialog.ui:181
 msgid "Training mode"
 msgstr "Mode entraînement"
 
-#: utils/ncurses.cpp:1094 qt/ui/prefs_dialog.ui:156
+#: utils/ncurses.cpp:1097 qt/ui/prefs_dialog.ui:162
 msgid "Free game mode"
 msgstr "Mode partie libre"
 
-#: utils/ncurses.cpp:1096 qt/ui/prefs_dialog.ui:69
+#: utils/ncurses.cpp:1099 qt/ui/prefs_dialog.ui:75
 msgid "Duplicate mode"
 msgstr "Mode duplicate"
 
-#: utils/ncurses.cpp:1099 qt/ui/new_game.ui:67
+#: utils/ncurses.cpp:1102 qt/ui/new_game.ui:67
 msgid "Joker game"
 msgstr "Partie joker"
 
-#: utils/ncurses.cpp:1100
+#: utils/ncurses.cpp:1103
 msgid "[h for help]"
 msgstr "[h pour l'aide]"
 
@@ -820,7 +820,7 @@
 msgid "&New game\tCtrl+N"
 msgstr "&Nouvelle partie\tCtrl+N"
 
-#: wxwin/mainframe.cc:272 qt/ui/main_window.ui:177
+#: wxwin/mainframe.cc:272 qt/main_window.cpp:308
 msgid "Start a new game"
 msgstr "Démarrer une nouvelle partie"
 
@@ -840,7 +840,7 @@
 msgid "&Save as...\tCtrl+S"
 msgstr "&Enregistrer sous...\tCtrl+S"
 
-#: wxwin/mainframe.cc:276 qt/ui/main_window.ui:232
+#: wxwin/mainframe.cc:276 qt/main_window.cpp:313
 msgid "Save the current game"
 msgstr "Sauvegarder la partie en cours"
 
@@ -872,7 +872,7 @@
 msgid "&Quit\tCtrl+Q"
 msgstr "&Quitter\tCtrl+Q"
 
-#: wxwin/mainframe.cc:284 qt/ui/main_window.ui:169
+#: wxwin/mainframe.cc:284 qt/main_window.cpp:319
 msgid "Quit Eliot"
 msgstr "Quitter Eliot"
 
@@ -880,7 +880,7 @@
 msgid "&Dictionary...\tCtrl+D"
 msgstr "&Dictionnaire...\tCtrl+D"
 
-#: wxwin/mainframe.cc:287 wxwin/mainframe.cc:604 qt/main_window.cpp:492
+#: wxwin/mainframe.cc:287 wxwin/mainframe.cc:604 qt/main_window.cpp:595
 msgid "Choose a dictionary"
 msgstr "Choisir un dictionnaire"
 
@@ -989,6 +989,7 @@
 msgstr "Police de caractères pour la recherche"
 
 #: wxwin/mainframe.cc:310 wxwin/mainframe.cc:334 qt/history_widget.cpp:177
+#: qt/main_window.cpp:306
 msgid "&Game"
 msgstr "&Partie"
 
@@ -1084,24 +1085,24 @@
 msgid "R&esults"
 msgstr "Ré&sultats"
 
-#: wxwin/mainframe.cc:331
+#: wxwin/mainframe.cc:331 qt/main_window.cpp:344
 msgid "&About..."
 msgstr "À &propos..."
 
-#: wxwin/mainframe.cc:331 wxwin/mainframe.cc:733 qt/main_window.cpp:603
-#: qt/ui/main_window.ui:161
+#: wxwin/mainframe.cc:331 wxwin/mainframe.cc:733 qt/main_window.cpp:345
+#: qt/main_window.cpp:706
 msgid "About Eliot"
 msgstr "À propos d'Eliot"
 
-#: wxwin/mainframe.cc:335
+#: wxwin/mainframe.cc:335 qt/main_window.cpp:323
 msgid "&Settings"
-msgstr "&Paramètres"
+msgstr "Para&mètres"
 
-#: wxwin/mainframe.cc:336
+#: wxwin/mainframe.cc:336 qt/main_window.cpp:331
 msgid "&Windows"
 msgstr "&Fenêtres"
 
-#: wxwin/mainframe.cc:337
+#: wxwin/mainframe.cc:337 qt/main_window.cpp:343
 msgid "&Help"
 msgstr "&Aide"
 
@@ -1118,7 +1119,7 @@
 msgid "Cannot open "
 msgstr "Impossible d'ouvrir "
 
-#: wxwin/mainframe.cc:440 wxwin/mainframe.cc:449 qt/main_window.cpp:294
+#: wxwin/mainframe.cc:440 wxwin/mainframe.cc:449 qt/main_window.cpp:397
 msgid "Error while loading the game"
 msgstr "Erreur pendant le chargement de la partie"
 
@@ -1290,83 +1291,207 @@
 msgid "Player"
 msgstr "Joueur"
 
-#: qt/main_window.cpp:91 qt/main_window.cpp:543 qt/ui/main_window.ui:40
+#: qt/main_window.cpp:109 qt/main_window.cpp:646 qt/ui/main_window.ui:40
 msgid "Board"
 msgstr "Grille"
 
-#: qt/main_window.cpp:144
+#: qt/main_window.cpp:162
 msgid "Cannot load dictionary '%1' indicated in the preferences"
 msgstr ""
 "Impossible de charger le dictionnaire '%1' indiqué dans les préférences"
 
-#: qt/main_window.cpp:185
+#: qt/main_window.cpp:203
 msgid "No game"
 msgstr "Pas de partie en cours"
 
-#: qt/main_window.cpp:197
+#: qt/main_window.cpp:215
 msgid "Duplicate game"
 msgstr "Partie duplicate"
 
-#: qt/main_window.cpp:201 qt/new_game.cpp:98 qt/new_game.cpp:164
+#: qt/main_window.cpp:219 qt/new_game.cpp:99 qt/new_game.cpp:165
 #: qt/ui/new_game.ui:41
 msgid "Free game"
 msgstr "Partie libre"
 
-#: qt/main_window.cpp:250 qt/main_window.cpp:283
+#: qt/main_window.cpp:237
+msgid "%1 error"
+msgstr "Erreur %1"
+
+#: qt/main_window.cpp:307
+msgid "&New..."
+msgstr "&Nouvelle partie..."
+
+#: qt/main_window.cpp:307
+msgid "Ctrl+N"
+msgstr "Ctrl+N"
+
+#: qt/main_window.cpp:310
+msgid "&Load..."
+msgstr "&Charger..."
+
+#: qt/main_window.cpp:310
+msgid "Ctrl+O"
+msgstr "Ctrl-O"
+
+#: qt/main_window.cpp:311
+msgid "Load an existing game"
+msgstr "Charger une partie existante"
+
+#: qt/main_window.cpp:312
+msgid "&Save as..."
+msgstr "&Enregistrer sous..."
+
+#: qt/main_window.cpp:312
+msgid "Ctrl+S"
+msgstr "Ctrl+S"
+
+#: qt/main_window.cpp:315
+msgid "&Print..."
+msgstr "Im&primer..."
+
+#: qt/main_window.cpp:315
+msgid "Ctrl+P"
+msgstr "Ctrl+P"
+
+#: qt/main_window.cpp:316
+msgid "Print the current game"
+msgstr "Imprimer la partie en cours"
+
+#: qt/main_window.cpp:318
+msgid "&Quit"
+msgstr "&Quitter"
+
+#: qt/main_window.cpp:318
+msgid "Ctrl+Q"
+msgstr "Ctrl+Q"
+
+#: qt/main_window.cpp:324
+msgid "&Choose dictionary..."
+msgstr "Choisir un &dictionnaire..."
+
+#: qt/main_window.cpp:325
+msgid "Select a new dictionary"
+msgstr "Choisir un nouveau dictionnaire"
+
+#: qt/main_window.cpp:326
+msgid "&Preferences..."
+msgstr "&Préférences..."
+
+#: qt/main_window.cpp:326
+msgid "Ctrl+F"
+msgstr "Ctrl-F"
+
+#: qt/main_window.cpp:327
+msgid "Edit the preferences"
+msgstr "Modifier les préférences"
+
+#: qt/main_window.cpp:332
+msgid "&Bag"
+msgstr "&Sac"
+
+#: qt/main_window.cpp:332
+msgid "Ctrl+B"
+msgstr "Ctrl+B"
+
+#: qt/main_window.cpp:333 qt/ui/main_window.ui:97
+msgid "Show/hide the remaining tiles in the bag"
+msgstr "Afficher/cacher les lettres restantes dans le sac"
+
+#: qt/main_window.cpp:334
+msgid "&External board"
+msgstr "&Plateau de jeu externe"
+
+#: qt/main_window.cpp:334
+msgid "Ctrl+E"
+msgstr "Ctrl+E"
+
+#: qt/main_window.cpp:335 qt/ui/main_window.ui:111
+msgid "Show/hide the external board"
+msgstr "Afficher/cacher le plateau de jeu externe"
+
+#: qt/main_window.cpp:336
+msgid "&History"
+msgstr "&Historique"
+
+#: qt/main_window.cpp:336
+msgid "Ctrl+H"
+msgstr "Ctrl+H"
+
+#: qt/main_window.cpp:337 qt/ui/main_window.ui:125
+msgid "Show/hide the game history"
+msgstr "Afficher/cacher l'historique de la partie"
+
+#: qt/main_window.cpp:338
+msgid "&Dictionary tools"
+msgstr "Outils du &dictionnaire"
+
+#: qt/main_window.cpp:338
+msgid "Ctrl+D"
+msgstr "Ctrl+D"
+
+#: qt/main_window.cpp:339 qt/ui/main_window.ui:139
+msgid "Show/hide the dictionary tools"
+msgstr "Afficher/cacher les outils de recherche dans le dictionnaire"
+
+#: qt/main_window.cpp:344
+msgid "Ctrl+A"
+msgstr "Ctrl+A"
+
+#: qt/main_window.cpp:353 qt/main_window.cpp:386
 msgid "You have to select a dictionary first!"
 msgstr "Vous devez d'abord choisir un dictionnaire !"
 
-#: qt/main_window.cpp:275
+#: qt/main_window.cpp:378
 msgid "Game started"
 msgstr "Partie démarrée"
 
-#: qt/main_window.cpp:311
+#: qt/main_window.cpp:414
 msgid "Save a game"
 msgstr "Sauvegarder la partie"
 
-#: qt/main_window.cpp:316
+#: qt/main_window.cpp:419
 msgid "Game saved"
 msgstr "Partie enregistrée"
 
-#: qt/main_window.cpp:350
+#: qt/main_window.cpp:453
 msgid "N."
 msgstr "N."
 
-#: qt/main_window.cpp:350
+#: qt/main_window.cpp:453
 msgid "RACK"
 msgstr "TIRAGE"
 
-#: qt/main_window.cpp:350
+#: qt/main_window.cpp:453
 msgid "SOLUTION"
 msgstr "SOLUTION"
 
-#: qt/main_window.cpp:350
+#: qt/main_window.cpp:453
 msgid "REF"
 msgstr "REF"
 
-#: qt/main_window.cpp:350
+#: qt/main_window.cpp:453
 msgid "PTS"
 msgstr "PTS"
 
-#: qt/main_window.cpp:483
+#: qt/main_window.cpp:586
 msgid "Stop current game?"
 msgstr "Arrêter la partie en cours ?"
 
-#: qt/main_window.cpp:484
+#: qt/main_window.cpp:587
 msgid ""
 "Loading a dictionary will stop the current game. Do you want to continue?"
 msgstr ""
 "Charger un dictionnaire arrêtera la partie en cours. Voulez-vous continuer ?"
 
-#: qt/main_window.cpp:561 qt/ui/main_window.ui:53 qt/ui/main_window.ui:257
+#: qt/main_window.cpp:664 qt/ui/main_window.ui:53 qt/ui/main_window.ui:122
 msgid "History"
 msgstr "Historique"
 
-#: qt/main_window.cpp:578 qt/ui/main_window.ui:282
+#: qt/main_window.cpp:681 qt/ui/main_window.ui:136
 msgid "Dictionary tools"
 msgstr "Outils du dictionnaire"
 
-#: qt/main_window.cpp:595
+#: qt/main_window.cpp:698
 msgid ""
 "Copyright (C) 1999-2008 - Antoine Fraboulet & Olivier Teuliere\n"
 "\n"
@@ -1390,8 +1515,8 @@
 msgid "Computer"
 msgstr "Ordinateur"
 
-#: qt/new_game.cpp:46 qt/new_game.cpp:53 qt/new_game.cpp:111
-#: qt/new_game.cpp:200 qt/new_game.cpp:203
+#: qt/new_game.cpp:46 qt/new_game.cpp:53 qt/new_game.cpp:112
+#: qt/new_game.cpp:201 qt/new_game.cpp:204
 msgid "Player %1"
 msgstr "Joueur %1"
 
@@ -1411,7 +1536,7 @@
 msgid "Eliot"
 msgstr "Eliot"
 
-#: qt/new_game.cpp:163 qt/ui/new_game.ui:36
+#: qt/new_game.cpp:164 qt/ui/new_game.ui:36
 msgid "Duplicate"
 msgstr "Duplicate"
 
@@ -1451,90 +1576,10 @@
 msgid "Players"
 msgstr "Joueurs"
 
-#: qt/ui/main_window.ui:80
-msgid "Game"
-msgstr "&Partie"
-
-#: qt/ui/main_window.ui:93
-msgid "Settings"
-msgstr "Para&mètres"
-
-#: qt/ui/main_window.ui:107
-msgid "Windows"
-msgstr "&Fenêtres"
-
-#: qt/ui/main_window.ui:150
-msgid "Choose dictionary..."
-msgstr "Choisir un &dictionnaire..."
-
-#: qt/ui/main_window.ui:153
-msgid "Select a new dictionary"
-msgstr "Choisir un nouveau dictionnaire"
-
-#: qt/ui/main_window.ui:158
-msgid "About..."
-msgstr "À &propos..."
-
-#: qt/ui/main_window.ui:166
-msgid "Quit"
-msgstr "&Quitter"
-
-#: qt/ui/main_window.ui:174
-msgid "New..."
-msgstr "&Nouvelle partie..."
-
-#: qt/ui/main_window.ui:191
-msgid "Show/hide the remaining tiles in the bag"
-msgstr "Afficher/cacher les lettres restantes dans le sac"
-
-#: qt/ui/main_window.ui:199
-msgid "Preferences..."
-msgstr "&Préférences..."
-
-#: qt/ui/main_window.ui:202
-msgid "Edit the preferences"
-msgstr "Modifier les préférences"
-
-#: qt/ui/main_window.ui:210
-msgid "Save"
-msgstr "Sauver"
-
-#: qt/ui/main_window.ui:218
-msgid "Load..."
-msgstr "&Charger..."
-
-#: qt/ui/main_window.ui:221
-msgid "Load an existing game"
-msgstr "Charger une partie existante"
-
-#: qt/ui/main_window.ui:229
-msgid "Save as..."
-msgstr "&Enregistrer sous..."
-
-#: qt/ui/main_window.ui:243
+#: qt/ui/main_window.ui:108
 msgid "External board"
 msgstr "&Plateau de jeu externe"
 
-#: qt/ui/main_window.ui:246
-msgid "Show/hide the external board"
-msgstr "Afficher/cacher le plateau de jeu externe"
-
-#: qt/ui/main_window.ui:260
-msgid "Show/hide the game history"
-msgstr "Afficher/cacher l'historique de la partie"
-
-#: qt/ui/main_window.ui:268
-msgid "Print..."
-msgstr "&Impression..."
-
-#: qt/ui/main_window.ui:271
-msgid "Print the current game"
-msgstr "Imprimer la partie en cours"
-
-#: qt/ui/main_window.ui:285
-msgid "Show/hide the dictionary tools"
-msgstr "Afficher/cacher les outils de recherche dans le dictionnaire"
-
 #: qt/ui/new_game.ui:13
 msgid "New game"
 msgstr "Nouvelle partie"
@@ -1611,19 +1656,19 @@
 msgid "Dictionary path:"
 msgstr "Chemin du dictionnaire :"
 
-#: qt/ui/prefs_dialog.ui:34
+#: qt/ui/prefs_dialog.ui:40
 msgid "Enter the dictionary path (mandatory to start a game)"
 msgstr "Entrer le chemin du dictionnaire (obligatoire pour jouer une partie)"
 
-#: qt/ui/prefs_dialog.ui:41
+#: qt/ui/prefs_dialog.ui:47
 msgid "Open a browser window to choose the dictionary"
 msgstr "Ouvre une fenêtre de sélection du dictionnaire"
 
-#: qt/ui/prefs_dialog.ui:44
+#: qt/ui/prefs_dialog.ui:50
 msgid "Browse..."
 msgstr "Parcourir..."
 
-#: qt/ui/prefs_dialog.ui:53
+#: qt/ui/prefs_dialog.ui:59
 msgid ""
 "If checked, the game and player histories will display the rack and the "
 "corresponding solution on the same line"
@@ -1631,11 +1676,11 @@
 "Si la case est cochée, les historiques de la partie et des joueurs "
 "afficheront le tirage et la solution correspondante sur la même ligne"
 
-#: qt/ui/prefs_dialog.ui:56
+#: qt/ui/prefs_dialog.ui:62
 msgid "Align the rack and the solution in history"
 msgstr "Aligner tirages et solutions dans l'historique"
 
-#: qt/ui/prefs_dialog.ui:75 qt/ui/prefs_dialog.ui:162
+#: qt/ui/prefs_dialog.ui:81 qt/ui/prefs_dialog.ui:168
 msgid ""
 "If checked, playing an invalid or misplaced word will not be possible. If "
 "unchecked, you will get 0 point and lose your turn"
@@ -1643,23 +1688,23 @@
 "Si la case est cochée, jouer un mot invalide ou mal placé sera impossible. "
 "Sinon, un tel mot apportera 0 point et vous perdrez votre tour"
 
-#: qt/ui/prefs_dialog.ui:78 qt/ui/prefs_dialog.ui:165
+#: qt/ui/prefs_dialog.ui:84 qt/ui/prefs_dialog.ui:171
 msgid "Refuse to play invalid moves"
 msgstr "Refuser de jouer des mots invalides"
 
-#: qt/ui/prefs_dialog.ui:87
+#: qt/ui/prefs_dialog.ui:93
 msgid "Min. players for a solo:"
 msgstr "Nombre minimal de joueurs pour un solo :"
 
-#: qt/ui/prefs_dialog.ui:107
+#: qt/ui/prefs_dialog.ui:113
 msgid "Minimum number of players needed to take into account the solo bonus"
 msgstr "Nombre minimal de joueurs pour prendre en compte la prime de solo"
 
-#: qt/ui/prefs_dialog.ui:121
+#: qt/ui/prefs_dialog.ui:127
 msgid "Solo value:"
 msgstr "Valeur du solo :"
 
-#: qt/ui/prefs_dialog.ui:141
+#: qt/ui/prefs_dialog.ui:147
 msgid "Value of the solo bonus. Set it to 0 if you don't want solo bonus"
 msgstr ""
 "Valeur de la prime de solo. Mettez 0 pour désactiver les primes de solo."
@@ -1672,6 +1717,42 @@
 msgid "Complement"
 msgstr "Complément"
 
+#~ msgid "Choose dictionary..."
+#~ msgstr "Choisir un &dictionnaire..."
+
+#~ msgid "About..."
+#~ msgstr "À &propos..."
+
+#~ msgid "Quit"
+#~ msgstr "&Quitter"
+
+#~ msgid "New..."
+#~ msgstr "&Nouvelle partie..."
+
+#~ msgid "Preferences..."
+#~ msgstr "&Préférences..."
+
+#~ msgid "Save"
+#~ msgstr "Sauver"
+
+#~ msgid "Load..."
+#~ msgstr "&Charger..."
+
+#~ msgid "Save as..."
+#~ msgstr "&Enregistrer sous..."
+
+#~ msgid "Print..."
+#~ msgstr "&Impression..."
+
+#~ msgid "Game"
+#~ msgstr "&Partie"
+
+#~ msgid "Settings"
+#~ msgstr "Para&mètres"
+
+#~ msgid "Windows"
+#~ msgstr "&Fenêtres"
+
 #~ msgid "AI"
 #~ msgstr "IA"
 

Index: qt/board_widget.cpp
===================================================================
RCS file: /cvsroot/eliot/eliot/qt/board_widget.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- qt/board_widget.cpp 26 Jan 2008 23:03:34 -0000      1.4
+++ qt/board_widget.cpp 6 Sep 2008 20:06:58 -0000       1.5
@@ -75,6 +75,11 @@
     int size = std::min(width(), height());
     int squareSize = (int)floor((size - 1) / (BOARD_MAX - BOARD_MIN + 2));
 
+    // The font must grow with the square size
+    QFont f = font();
+    f.setPixelSize(squareSize * 2 / 3);
+    setFont(f);
+
     // XXX: Naive implementation: we repaint everything every time
     QPainter painter(this);
     //painter.setPen(Qt::NoPen);

Index: qt/main_window.cpp
===================================================================
RCS file: /cvsroot/eliot/eliot/qt/main_window.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- qt/main_window.cpp  5 Sep 2008 21:31:31 -0000       1.11
+++ qt/main_window.cpp  6 Sep 2008 20:06:58 -0000       1.12
@@ -68,6 +68,7 @@
     m_historyWindow(NULL), m_dicToolsWindow(NULL), m_dicNameLabel(NULL)
 {
     m_ui.setupUi(this);
+    createMenu();
     readSettings();
 
     // Initialize the random numbers generator
@@ -197,14 +198,14 @@
 {
     if (iGame == NULL)
     {
-        m_ui.action_GameSaveAs->setEnabled(false);
-        m_ui.action_GamePrint->setEnabled(false);
+        m_actionGameSaveAs->setEnabled(false);
+        m_actionGamePrint->setEnabled(false);
         setWindowTitle(_q("No game") + " - Eliot");
     }
     else
     {
-        m_ui.action_GameSaveAs->setEnabled(true);
-        m_ui.action_GamePrint->setEnabled(true);
+        m_actionGameSaveAs->setEnabled(true);
+        m_actionGamePrint->setEnabled(true);
         if (iGame->getMode() == Game::kTRAINING)
         {
             setWindowTitle(_q("Training mode") + " - Eliot");
@@ -283,7 +284,69 @@
 }
 
 
-void MainWindow::on_action_GameNew_triggered()
+QAction * MainWindow::addMenuAction(QMenu *menu, QString iText,
+                                    const QKeySequence &iShortcut,
+                                    QString iStatusTip, const char *iMember,
+                                    bool iCheckable)
+{
+    QAction *action = new QAction(iText, this);
+    action->setShortcut(iShortcut);
+    action->setStatusTip(iStatusTip);
+    action->setCheckable(iCheckable);
+    QObject::connect(action, SIGNAL(triggered()), this, iMember);
+    menu->addAction(action);
+    return action;
+}
+
+
+void MainWindow::createMenu()
+{
+    QMenu *menuFile = new QMenu(m_ui.menubar);
+    m_ui.menubar->addAction(menuFile->menuAction());
+    menuFile->setTitle(_q("&Game"));
+    addMenuAction(menuFile, _q("&New..."), _q("Ctrl+N"),
+                  _q("Start a new game"), SLOT(onGameNew()));
+    menuFile->addSeparator();
+    addMenuAction(menuFile, _q("&Load..."), _q("Ctrl+O"),
+                  _q("Load an existing game"), SLOT(onGameLoad()));
+    m_actionGameSaveAs = addMenuAction(menuFile, _q("&Save as..."), 
_q("Ctrl+S"),
+                  _q("Save the current game"), SLOT(onGameSaveAs()));
+    menuFile->addSeparator();
+    m_actionGamePrint = addMenuAction(menuFile, _q("&Print..."), _q("Ctrl+P"),
+                  _q("Print the current game"), SLOT(onGamePrint()));
+    menuFile->addSeparator();
+    addMenuAction(menuFile, _q("&Quit"), _q("Ctrl+Q"),
+                  _q("Quit Eliot"), SLOT(close()));
+
+    QMenu *menuSettings = new QMenu(m_ui.menubar);
+    m_ui.menubar->addAction(menuSettings->menuAction());
+    menuSettings->setTitle(_q("&Settings"));
+    addMenuAction(menuSettings, _q("&Choose dictionary..."), QString(""),
+                  _q("Select a new dictionary"), SLOT(onSettingsChooseDic()));
+    addMenuAction(menuSettings, _q("&Preferences..."), _q("Ctrl+F"),
+                  _q("Edit the preferences"), SLOT(onSettingsPreferences()));
+
+    QMenu *menuWindows = new QMenu(m_ui.menubar);
+    m_ui.menubar->addAction(menuWindows->menuAction());
+    menuWindows->setTitle(_q("&Windows"));
+    m_actionWindowsBag = addMenuAction(menuWindows, _q("&Bag"), _q("Ctrl+B"),
+                  _q("Show/hide the remaining tiles in the bag"), 
SLOT(onWindowsBag()), true);
+    m_actionWindowsBoard = addMenuAction(menuWindows, _q("&External board"), 
_q("Ctrl+E"),
+                  _q("Show/hide the external board"), SLOT(onWindowsBoard()), 
true);
+    m_actionWindowsHistory = addMenuAction(menuWindows, _q("&History"), 
_q("Ctrl+H"),
+                  _q("Show/hide the game history"), SLOT(onWindowsHistory()), 
true);
+    m_actionWindowsDicTools = addMenuAction(menuWindows, _q("&Dictionary 
tools"), _q("Ctrl+D"),
+                  _q("Show/hide the dictionary tools"), 
SLOT(onWindowsDicTools()), true);
+
+    QMenu *menuHelp = new QMenu(m_ui.menubar);
+    m_ui.menubar->addAction(menuHelp->menuAction());
+    menuHelp->setTitle(_q("&Help"));
+    addMenuAction(menuHelp, _q("&About..."), _q("Ctrl+A"),
+                  _q("About Eliot"), SLOT(onHelpAbout()));
+}
+
+
+void MainWindow::onGameNew()
 {
     if (m_dic == NULL)
     {
@@ -316,7 +379,7 @@
 }
 
 
-void MainWindow::on_action_GameLoad_triggered()
+void MainWindow::onGameLoad()
 {
     if (m_dic == NULL)
     {
@@ -343,7 +406,7 @@
 }
 
 
-void MainWindow::on_action_GameSaveAs_triggered()
+void MainWindow::onGameSaveAs()
 {
     if (m_game == NULL)
         return;
@@ -358,7 +421,7 @@
 }
 
 
-void MainWindow::on_action_GamePrint_triggered()
+void MainWindow::onGamePrint()
 {
     if (m_game == NULL)
         return;
@@ -504,7 +567,7 @@
 }
 
 
-void MainWindow::on_action_SettingsPreferences_triggered()
+void MainWindow::onSettingsPreferences()
 {
     if (m_prefsDialog == NULL)
     {
@@ -516,7 +579,7 @@
 }
 
 
-void MainWindow::on_action_SettingsChooseDic_triggered()
+void MainWindow::onSettingsChooseDic()
 {
     if (m_game)
     {
@@ -555,7 +618,7 @@
 }
 
 
-void MainWindow::on_action_WindowsBag_triggered()
+void MainWindow::onWindowsBag()
 {
     if (m_bagWindow == NULL)
     {
@@ -563,7 +626,7 @@
         BagWidget *bag = new BagWidget(NULL);
         bag->setGame(m_game);
         m_bagWindow = new AuxWindow(*bag, _q("Bag"), "BagWindow",
-                                    m_ui.action_WindowsBag);
+                                    m_actionWindowsBag);
         QObject::connect(this, SIGNAL(gameChanged(const Game*)),
                          bag, SLOT(setGame(const Game*)));
         QObject::connect(this, SIGNAL(gameUpdated()),
@@ -573,7 +636,7 @@
 }
 
 
-void MainWindow::on_action_WindowsBoard_triggered()
+void MainWindow::onWindowsBoard()
 {
     if (m_boardWindow == NULL)
     {
@@ -581,7 +644,7 @@
         BoardWidget *board = new BoardWidget(NULL);
         board->setGame(m_game);
         m_boardWindow = new AuxWindow(*board, _q("Board"), "BoardWindow",
-                                      m_ui.action_WindowsBoard);
+                                      m_actionWindowsBoard);
         QObject::connect(this, SIGNAL(gameChanged(const Game*)),
                          board, SLOT(setGame(const Game*)));
         QObject::connect(this, SIGNAL(gameUpdated()),
@@ -591,7 +654,7 @@
 }
 
 
-void MainWindow::on_action_WindowsHistory_triggered()
+void MainWindow::onWindowsHistory()
 {
     if (m_historyWindow == NULL)
     {
@@ -599,7 +662,7 @@
         HistoryTabWidget *history = new HistoryTabWidget(NULL);
         history->setGame(m_game);
         m_historyWindow = new AuxWindow(*history, _q("History"), 
"HistoryWindow",
-                                        m_ui.action_WindowsHistory);
+                                        m_actionWindowsHistory);
         QObject::connect(this, SIGNAL(gameChanged(const Game*)),
                          history, SLOT(setGame(const Game*)));
         QObject::connect(this, SIGNAL(gameUpdated()),
@@ -609,14 +672,14 @@
 }
 
 
-void MainWindow::on_action_WindowsDicTools_triggered()
+void MainWindow::onWindowsDicTools()
 {
     if (m_dicToolsWindow == NULL)
     {
         // Create the window
         DicToolsWidget *dicTools = new DicToolsWidget(NULL);
         m_dicToolsWindow = new AuxWindow(*dicTools, _q("Dictionary tools"), 
"DicTools",
-                                    m_ui.action_WindowsDicTools);
+                                    m_actionWindowsDicTools);
         QObject::connect(this, SIGNAL(dicChanged(const Dictionary*)),
                          dicTools, SLOT(setDic(const Dictionary*)));
         // Fake a dictionary selection
@@ -627,7 +690,7 @@
 }
 
 
-void MainWindow::on_action_HelpAbout_triggered()
+void MainWindow::onHelpAbout()
 {
     QString msg;
     msg.sprintf("Eliot %s\n\n", VERSION);

Index: qt/main_window.h
===================================================================
RCS file: /cvsroot/eliot/eliot/qt/main_window.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- qt/main_window.h    5 Sep 2008 21:31:31 -0000       1.10
+++ qt/main_window.h    6 Sep 2008 20:06:58 -0000       1.11
@@ -35,6 +35,7 @@
 class PrefsDialog;
 class AuxWindow;
 class QLabel;
+class QAction;
 
 class MainWindow: public QMainWindow
 {
@@ -60,17 +61,17 @@
     virtual void closeEvent(QCloseEvent * e);
 
 private slots:
-    void on_action_GameNew_triggered();
-    void on_action_GameLoad_triggered();
-    void on_action_GameSaveAs_triggered();
-    void on_action_GamePrint_triggered();
-    void on_action_SettingsChooseDic_triggered();
-    void on_action_SettingsPreferences_triggered();
-    void on_action_WindowsBag_triggered();
-    void on_action_WindowsBoard_triggered();
-    void on_action_WindowsHistory_triggered();
-    void on_action_WindowsDicTools_triggered();
-    void on_action_HelpAbout_triggered();
+    void onGameNew();
+    void onGameLoad();
+    void onGameSaveAs();
+    void onGamePrint();
+    void onSettingsChooseDic();
+    void onSettingsPreferences();
+    void onWindowsBag();
+    void onWindowsBoard();
+    void onWindowsHistory();
+    void onWindowsDicTools();
+    void onHelpAbout();
 
     /**
      * Perform several updates when the game changes (title bar, status bar,
@@ -97,13 +98,21 @@
     /// Dialog for the preferences
     PrefsDialog *m_prefsDialog;
 
+    /// Actions enabled or disabled depending on the game state
+    QAction *m_actionGamePrint;
+    QAction *m_actionGameSaveAs;
+
     static const char * m_windowName;
 
     /// Auxiliary windows
     //@{
+    QAction *m_actionWindowsBag;
     AuxWindow *m_bagWindow;
+    QAction *m_actionWindowsBoard;
     AuxWindow *m_boardWindow;
+    QAction *m_actionWindowsHistory;
     AuxWindow *m_historyWindow;
+    QAction *m_actionWindowsDicTools;
     AuxWindow *m_dicToolsWindow;
     //@}
 
@@ -115,6 +124,15 @@
     /// Restore window state
     void readSettings();
 
+    /// Helper function to easemenu creation
+    QAction * addMenuAction(QMenu *menu, QString iText,
+                            const QKeySequence &iShortcut,
+                            QString iStatusTip, const char *iMember,
+                            bool iCheckable = false);
+
+    /// Create the menu bar and the actions
+    void createMenu();
+
     /// Destroy the current game (if any) and the associated widgets
     void destroyCurrentGame();
 

Index: qt/ui/main_window.ui
===================================================================
RCS file: /cvsroot/eliot/eliot/qt/ui/main_window.ui,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- qt/ui/main_window.ui        5 Sep 2008 21:31:31 -0000       1.10
+++ qt/ui/main_window.ui        6 Sep 2008 20:06:59 -0000       1.11
@@ -75,46 +75,6 @@
      <height>26</height>
     </rect>
    </property>
-   <widget class="QMenu" name="menuFile" >
-    <property name="title" >
-     <string>_("Game")</string>
-    </property>
-    <addaction name="action_GameNew" />
-    <addaction name="separator" />
-    <addaction name="action_GameLoad" />
-    <addaction name="action_GameSaveAs" />
-    <addaction name="separator" />
-    <addaction name="action_GamePrint" />
-    <addaction name="separator" />
-    <addaction name="action_GameQuit" />
-   </widget>
-   <widget class="QMenu" name="menuHelp" >
-    <property name="title" >
-     <string>_("Settings")</string>
-    </property>
-    <addaction name="action_SettingsChooseDic" />
-    <addaction name="action_SettingsPreferences" />
-   </widget>
-   <widget class="QMenu" name="menu_Help" >
-    <property name="title" >
-     <string>_("Help")</string>
-    </property>
-    <addaction name="action_HelpAbout" />
-    <addaction name="separator" />
-   </widget>
-   <widget class="QMenu" name="menu_Windows" >
-    <property name="title" >
-     <string>_("Windows")</string>
-    </property>
-    <addaction name="action_WindowsBag" />
-    <addaction name="action_WindowsBoard" />
-    <addaction name="action_WindowsHistory" />
-    <addaction name="action_WindowsDicTools" />
-   </widget>
-   <addaction name="menuFile" />
-   <addaction name="menuHelp" />
-   <addaction name="menu_Windows" />
-   <addaction name="menu_Help" />
   </widget>
   <widget class="QStatusBar" name="statusbar" >
    <property name="geometry" >
@@ -126,41 +86,6 @@
     </rect>
    </property>
   </widget>
-  <action name="action_SettingsChooseDic" >
-   <property name="text" >
-    <string>_("Choose dictionary...")</string>
-   </property>
-   <property name="statusTip" >
-    <string>_("Select a new dictionary")</string>
-   </property>
-  </action>
-  <action name="action_HelpAbout" >
-   <property name="text" >
-    <string>_("About...")</string>
-   </property>
-   <property name="statusTip" >
-    <string>_("About Eliot")</string>
-   </property>
-  </action>
-  <action name="action_GameQuit" >
-   <property name="text" >
-    <string>_("Quit")</string>
-   </property>
-   <property name="statusTip" >
-    <string>_("Quit Eliot")</string>
-   </property>
-  </action>
-  <action name="action_GameNew" >
-   <property name="text" >
-    <string>_("New...")</string>
-   </property>
-   <property name="statusTip" >
-    <string>_("Start a new game")</string>
-   </property>
-   <property name="shortcut" >
-    <string>Ctrl+N</string>
-   </property>
-  </action>
   <action name="action_WindowsBag" >
    <property name="checkable" >
     <bool>true</bool>
@@ -175,47 +100,6 @@
     <string>Ctrl+B</string>
    </property>
   </action>
-  <action name="action_SettingsPreferences" >
-   <property name="text" >
-    <string>_("Preferences...")</string>
-   </property>
-   <property name="statusTip" >
-    <string>_("Edit the preferences")</string>
-   </property>
-   <property name="shortcut" >
-    <string>Ctrl+F</string>
-   </property>
-  </action>
-  <action name="action_GameSave" >
-   <property name="text" >
-    <string>_("Save")</string>
-   </property>
-   <property name="shortcut" >
-    <string>Ctrl+S</string>
-   </property>
-  </action>
-  <action name="action_GameLoad" >
-   <property name="text" >
-    <string>_("Load...")</string>
-   </property>
-   <property name="statusTip" >
-    <string>_("Load an existing game")</string>
-   </property>
-   <property name="shortcut" >
-    <string>Ctrl+O</string>
-   </property>
-  </action>
-  <action name="action_GameSaveAs" >
-   <property name="text" >
-    <string>_("Save as...")</string>
-   </property>
-   <property name="statusTip" >
-    <string>_("Save the current game")</string>
-   </property>
-   <property name="shortcut" >
-    <string>Ctrl+S</string>
-   </property>
-  </action>
   <action name="action_WindowsBoard" >
    <property name="checkable" >
     <bool>true</bool>
@@ -244,17 +128,6 @@
     <string>Ctrl+H</string>
    </property>
   </action>
-  <action name="action_GamePrint" >
-   <property name="text" >
-    <string>_("Print...")</string>
-   </property>
-   <property name="statusTip" >
-    <string>_("Print the current game")</string>
-   </property>
-   <property name="shortcut" >
-    <string>Ctrl+P</string>
-   </property>
-  </action>
   <action name="action_WindowsDicTools" >
    <property name="checkable" >
     <bool>true</bool>
@@ -273,22 +146,4 @@
  <resources>
   <include location="../eliot.qrc" />
  </resources>
- <connections>
-  <connection>
-   <sender>action_GameQuit</sender>
-   <signal>triggered()</signal>
-   <receiver>MainWindow</receiver>
-   <slot>close()</slot>
-   <hints>
-    <hint type="sourcelabel" >
-     <x>-1</x>
-     <y>-1</y>
-    </hint>
-    <hint type="destinationlabel" >
-     <x>260</x>
-     <y>215</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
 </ui>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]