eliot-dev
[Top][All Lists]
Advanced

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

[Eliot-dev] eliot po/eliot.pot po/fr.po qt/aux_window.h qt/...


From: Olivier Teulière
Subject: [Eliot-dev] eliot po/eliot.pot po/fr.po qt/aux_window.h qt/...
Date: Sun, 14 Dec 2008 13:20:51 +0000

CVSROOT:        /cvsroot/eliot
Module name:    eliot
Changes by:     Olivier Teulière <ipkiss>      08/12/14 13:20:50

Modified files:
        po             : eliot.pot fr.po 
        qt             : aux_window.h dic_tools_widget.cpp 
                         dic_tools_widget.h main_window.cpp 
                         main_window.h player_widget.cpp player_widget.h 
                         prefs_dialog.cpp prefs_dialog.h 
                         training_widget.cpp training_widget.h 
        qt/ui          : prefs_dialog.ui 

Log message:
        New preference, to allow linking the rack in training mode to the "Plus 
1" dictionary tool

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/eliot/po/eliot.pot?cvsroot=eliot&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/eliot/po/fr.po?cvsroot=eliot&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/eliot/qt/aux_window.h?cvsroot=eliot&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/eliot/qt/dic_tools_widget.cpp?cvsroot=eliot&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/eliot/qt/dic_tools_widget.h?cvsroot=eliot&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/eliot/qt/main_window.cpp?cvsroot=eliot&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/eliot/qt/main_window.h?cvsroot=eliot&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/eliot/qt/player_widget.cpp?cvsroot=eliot&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/eliot/qt/player_widget.h?cvsroot=eliot&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/eliot/qt/prefs_dialog.cpp?cvsroot=eliot&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/eliot/qt/prefs_dialog.h?cvsroot=eliot&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/eliot/qt/training_widget.cpp?cvsroot=eliot&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/eliot/qt/training_widget.h?cvsroot=eliot&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/eliot/qt/ui/prefs_dialog.ui?cvsroot=eliot&r1=1.7&r2=1.8

Patches:
Index: po/eliot.pot
===================================================================
RCS file: /cvsroot/eliot/eliot/po/eliot.pot,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- po/eliot.pot        8 Dec 2008 21:45:28 -0000       1.20
+++ po/eliot.pot        14 Dec 2008 13:20:38 -0000      1.21
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-12-08 22:07+0100\n"
+"POT-Creation-Date: 2008-12-13 18:30+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <address@hidden>\n"
 "Language-Team: LANGUAGE <address@hidden>\n"
@@ -320,7 +320,7 @@
 msgid " N |   RACK   |    SOLUTION     | REF | PTS | P | BONUS"
 msgstr ""
 
-#: utils/ncurses.cpp:415 qt/history_widget.cpp:143 qt/main_window.cpp:616
+#: utils/ncurses.cpp:415 qt/history_widget.cpp:143 qt/main_window.cpp:640
 msgid "(PASS)"
 msgstr ""
 
@@ -426,7 +426,7 @@
 msgid "   Ctrl-l           Refresh the screen"
 msgstr ""
 
-#: utils/ncurses.cpp:487 qt/main_window.cpp:712 qt/ui/main_window.ui:91
+#: utils/ncurses.cpp:487 qt/main_window.cpp:736 qt/ui/main_window.ui:91
 msgid "Bag"
 msgstr ""
 
@@ -490,7 +490,7 @@
 msgid "Game saved in '%ls'"
 msgstr ""
 
-#: utils/ncurses.cpp:633 qt/main_window.cpp:460
+#: utils/ncurses.cpp:633 qt/main_window.cpp:484
 msgid "Load a game"
 msgstr ""
 
@@ -504,7 +504,7 @@
 msgid "Invalid saved game"
 msgstr ""
 
-#: utils/ncurses.cpp:657 qt/main_window.cpp:475
+#: utils/ncurses.cpp:657 qt/main_window.cpp:499
 #, c-format
 msgid "Game loaded"
 msgstr ""
@@ -533,15 +533,15 @@
 msgid "Cannot take these letters from the bag"
 msgstr ""
 
-#: utils/ncurses.cpp:1112 qt/main_window.cpp:241 qt/ui/prefs_dialog.ui:191
+#: utils/ncurses.cpp:1112 qt/main_window.cpp:265 qt/ui/prefs_dialog.ui:194
 msgid "Training mode"
 msgstr ""
 
-#: utils/ncurses.cpp:1114 qt/ui/prefs_dialog.ui:172
+#: utils/ncurses.cpp:1114 qt/ui/prefs_dialog.ui:175
 msgid "Free game mode"
 msgstr ""
 
-#: utils/ncurses.cpp:1116 qt/ui/prefs_dialog.ui:85
+#: utils/ncurses.cpp:1116 qt/ui/prefs_dialog.ui:88
 msgid "Duplicate mode"
 msgstr ""
 
@@ -579,40 +579,40 @@
 msgid "Consonant?"
 msgstr ""
 
-#: qt/dic_tools_widget.cpp:135 qt/dic_tools_widget.cpp:168
-#: qt/dic_tools_widget.cpp:221
+#: qt/dic_tools_widget.cpp:142 qt/dic_tools_widget.cpp:175
+#: qt/dic_tools_widget.cpp:228
 msgid "Please select a dictionary"
 msgstr ""
 
-#: qt/dic_tools_widget.cpp:146
+#: qt/dic_tools_widget.cpp:153
 msgid "The word '%1' exists"
 msgstr ""
 
-#: qt/dic_tools_widget.cpp:151
+#: qt/dic_tools_widget.cpp:158
 msgid "The word '%1' does not exist"
 msgstr ""
 
-#: qt/dic_tools_widget.cpp:175
+#: qt/dic_tools_widget.cpp:182
 msgid "Rack: %1"
 msgstr ""
 
-#: qt/dic_tools_widget.cpp:194
+#: qt/dic_tools_widget.cpp:201
 msgid "Anagrams"
 msgstr ""
 
-#: qt/dic_tools_widget.cpp:228
+#: qt/dic_tools_widget.cpp:235
 msgid "Regular expression: %1"
 msgstr ""
 
-#: qt/dic_tools_widget.cpp:251
+#: qt/dic_tools_widget.cpp:258
 msgid "Invalid regular expression: %1"
 msgstr ""
 
-#: qt/dic_tools_widget.cpp:300 qt/dic_tools_widget.cpp:302
+#: qt/dic_tools_widget.cpp:307 qt/dic_tools_widget.cpp:309
 msgid "Yes"
 msgstr ""
 
-#: qt/dic_tools_widget.cpp:300 qt/dic_tools_widget.cpp:302
+#: qt/dic_tools_widget.cpp:307 qt/dic_tools_widget.cpp:309
 msgid "No"
 msgstr ""
 
@@ -636,11 +636,11 @@
 msgid "Player"
 msgstr ""
 
-#: qt/history_widget.cpp:177 qt/main_window.cpp:347
+#: qt/history_widget.cpp:177 qt/main_window.cpp:371
 msgid "&Game"
 msgstr ""
 
-#: qt/main_window.cpp:112 qt/main_window.cpp:730 qt/ui/main_window.ui:32
+#: qt/main_window.cpp:112 qt/main_window.cpp:754 qt/ui/main_window.ui:32
 msgid "Board"
 msgstr ""
 
@@ -650,322 +650,322 @@
 "Reason: %2"
 msgstr ""
 
-#: qt/main_window.cpp:233
+#: qt/main_window.cpp:257
 msgid "No game"
 msgstr ""
 
-#: qt/main_window.cpp:246
+#: qt/main_window.cpp:270
 msgid "Duplicate game"
 msgstr ""
 
-#: qt/main_window.cpp:251 qt/new_game.cpp:100 qt/new_game.cpp:167
+#: qt/main_window.cpp:275 qt/new_game.cpp:100 qt/new_game.cpp:167
 #: qt/ui/new_game.ui:41
 msgid "Free game"
 msgstr ""
 
-#: qt/main_window.cpp:263
+#: qt/main_window.cpp:287
 msgid "Dictionary: %1"
 msgstr ""
 
-#: qt/main_window.cpp:272
+#: qt/main_window.cpp:296
 msgid "Eliot - Error"
 msgstr ""
 
-#: qt/main_window.cpp:348
+#: qt/main_window.cpp:372
 msgid "&New..."
 msgstr ""
 
-#: qt/main_window.cpp:348
+#: qt/main_window.cpp:372
 msgid "Ctrl+N"
 msgstr ""
 
-#: qt/main_window.cpp:349
+#: qt/main_window.cpp:373
 msgid "Start a new game"
 msgstr ""
 
-#: qt/main_window.cpp:351
+#: qt/main_window.cpp:375
 msgid "&Load..."
 msgstr ""
 
-#: qt/main_window.cpp:351
+#: qt/main_window.cpp:375
 msgid "Ctrl+O"
 msgstr ""
 
-#: qt/main_window.cpp:352
+#: qt/main_window.cpp:376
 msgid "Load an existing game"
 msgstr ""
 
-#: qt/main_window.cpp:353
+#: qt/main_window.cpp:377
 msgid "&Save as..."
 msgstr ""
 
-#: qt/main_window.cpp:353
+#: qt/main_window.cpp:377
 msgid "Ctrl+S"
 msgstr ""
 
-#: qt/main_window.cpp:354
+#: qt/main_window.cpp:378
 msgid "Save the current game"
 msgstr ""
 
-#: qt/main_window.cpp:356
+#: qt/main_window.cpp:380
 msgid "&Print..."
 msgstr ""
 
-#: qt/main_window.cpp:356
+#: qt/main_window.cpp:380
 msgid "Ctrl+P"
 msgstr ""
 
-#: qt/main_window.cpp:357
+#: qt/main_window.cpp:381
 msgid "Print the current game"
 msgstr ""
 
-#: qt/main_window.cpp:359
+#: qt/main_window.cpp:383
 msgid "&Quit"
 msgstr ""
 
-#: qt/main_window.cpp:359
+#: qt/main_window.cpp:383
 msgid "Ctrl+Q"
 msgstr ""
 
-#: qt/main_window.cpp:360
+#: qt/main_window.cpp:384
 msgid "Quit Eliot"
 msgstr ""
 
-#: qt/main_window.cpp:364 qt/main_window.cpp:406
+#: qt/main_window.cpp:388 qt/main_window.cpp:430
 msgid "&History"
 msgstr ""
 
-#: qt/main_window.cpp:365
+#: qt/main_window.cpp:389
 msgid "&First turn"
 msgstr ""
 
-#: qt/main_window.cpp:365
+#: qt/main_window.cpp:389
 msgid "Ctrl+Home"
 msgstr ""
 
-#: qt/main_window.cpp:366
+#: qt/main_window.cpp:390
 msgid "Go to the first turn of the game"
 msgstr ""
 
-#: qt/main_window.cpp:368
+#: qt/main_window.cpp:392
 msgid "&Previous turn"
 msgstr ""
 
-#: qt/main_window.cpp:368
+#: qt/main_window.cpp:392
 msgid "Ctrl+Left"
 msgstr ""
 
-#: qt/main_window.cpp:369
+#: qt/main_window.cpp:393
 msgid "Go to the previous turn of the game"
 msgstr ""
 
-#: qt/main_window.cpp:371
+#: qt/main_window.cpp:395
 msgid "&Next turn"
 msgstr ""
 
-#: qt/main_window.cpp:371
+#: qt/main_window.cpp:395
 msgid "Ctrl+Right"
 msgstr ""
 
-#: qt/main_window.cpp:372
+#: qt/main_window.cpp:396
 msgid "Go to the next turn of the game"
 msgstr ""
 
-#: qt/main_window.cpp:374
+#: qt/main_window.cpp:398
 msgid "&Last turn"
 msgstr ""
 
-#: qt/main_window.cpp:374
+#: qt/main_window.cpp:398
 msgid "Ctrl+End"
 msgstr ""
 
-#: qt/main_window.cpp:375
+#: qt/main_window.cpp:399
 msgid "Go to the last turn of the game"
 msgstr ""
 
-#: qt/main_window.cpp:377
+#: qt/main_window.cpp:401
 msgid "&Replay turn"
 msgstr ""
 
-#: qt/main_window.cpp:377
+#: qt/main_window.cpp:401
 msgid "Ctrl+R"
 msgstr ""
 
-#: qt/main_window.cpp:378
+#: qt/main_window.cpp:402
 msgid ""
 "Play the game from the current position, replacing what was really played"
 msgstr ""
 
-#: qt/main_window.cpp:390
+#: qt/main_window.cpp:414
 msgid "&Settings"
 msgstr ""
 
-#: qt/main_window.cpp:391
+#: qt/main_window.cpp:415
 msgid "&Choose dictionary..."
 msgstr ""
 
-#: qt/main_window.cpp:391
+#: qt/main_window.cpp:415
 msgid "Ctrl+C"
 msgstr ""
 
-#: qt/main_window.cpp:392
+#: qt/main_window.cpp:416
 msgid "Select a new dictionary"
 msgstr ""
 
-#: qt/main_window.cpp:393
+#: qt/main_window.cpp:417
 msgid "&Preferences..."
 msgstr ""
 
-#: qt/main_window.cpp:393
+#: qt/main_window.cpp:417
 msgid "Ctrl+F"
 msgstr ""
 
-#: qt/main_window.cpp:394
+#: qt/main_window.cpp:418
 msgid "Edit the preferences"
 msgstr ""
 
-#: qt/main_window.cpp:398
+#: qt/main_window.cpp:422
 msgid "&Windows"
 msgstr ""
 
-#: qt/main_window.cpp:399
+#: qt/main_window.cpp:423
 msgid "&Toolbar"
 msgstr ""
 
-#: qt/main_window.cpp:399
+#: qt/main_window.cpp:423
 msgid "Ctrl+T"
 msgstr ""
 
-#: qt/main_window.cpp:400
+#: qt/main_window.cpp:424
 msgid "Show/hide the toolbar"
 msgstr ""
 
-#: qt/main_window.cpp:402
+#: qt/main_window.cpp:426
 msgid "&Bag"
 msgstr ""
 
-#: qt/main_window.cpp:402
+#: qt/main_window.cpp:426
 msgid "Ctrl+B"
 msgstr ""
 
-#: qt/main_window.cpp:403 qt/ui/main_window.ui:94
+#: qt/main_window.cpp:427 qt/ui/main_window.ui:94
 msgid "Show/hide the remaining tiles in the bag"
 msgstr ""
 
-#: qt/main_window.cpp:404
+#: qt/main_window.cpp:428
 msgid "&External board"
 msgstr ""
 
-#: qt/main_window.cpp:404
+#: qt/main_window.cpp:428
 msgid "Ctrl+E"
 msgstr ""
 
-#: qt/main_window.cpp:405 qt/ui/main_window.ui:108
+#: qt/main_window.cpp:429 qt/ui/main_window.ui:108
 msgid "Show/hide the external board"
 msgstr ""
 
-#: qt/main_window.cpp:406
+#: qt/main_window.cpp:430
 msgid "Ctrl+H"
 msgstr ""
 
-#: qt/main_window.cpp:407 qt/ui/main_window.ui:122
+#: qt/main_window.cpp:431 qt/ui/main_window.ui:122
 msgid "Show/hide the game history"
 msgstr ""
 
-#: qt/main_window.cpp:408
+#: qt/main_window.cpp:432
 msgid "&Dictionary tools"
 msgstr ""
 
-#: qt/main_window.cpp:408
+#: qt/main_window.cpp:432
 msgid "Ctrl+D"
 msgstr ""
 
-#: qt/main_window.cpp:409 qt/ui/main_window.ui:136
+#: qt/main_window.cpp:433 qt/ui/main_window.ui:136
 msgid "Show/hide the dictionary tools"
 msgstr ""
 
-#: qt/main_window.cpp:413
+#: qt/main_window.cpp:437
 msgid "&Help"
 msgstr ""
 
-#: qt/main_window.cpp:414
+#: qt/main_window.cpp:438
 msgid "&About..."
 msgstr ""
 
-#: qt/main_window.cpp:414
+#: qt/main_window.cpp:438
 msgid "Ctrl+A"
 msgstr ""
 
-#: qt/main_window.cpp:415 qt/main_window.cpp:789
+#: qt/main_window.cpp:439 qt/main_window.cpp:821
 msgid "About Eliot"
 msgstr ""
 
-#: qt/main_window.cpp:423 qt/main_window.cpp:456
+#: qt/main_window.cpp:447 qt/main_window.cpp:480
 msgid "You have to select a dictionary first!"
 msgstr ""
 
-#: qt/main_window.cpp:448
+#: qt/main_window.cpp:472
 msgid "Game started"
 msgstr ""
 
-#: qt/main_window.cpp:467
+#: qt/main_window.cpp:491
 msgid "Error while loading the game"
 msgstr ""
 
-#: qt/main_window.cpp:485
+#: qt/main_window.cpp:509
 msgid "Save a game"
 msgstr ""
 
-#: qt/main_window.cpp:490
+#: qt/main_window.cpp:514
 msgid "Game saved"
 msgstr ""
 
-#: qt/main_window.cpp:524
+#: qt/main_window.cpp:548
 msgid "N."
 msgstr ""
 
-#: qt/main_window.cpp:524
+#: qt/main_window.cpp:548
 msgid "RACK"
 msgstr ""
 
-#: qt/main_window.cpp:524
+#: qt/main_window.cpp:548
 msgid "SOLUTION"
 msgstr ""
 
-#: qt/main_window.cpp:524
+#: qt/main_window.cpp:548
 msgid "REF"
 msgstr ""
 
-#: qt/main_window.cpp:524
+#: qt/main_window.cpp:548
 msgid "PTS"
 msgstr ""
 
-#: qt/main_window.cpp:657
+#: qt/main_window.cpp:681
 msgid "Loading a dictionary will stop the current game."
 msgstr ""
 
-#: qt/main_window.cpp:658 qt/main_window.cpp:859 qt/new_game.cpp:56
+#: qt/main_window.cpp:682 qt/main_window.cpp:891 qt/new_game.cpp:56
 msgid "Eliot"
 msgstr ""
 
-#: qt/main_window.cpp:660 qt/main_window.cpp:861
+#: qt/main_window.cpp:684 qt/main_window.cpp:893
 msgid "Do you want to continue?"
 msgstr ""
 
-#: qt/main_window.cpp:669
+#: qt/main_window.cpp:693
 msgid "Choose a dictionary"
 msgstr ""
 
-#: qt/main_window.cpp:748 qt/ui/main_window.ui:45 qt/ui/main_window.ui:119
+#: qt/main_window.cpp:772 qt/ui/main_window.ui:45 qt/ui/main_window.ui:119
 msgid "History"
 msgstr ""
 
-#: qt/main_window.cpp:765 qt/ui/dic_tools_widget.ui:13
+#: qt/main_window.cpp:789 qt/ui/dic_tools_widget.ui:13
 #: qt/ui/main_window.ui:133
 msgid "Dictionary tools"
 msgstr ""
 
-#: qt/main_window.cpp:782
+#: qt/main_window.cpp:814
 msgid ""
 "Copyright (C) 1999-2008 - Antoine Fraboulet & Olivier Teuliere\n"
 "\n"
@@ -975,18 +975,18 @@
 "any later version."
 msgstr ""
 
-#: qt/main_window.cpp:804 qt/main_window.cpp:817 qt/main_window.cpp:830
-#: qt/main_window.cpp:843
+#: qt/main_window.cpp:836 qt/main_window.cpp:849 qt/main_window.cpp:862
+#: qt/main_window.cpp:875
 msgid "Turn %1/%2"
 msgstr ""
 
-#: qt/main_window.cpp:856
+#: qt/main_window.cpp:888
 msgid ""
 "Replaying this turn will modify the game history by deleting the turns after "
 "the displayed one (i.e. turns \"in the future\")."
 msgstr ""
 
-#: qt/main_window.cpp:872
+#: qt/main_window.cpp:904
 msgid "Replaying from turn %1"
 msgstr ""
 
@@ -1106,15 +1106,15 @@
 msgid "Score"
 msgstr ""
 
-#: qt/training_widget.cpp:203
+#: qt/training_widget.cpp:206
 msgid "Warning: Cannot set the rack to '%1'"
 msgstr ""
 
-#: qt/training_widget.cpp:242
+#: qt/training_widget.cpp:245
 msgid "Searching with rack '%1'..."
 msgstr ""
 
-#: qt/training_widget.cpp:244
+#: qt/training_widget.cpp:247
 msgid "Search done"
 msgstr ""
 
@@ -1286,35 +1286,51 @@
 msgstr ""
 
 #: qt/ui/prefs_dialog.ui:72
+msgid ""
+"If checked, a confirmation will be requested before replaying the game from "
+"a given turn. If unchecked, the action is performed without confirmation."
+msgstr ""
+
+#: qt/ui/prefs_dialog.ui:75
 msgid "Warn before replaying a turn"
 msgstr ""
 
-#: qt/ui/prefs_dialog.ui:91 qt/ui/prefs_dialog.ui:178
+#: qt/ui/prefs_dialog.ui:94 qt/ui/prefs_dialog.ui:181
 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:94 qt/ui/prefs_dialog.ui:181
+#: qt/ui/prefs_dialog.ui:97 qt/ui/prefs_dialog.ui:184
 msgid "Refuse to play invalid moves"
 msgstr ""
 
-#: qt/ui/prefs_dialog.ui:103
+#: qt/ui/prefs_dialog.ui:106
 msgid "Min. players for a solo:"
 msgstr ""
 
-#: qt/ui/prefs_dialog.ui:123
+#: qt/ui/prefs_dialog.ui:126
 msgid "Minimum number of players needed to take into account the solo bonus"
 msgstr ""
 
-#: qt/ui/prefs_dialog.ui:137
+#: qt/ui/prefs_dialog.ui:140
 msgid "Solo value:"
 msgstr ""
 
-#: qt/ui/prefs_dialog.ui:157
+#: qt/ui/prefs_dialog.ui:160
 msgid "Value of the solo bonus. Set it to 0 if you don't want solo bonus"
 msgstr ""
 
+#: qt/ui/prefs_dialog.ui:200
+msgid ""
+"If checked, any change to the player rack in training mode will update the "
+"'Plus 1' tab of the 'Dictionary tools' window"
+msgstr ""
+
+#: qt/ui/prefs_dialog.ui:203
+msgid "Copy rack to the 'Plus 1' dictionary tool"
+msgstr ""
+
 #: qt/ui/training_widget.ui:35
 msgid "New rack"
 msgstr ""

Index: po/fr.po
===================================================================
RCS file: /cvsroot/eliot/eliot/po/fr.po,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- po/fr.po    8 Dec 2008 21:45:28 -0000       1.21
+++ po/fr.po    14 Dec 2008 13:20:38 -0000      1.22
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: eliot 1.7\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-12-08 22:07+0100\n"
+"POT-Creation-Date: 2008-12-13 18:30+0100\n"
 "PO-Revision-Date: 2008-11-16 10:35+0100\n"
 "Last-Translator: Olivier Teulière <address@hidden>\n"
 "Language-Team: French <address@hidden>\n"
@@ -341,7 +341,7 @@
 msgid " N |   RACK   |    SOLUTION     | REF | PTS | P | BONUS"
 msgstr " N |  TIRAGE  |    SOLUTION     | REF | PTS | J | BONUS"
 
-#: utils/ncurses.cpp:415 qt/history_widget.cpp:143 qt/main_window.cpp:616
+#: utils/ncurses.cpp:415 qt/history_widget.cpp:143 qt/main_window.cpp:640
 msgid "(PASS)"
 msgstr "(PASSE)"
 
@@ -452,7 +452,7 @@
 msgid "   Ctrl-l           Refresh the screen"
 msgstr "   Ctrl-l           Rafraîchir l'écran"
 
-#: utils/ncurses.cpp:487 qt/main_window.cpp:712 qt/ui/main_window.ui:91
+#: utils/ncurses.cpp:487 qt/main_window.cpp:736 qt/ui/main_window.ui:91
 msgid "Bag"
 msgstr "Sac"
 
@@ -516,7 +516,7 @@
 msgid "Game saved in '%ls'"
 msgstr "Partie sauvée dans '%ls'"
 
-#: utils/ncurses.cpp:633 qt/main_window.cpp:460
+#: utils/ncurses.cpp:633 qt/main_window.cpp:484
 msgid "Load a game"
 msgstr "Charger une partie"
 
@@ -530,7 +530,7 @@
 msgid "Invalid saved game"
 msgstr "Partie sauvée invalide"
 
-#: utils/ncurses.cpp:657 qt/main_window.cpp:475
+#: utils/ncurses.cpp:657 qt/main_window.cpp:499
 #, c-format
 msgid "Game loaded"
 msgstr "Partie chargée"
@@ -559,15 +559,15 @@
 msgid "Cannot take these letters from the bag"
 msgstr "Impossible de retirer ces lettres du sac"
 
-#: utils/ncurses.cpp:1112 qt/main_window.cpp:241 qt/ui/prefs_dialog.ui:191
+#: utils/ncurses.cpp:1112 qt/main_window.cpp:265 qt/ui/prefs_dialog.ui:194
 msgid "Training mode"
 msgstr "Mode entraînement"
 
-#: utils/ncurses.cpp:1114 qt/ui/prefs_dialog.ui:172
+#: utils/ncurses.cpp:1114 qt/ui/prefs_dialog.ui:175
 msgid "Free game mode"
 msgstr "Mode partie libre"
 
-#: utils/ncurses.cpp:1116 qt/ui/prefs_dialog.ui:85
+#: utils/ncurses.cpp:1116 qt/ui/prefs_dialog.ui:88
 msgid "Duplicate mode"
 msgstr "Mode duplicate"
 
@@ -605,40 +605,40 @@
 msgid "Consonant?"
 msgstr "Consonne ?"
 
-#: qt/dic_tools_widget.cpp:135 qt/dic_tools_widget.cpp:168
-#: qt/dic_tools_widget.cpp:221
+#: qt/dic_tools_widget.cpp:142 qt/dic_tools_widget.cpp:175
+#: qt/dic_tools_widget.cpp:228
 msgid "Please select a dictionary"
 msgstr "Choisir un dictionnaire"
 
-#: qt/dic_tools_widget.cpp:146
+#: qt/dic_tools_widget.cpp:153
 msgid "The word '%1' exists"
 msgstr "Le mot '%1' existe"
 
-#: qt/dic_tools_widget.cpp:151
+#: qt/dic_tools_widget.cpp:158
 msgid "The word '%1' does not exist"
 msgstr "Le mot '%1' n'existe pas"
 
-#: qt/dic_tools_widget.cpp:175
+#: qt/dic_tools_widget.cpp:182
 msgid "Rack: %1"
 msgstr "Tirage : %1"
 
-#: qt/dic_tools_widget.cpp:194
+#: qt/dic_tools_widget.cpp:201
 msgid "Anagrams"
 msgstr "Anagrammes"
 
-#: qt/dic_tools_widget.cpp:228
+#: qt/dic_tools_widget.cpp:235
 msgid "Regular expression: %1"
 msgstr "Expression régulière : %1"
 
-#: qt/dic_tools_widget.cpp:251
+#: qt/dic_tools_widget.cpp:258
 msgid "Invalid regular expression: %1"
 msgstr "Expression régulière invalide : %1"
 
-#: qt/dic_tools_widget.cpp:300 qt/dic_tools_widget.cpp:302
+#: qt/dic_tools_widget.cpp:307 qt/dic_tools_widget.cpp:309
 msgid "Yes"
 msgstr "Oui"
 
-#: qt/dic_tools_widget.cpp:300 qt/dic_tools_widget.cpp:302
+#: qt/dic_tools_widget.cpp:307 qt/dic_tools_widget.cpp:309
 msgid "No"
 msgstr "Non"
 
@@ -662,11 +662,11 @@
 msgid "Player"
 msgstr "Joueur"
 
-#: qt/history_widget.cpp:177 qt/main_window.cpp:347
+#: qt/history_widget.cpp:177 qt/main_window.cpp:371
 msgid "&Game"
 msgstr "&Partie"
 
-#: qt/main_window.cpp:112 qt/main_window.cpp:730 qt/ui/main_window.ui:32
+#: qt/main_window.cpp:112 qt/main_window.cpp:754 qt/ui/main_window.ui:32
 msgid "Board"
 msgstr "Grille"
 
@@ -678,335 +678,335 @@
 "Impossible de charger le dictionnaire '%1' indiqué dans les préférences.\n"
 "Raison : %2"
 
-#: qt/main_window.cpp:233
+#: qt/main_window.cpp:257
 msgid "No game"
 msgstr "Pas de partie en cours"
 
-#: qt/main_window.cpp:246
+#: qt/main_window.cpp:270
 msgid "Duplicate game"
 msgstr "Partie duplicate"
 
-#: qt/main_window.cpp:251 qt/new_game.cpp:100 qt/new_game.cpp:167
+#: qt/main_window.cpp:275 qt/new_game.cpp:100 qt/new_game.cpp:167
 #: qt/ui/new_game.ui:41
 msgid "Free game"
 msgstr "Partie libre"
 
-#: qt/main_window.cpp:263
+#: qt/main_window.cpp:287
 msgid "Dictionary: %1"
 msgstr "Dictionnaire : %1"
 
-#: qt/main_window.cpp:272
+#: qt/main_window.cpp:296
 msgid "Eliot - Error"
 msgstr "Eliot - erreur"
 
-#: qt/main_window.cpp:348
+#: qt/main_window.cpp:372
 msgid "&New..."
 msgstr "&Nouvelle partie..."
 
-#: qt/main_window.cpp:348
+#: qt/main_window.cpp:372
 msgid "Ctrl+N"
 msgstr "Ctrl+N"
 
-#: qt/main_window.cpp:349
+#: qt/main_window.cpp:373
 msgid "Start a new game"
 msgstr "Démarrer une nouvelle partie"
 
-#: qt/main_window.cpp:351
+#: qt/main_window.cpp:375
 msgid "&Load..."
 msgstr "&Charger..."
 
-#: qt/main_window.cpp:351
+#: qt/main_window.cpp:375
 msgid "Ctrl+O"
 msgstr "Ctrl+O"
 
-#: qt/main_window.cpp:352
+#: qt/main_window.cpp:376
 msgid "Load an existing game"
 msgstr "Charger une partie existante"
 
-#: qt/main_window.cpp:353
+#: qt/main_window.cpp:377
 msgid "&Save as..."
 msgstr "&Enregistrer sous..."
 
-#: qt/main_window.cpp:353
+#: qt/main_window.cpp:377
 msgid "Ctrl+S"
 msgstr "Ctrl+S"
 
-#: qt/main_window.cpp:354
+#: qt/main_window.cpp:378
 msgid "Save the current game"
 msgstr "Sauvegarder la partie en cours"
 
-#: qt/main_window.cpp:356
+#: qt/main_window.cpp:380
 msgid "&Print..."
 msgstr "Im&primer..."
 
-#: qt/main_window.cpp:356
+#: qt/main_window.cpp:380
 msgid "Ctrl+P"
 msgstr "Ctrl+P"
 
-#: qt/main_window.cpp:357
+#: qt/main_window.cpp:381
 msgid "Print the current game"
 msgstr "Imprimer la partie en cours"
 
-#: qt/main_window.cpp:359
+#: qt/main_window.cpp:383
 msgid "&Quit"
 msgstr "&Quitter"
 
-#: qt/main_window.cpp:359
+#: qt/main_window.cpp:383
 msgid "Ctrl+Q"
 msgstr "Ctrl+Q"
 
-#: qt/main_window.cpp:360
+#: qt/main_window.cpp:384
 msgid "Quit Eliot"
 msgstr "Quitter Eliot"
 
-#: qt/main_window.cpp:364 qt/main_window.cpp:406
+#: qt/main_window.cpp:388 qt/main_window.cpp:430
 msgid "&History"
 msgstr "&Historique"
 
-#: qt/main_window.cpp:365
+#: qt/main_window.cpp:389
 msgid "&First turn"
 msgstr ""
 
-#: qt/main_window.cpp:365
+#: qt/main_window.cpp:389
 #, fuzzy
 msgid "Ctrl+Home"
 msgstr "Ctrl+H"
 
-#: qt/main_window.cpp:366
+#: qt/main_window.cpp:390
 #, fuzzy
 msgid "Go to the first turn of the game"
 msgstr "Configuration de la partie"
 
-#: qt/main_window.cpp:368
+#: qt/main_window.cpp:392
 msgid "&Previous turn"
 msgstr ""
 
-#: qt/main_window.cpp:368
+#: qt/main_window.cpp:392
 #, fuzzy
 msgid "Ctrl+Left"
 msgstr "Ctrl+N"
 
-#: qt/main_window.cpp:369
+#: qt/main_window.cpp:393
 #, fuzzy
 msgid "Go to the previous turn of the game"
 msgstr "Aperçu avant impression de la partie"
 
-#: qt/main_window.cpp:371
+#: qt/main_window.cpp:395
 msgid "&Next turn"
 msgstr ""
 
-#: qt/main_window.cpp:371
+#: qt/main_window.cpp:395
 #, fuzzy
 msgid "Ctrl+Right"
 msgstr "droite"
 
-#: qt/main_window.cpp:372
+#: qt/main_window.cpp:396
 #, fuzzy
 msgid "Go to the next turn of the game"
 msgstr "Configuration de la partie"
 
-#: qt/main_window.cpp:374
+#: qt/main_window.cpp:398
 msgid "&Last turn"
 msgstr ""
 
-#: qt/main_window.cpp:374
+#: qt/main_window.cpp:398
 #, fuzzy
 msgid "Ctrl+End"
 msgstr "Ctrl+E"
 
-#: qt/main_window.cpp:375
+#: qt/main_window.cpp:399
 #, fuzzy
 msgid "Go to the last turn of the game"
 msgstr "Historique de la partie"
 
-#: qt/main_window.cpp:377
+#: qt/main_window.cpp:401
 msgid "&Replay turn"
 msgstr ""
 
-#: qt/main_window.cpp:377
+#: qt/main_window.cpp:401
 #, fuzzy
 msgid "Ctrl+R"
 msgstr "Ctrl+N"
 
-#: qt/main_window.cpp:378
+#: qt/main_window.cpp:402
 msgid ""
 "Play the game from the current position, replacing what was really played"
 msgstr ""
 
-#: qt/main_window.cpp:390
+#: qt/main_window.cpp:414
 msgid "&Settings"
 msgstr "Para&mètres"
 
-#: qt/main_window.cpp:391
+#: qt/main_window.cpp:415
 msgid "&Choose dictionary..."
 msgstr "Choisir un &dictionnaire..."
 
-#: qt/main_window.cpp:391
+#: qt/main_window.cpp:415
 msgid "Ctrl+C"
 msgstr "Ctrl+C"
 
-#: qt/main_window.cpp:392
+#: qt/main_window.cpp:416
 msgid "Select a new dictionary"
 msgstr "Choisir un nouveau dictionnaire"
 
-#: qt/main_window.cpp:393
+#: qt/main_window.cpp:417
 msgid "&Preferences..."
 msgstr "&Préférences..."
 
-#: qt/main_window.cpp:393
+#: qt/main_window.cpp:417
 msgid "Ctrl+F"
 msgstr "Ctrl+F"
 
-#: qt/main_window.cpp:394
+#: qt/main_window.cpp:418
 msgid "Edit the preferences"
 msgstr "Modifier les préférences"
 
-#: qt/main_window.cpp:398
+#: qt/main_window.cpp:422
 msgid "&Windows"
 msgstr "&Fenêtres"
 
-#: qt/main_window.cpp:399
+#: qt/main_window.cpp:423
 msgid "&Toolbar"
 msgstr ""
 
-#: qt/main_window.cpp:399
+#: qt/main_window.cpp:423
 #, fuzzy
 msgid "Ctrl+T"
 msgstr "Ctrl+N"
 
-#: qt/main_window.cpp:400
+#: qt/main_window.cpp:424
 #, fuzzy
 msgid "Show/hide the toolbar"
 msgstr "Afficher/cacher le plateau de jeu externe"
 
-#: qt/main_window.cpp:402
+#: qt/main_window.cpp:426
 msgid "&Bag"
 msgstr "&Sac"
 
-#: qt/main_window.cpp:402
+#: qt/main_window.cpp:426
 msgid "Ctrl+B"
 msgstr "Ctrl+B"
 
-#: qt/main_window.cpp:403 qt/ui/main_window.ui:94
+#: qt/main_window.cpp:427 qt/ui/main_window.ui:94
 msgid "Show/hide the remaining tiles in the bag"
 msgstr "Afficher/cacher les lettres restantes dans le sac"
 
-#: qt/main_window.cpp:404
+#: qt/main_window.cpp:428
 msgid "&External board"
 msgstr "&Plateau de jeu externe"
 
-#: qt/main_window.cpp:404
+#: qt/main_window.cpp:428
 msgid "Ctrl+E"
 msgstr "Ctrl+E"
 
-#: qt/main_window.cpp:405 qt/ui/main_window.ui:108
+#: qt/main_window.cpp:429 qt/ui/main_window.ui:108
 msgid "Show/hide the external board"
 msgstr "Afficher/cacher le plateau de jeu externe"
 
-#: qt/main_window.cpp:406
+#: qt/main_window.cpp:430
 msgid "Ctrl+H"
 msgstr "Ctrl+H"
 
-#: qt/main_window.cpp:407 qt/ui/main_window.ui:122
+#: qt/main_window.cpp:431 qt/ui/main_window.ui:122
 msgid "Show/hide the game history"
 msgstr "Afficher/cacher l'historique de la partie"
 
-#: qt/main_window.cpp:408
+#: qt/main_window.cpp:432
 msgid "&Dictionary tools"
 msgstr "Outils du &dictionnaire"
 
-#: qt/main_window.cpp:408
+#: qt/main_window.cpp:432
 msgid "Ctrl+D"
 msgstr "Ctrl+D"
 
-#: qt/main_window.cpp:409 qt/ui/main_window.ui:136
+#: qt/main_window.cpp:433 qt/ui/main_window.ui:136
 msgid "Show/hide the dictionary tools"
 msgstr "Afficher/cacher les outils de recherche dans le dictionnaire"
 
-#: qt/main_window.cpp:413
+#: qt/main_window.cpp:437
 msgid "&Help"
 msgstr "&Aide"
 
-#: qt/main_window.cpp:414
+#: qt/main_window.cpp:438
 msgid "&About..."
 msgstr "À &propos..."
 
-#: qt/main_window.cpp:414
+#: qt/main_window.cpp:438
 msgid "Ctrl+A"
 msgstr "Ctrl+A"
 
-#: qt/main_window.cpp:415 qt/main_window.cpp:789
+#: qt/main_window.cpp:439 qt/main_window.cpp:821
 msgid "About Eliot"
 msgstr "À propos d'Eliot"
 
-#: qt/main_window.cpp:423 qt/main_window.cpp:456
+#: qt/main_window.cpp:447 qt/main_window.cpp:480
 msgid "You have to select a dictionary first!"
 msgstr "Vous devez d'abord choisir un dictionnaire !"
 
-#: qt/main_window.cpp:448
+#: qt/main_window.cpp:472
 msgid "Game started"
 msgstr "Partie démarrée"
 
-#: qt/main_window.cpp:467
+#: qt/main_window.cpp:491
 msgid "Error while loading the game"
 msgstr "Erreur pendant le chargement de la partie"
 
-#: qt/main_window.cpp:485
+#: qt/main_window.cpp:509
 msgid "Save a game"
 msgstr "Sauvegarder la partie"
 
-#: qt/main_window.cpp:490
+#: qt/main_window.cpp:514
 msgid "Game saved"
 msgstr "Partie enregistrée"
 
-#: qt/main_window.cpp:524
+#: qt/main_window.cpp:548
 msgid "N."
 msgstr "N."
 
-#: qt/main_window.cpp:524
+#: qt/main_window.cpp:548
 msgid "RACK"
 msgstr "TIRAGE"
 
-#: qt/main_window.cpp:524
+#: qt/main_window.cpp:548
 msgid "SOLUTION"
 msgstr "SOLUTION"
 
-#: qt/main_window.cpp:524
+#: qt/main_window.cpp:548
 msgid "REF"
 msgstr "REF"
 
-#: qt/main_window.cpp:524
+#: qt/main_window.cpp:548
 msgid "PTS"
 msgstr "PTS"
 
-#: qt/main_window.cpp:657
+#: qt/main_window.cpp:681
 #, fuzzy
 msgid "Loading a dictionary will stop the current game."
 msgstr ""
 "Charger un dictionnaire arrêtera la partie en cours. Voulez-vous continuer ?"
 
-#: qt/main_window.cpp:658 qt/main_window.cpp:859 qt/new_game.cpp:56
+#: qt/main_window.cpp:682 qt/main_window.cpp:891 qt/new_game.cpp:56
 msgid "Eliot"
 msgstr "Eliot"
 
-#: qt/main_window.cpp:660 qt/main_window.cpp:861
+#: qt/main_window.cpp:684 qt/main_window.cpp:893
 msgid "Do you want to continue?"
 msgstr ""
 
-#: qt/main_window.cpp:669
+#: qt/main_window.cpp:693
 msgid "Choose a dictionary"
 msgstr "Choisir un dictionnaire"
 
-#: qt/main_window.cpp:748 qt/ui/main_window.ui:45 qt/ui/main_window.ui:119
+#: qt/main_window.cpp:772 qt/ui/main_window.ui:45 qt/ui/main_window.ui:119
 msgid "History"
 msgstr "Historique"
 
-#: qt/main_window.cpp:765 qt/ui/dic_tools_widget.ui:13
+#: qt/main_window.cpp:789 qt/ui/dic_tools_widget.ui:13
 #: qt/ui/main_window.ui:133
 msgid "Dictionary tools"
 msgstr "Outils du dictionnaire"
 
-#: qt/main_window.cpp:782
+#: qt/main_window.cpp:814
 msgid ""
 "Copyright (C) 1999-2008 - Antoine Fraboulet & Olivier Teuliere\n"
 "\n"
@@ -1022,18 +1022,18 @@
 "publiée par la Free Software Fundation ; soit la version 2 de la Licence, "
 "soit (comme vous le préférez), n'importe quelle version ultérieure."
 
-#: qt/main_window.cpp:804 qt/main_window.cpp:817 qt/main_window.cpp:830
-#: qt/main_window.cpp:843
+#: qt/main_window.cpp:836 qt/main_window.cpp:849 qt/main_window.cpp:862
+#: qt/main_window.cpp:875
 msgid "Turn %1/%2"
 msgstr ""
 
-#: qt/main_window.cpp:856
+#: qt/main_window.cpp:888
 msgid ""
 "Replaying this turn will modify the game history by deleting the turns after "
 "the displayed one (i.e. turns \"in the future\")."
 msgstr ""
 
-#: qt/main_window.cpp:872
+#: qt/main_window.cpp:904
 msgid "Replaying from turn %1"
 msgstr ""
 
@@ -1161,15 +1161,15 @@
 msgid "Score"
 msgstr "Score"
 
-#: qt/training_widget.cpp:203
+#: qt/training_widget.cpp:206
 msgid "Warning: Cannot set the rack to '%1'"
 msgstr "Attention : Impossible de choisir le tirage '%1'"
 
-#: qt/training_widget.cpp:242
+#: qt/training_widget.cpp:245
 msgid "Searching with rack '%1'..."
 msgstr "Recherche en cours pour le tirage '%1'..."
 
-#: qt/training_widget.cpp:244
+#: qt/training_widget.cpp:247
 msgid "Search done"
 msgstr "Recherche terminée"
 
@@ -1348,10 +1348,16 @@
 msgstr "Aligner tirages et solutions dans l'historique"
 
 #: qt/ui/prefs_dialog.ui:72
+msgid ""
+"If checked, a confirmation will be requested before replaying the game from "
+"a given turn. If unchecked, the action is performed without confirmation."
+msgstr ""
+
+#: qt/ui/prefs_dialog.ui:75
 msgid "Warn before replaying a turn"
 msgstr ""
 
-#: qt/ui/prefs_dialog.ui:91 qt/ui/prefs_dialog.ui:178
+#: qt/ui/prefs_dialog.ui:94 qt/ui/prefs_dialog.ui:181
 msgid ""
 "If checked, playing an invalid or misplaced word will not be possible. If "
 "unchecked, you will get 0 point and lose your turn"
@@ -1359,27 +1365,37 @@
 "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:94 qt/ui/prefs_dialog.ui:181
+#: qt/ui/prefs_dialog.ui:97 qt/ui/prefs_dialog.ui:184
 msgid "Refuse to play invalid moves"
 msgstr "Refuser de jouer des mots invalides"
 
-#: qt/ui/prefs_dialog.ui:103
+#: qt/ui/prefs_dialog.ui:106
 msgid "Min. players for a solo:"
 msgstr "Nombre minimal de joueurs pour un solo :"
 
-#: qt/ui/prefs_dialog.ui:123
+#: qt/ui/prefs_dialog.ui:126
 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:137
+#: qt/ui/prefs_dialog.ui:140
 msgid "Solo value:"
 msgstr "Valeur du solo :"
 
-#: qt/ui/prefs_dialog.ui:157
+#: qt/ui/prefs_dialog.ui:160
 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."
 
+#: qt/ui/prefs_dialog.ui:200
+msgid ""
+"If checked, any change to the player rack in training mode will update the "
+"'Plus 1' tab of the 'Dictionary tools' window"
+msgstr ""
+
+#: qt/ui/prefs_dialog.ui:203
+msgid "Copy rack to the 'Plus 1' dictionary tool"
+msgstr ""
+
 #: qt/ui/training_widget.ui:35
 msgid "New rack"
 msgstr "Nouveau tirage"

Index: qt/aux_window.h
===================================================================
RCS file: /cvsroot/eliot/eliot/qt/aux_window.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- qt/aux_window.h     26 Jan 2008 23:03:34 -0000      1.2
+++ qt/aux_window.h     14 Dec 2008 13:20:39 -0000      1.3
@@ -47,7 +47,9 @@
      */
     AuxWindow(QWidget &iWidget, QString iWindowTitle,
               QString iWindowName, QAction *iAction = NULL);
-    ~AuxWindow();
+    virtual ~AuxWindow();
+
+    const QWidget & getWidget() const { return m_widget; }
 
     void toggleVisibility();
 

Index: qt/dic_tools_widget.cpp
===================================================================
RCS file: /cvsroot/eliot/eliot/qt/dic_tools_widget.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- qt/dic_tools_widget.cpp     30 Oct 2008 19:03:08 -0000      1.5
+++ qt/dic_tools_widget.cpp     14 Dec 2008 13:20:40 -0000      1.6
@@ -127,6 +127,13 @@
 }
 
 
+void DicToolsWidget::setPlus1Rack(const QString &iRack)
+{
+    lineEditPlus1->setText(iRack);
+    refreshPlus1();
+}
+
+
 void DicToolsWidget::refreshCheck()
 {
     QLineEdit *rack = lineEditCheck;

Index: qt/dic_tools_widget.h
===================================================================
RCS file: /cvsroot/eliot/eliot/qt/dic_tools_widget.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- qt/dic_tools_widget.h       14 Sep 2008 21:12:24 -0000      1.2
+++ qt/dic_tools_widget.h       14 Dec 2008 13:20:40 -0000      1.3
@@ -39,6 +39,7 @@
 
 public slots:
     void setDic(const Dictionary *iDic);
+    void setPlus1Rack(const QString &iRack);
 
 private:
     /// Dictionary in which the searches are done

Index: qt/main_window.cpp
===================================================================
RCS file: /cvsroot/eliot/eliot/qt/main_window.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- qt/main_window.cpp  8 Dec 2008 21:38:12 -0000       1.24
+++ qt/main_window.cpp  14 Dec 2008 13:20:44 -0000      1.25
@@ -130,16 +130,16 @@
 
     // Players racks
     m_ui.groupBoxPlayers->hide();
-    PlayerTabWidget *players = new PlayerTabWidget(NULL);
-    m_ui.groupBoxPlayers->layout()->addWidget(players);
+    m_playersWidget = new PlayerTabWidget(NULL);
+    m_ui.groupBoxPlayers->layout()->addWidget(m_playersWidget);
     QObject::connect(this, SIGNAL(gameChangedNonConst(PublicGame*)),
-                     players, SLOT(setGame(PublicGame*)));
-    QObject::connect(this, SIGNAL(gameUpdated()), players, SLOT(refresh()));
+                     m_playersWidget, SLOT(setGame(PublicGame*)));
+    QObject::connect(this, SIGNAL(gameUpdated()), m_playersWidget, 
SLOT(refresh()));
 
-    QObject::connect(players, SIGNAL(gameUpdated()), this, 
SIGNAL(gameUpdated()));
-    QObject::connect(players, SIGNAL(notifyProblem(QString)),
+    QObject::connect(m_playersWidget, SIGNAL(gameUpdated()), this, 
SIGNAL(gameUpdated()));
+    QObject::connect(m_playersWidget, SIGNAL(notifyProblem(QString)),
                      this, SLOT(displayErrorMsg(QString)));
-    QObject::connect(players, SIGNAL(notifyInfo(QString)),
+    QObject::connect(m_playersWidget, SIGNAL(notifyInfo(QString)),
                      this, SLOT(displayInfoMsg(QString)));
 
     // Players score
@@ -219,6 +219,30 @@
 }
 
 
+void MainWindow::prefsUpdated()
+{
+    // Disconnect the training rack updates from the "Plus 1" tab of the
+    // dictionary tools
+    m_playersWidget->disconnect(SIGNAL(trainingRackUpdated(const QString&)));
+    // Reconnect it only if needed
+    if (m_dicToolsWindow != NULL)
+    {
+        QSettings qs(ORGANIZATION, PACKAGE_NAME);
+        if (qs.value(PrefsDialog::kINTF_LINK_TRAINING_7P1, false).toBool())
+        {
+            QObject::connect(m_playersWidget,
+                             SIGNAL(trainingRackUpdated(const QString&)),
+                             &m_dicToolsWindow->getWidget(),
+                             SLOT(setPlus1Rack(const QString&)));
+        }
+    }
+
+    // Probably useless in most cases (currently only used for
+    // the History alignment)
+    emit gameUpdated();
+}
+
+
 void MainWindow::updateForGame(const PublicGame *iGame)
 {
     if (iGame == NULL)
@@ -643,8 +667,8 @@
     if (m_prefsDialog == NULL)
     {
         m_prefsDialog = new PrefsDialog(this);
-        QObject::connect(m_prefsDialog, SIGNAL(gameUpdated()),
-                         this, SIGNAL(gameUpdated()));
+        QObject::connect(m_prefsDialog, SIGNAL(prefsUpdated()),
+                         this, SLOT(prefsUpdated()));
     }
     m_prefsDialog->exec();
 }
@@ -766,6 +790,14 @@
                                     m_actionWindowsDicTools);
         QObject::connect(this, SIGNAL(dicChanged(const Dictionary*)),
                          dicTools, SLOT(setDic(const Dictionary*)));
+        // Link the training rack with the "Plus 1" one
+        QSettings qs(ORGANIZATION, PACKAGE_NAME);
+        if (qs.value(PrefsDialog::kINTF_LINK_TRAINING_7P1, false).toBool())
+        {
+            QObject::connect(m_playersWidget,
+                             SIGNAL(trainingRackUpdated(const QString&)),
+                             dicTools, SLOT(setPlus1Rack(const QString&)));
+        }
         // Fake a dictionary selection
         dicTools->setDic(m_dic);
         dicTools->setFocus();

Index: qt/main_window.h
===================================================================
RCS file: /cvsroot/eliot/eliot/qt/main_window.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- qt/main_window.h    30 Nov 2008 20:53:45 -0000      1.14
+++ qt/main_window.h    14 Dec 2008 13:20:46 -0000      1.15
@@ -33,6 +33,7 @@
 class PublicGame;
 class NewGame;
 class PrefsDialog;
+class PlayerTabWidget;
 class AuxWindow;
 class QLabel;
 class QAction;
@@ -83,6 +84,9 @@
     /** Perform some updates when the game is updated */
     void refresh();
 
+    /** Perform work when the preferences were updated */
+    void prefsUpdated();
+
     /**
      * Perform several updates when the game changes (title bar, status bar,
      * grey out some menu items, ...)
@@ -108,6 +112,9 @@
     /// Dialog for the preferences
     PrefsDialog *m_prefsDialog;
 
+    /// Widget for the players
+    PlayerTabWidget *m_playersWidget;
+
     /// Actions enabled or disabled depending on the game state
     QAction *m_actionGamePrint;
     QAction *m_actionGameSaveAs;

Index: qt/player_widget.cpp
===================================================================
RCS file: /cvsroot/eliot/eliot/qt/player_widget.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- qt/player_widget.cpp        30 Nov 2008 21:08:29 -0000      1.13
+++ qt/player_widget.cpp        14 Dec 2008 13:20:46 -0000      1.14
@@ -416,6 +416,8 @@
                              this, SIGNAL(notifyInfo(QString)));
             QObject::connect(trWidget, SIGNAL(gameUpdated()),
                              this, SIGNAL(gameUpdated()));
+            QObject::connect(trWidget, SIGNAL(rackUpdated(const QString&)),
+                             this, SIGNAL(trainingRackUpdated(const 
QString&)));
             addTab(trWidget, qfw(player.getName()));
         }
         else

Index: qt/player_widget.h
===================================================================
RCS file: /cvsroot/eliot/eliot/qt/player_widget.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- qt/player_widget.h  30 Nov 2008 20:53:45 -0000      1.8
+++ qt/player_widget.h  14 Dec 2008 13:20:47 -0000      1.9
@@ -87,6 +87,7 @@
     void gameUpdated();
     void notifyProblem(QString iMsg);
     void notifyInfo(QString iMsg);
+    void trainingRackUpdated(const QString &iRack);
 
 private slots:
     void changeCurrentPlayer(int);

Index: qt/prefs_dialog.cpp
===================================================================
RCS file: /cvsroot/eliot/eliot/qt/prefs_dialog.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- qt/prefs_dialog.cpp 8 Dec 2008 21:38:12 -0000       1.7
+++ qt/prefs_dialog.cpp 14 Dec 2008 13:20:48 -0000      1.8
@@ -33,6 +33,7 @@
 const QString PrefsDialog::kINTF_DIC_PATH = "Interface/DicPath";
 const QString PrefsDialog::kINTF_WARN_REPLAY_TURN = "Interface/WarnReplayTurn";
 const QString PrefsDialog::kINTF_SHOW_TOOLBAR = "Interface/ShowToolBar";
+const QString PrefsDialog::kINTF_LINK_TRAINING_7P1 = 
"Interface/LinkTrainingRackWith7P1";
 
 
 PrefsDialog::PrefsDialog(QWidget *iParent)
@@ -48,11 +49,19 @@
         
checkBoxIntfAlignHistory->setChecked(qs.value(kINTF_ALIGN_HISTORY).toBool());
         bool warnReplayTurn = qs.value(kINTF_WARN_REPLAY_TURN, true).toBool();
         checkBoxIntfWarnReplayTurn->setChecked(warnReplayTurn);
+        bool linkTraining7P1 = qs.value(kINTF_LINK_TRAINING_7P1, 
false).toBool();
+        checkBoxIntfLinkTraining7P1->setChecked(linkTraining7P1);
 
         // Duplicate settings
         
checkBoxDuplRefuseInvalid->setChecked(Settings::Instance().getBool("duplicate.reject-invalid"));
         
spinBoxDuplSoloPlayers->setValue(Settings::Instance().getInt("duplicate.solo-players"));
         
spinBoxDuplSoloValue->setValue(Settings::Instance().getInt("duplicate.solo-value"));
+
+        // Freegame settings
+        
checkBoxFreeRefuseInvalid->setChecked(Settings::Instance().getBool("freegame.reject-invalid"));
+
+        // Training settings
+
     }
     catch (GameException &e)
     {
@@ -60,13 +69,6 @@
                              _q("Cannot load preferences: %1").arg(e.what()));
     }
 
-    // Freegame settings
-    
checkBoxFreeRefuseInvalid->setChecked(Settings::Instance().getBool("freegame.reject-invalid"));
-
-    // Training settings
-    // XXX: Hide them until there is something to show
-    groupBoxTraining->hide();
-
     // Resize the dialog so that it gets its minimal size
     resize(10, 10);
 }
@@ -104,6 +106,13 @@
             qs.setValue(kINTF_ALIGN_HISTORY, 
checkBoxIntfAlignHistory->isChecked());
         }
         qs.setValue(kINTF_WARN_REPLAY_TURN, 
checkBoxIntfWarnReplayTurn->isChecked());
+        if (qs.value(kINTF_LINK_TRAINING_7P1).toBool() != 
checkBoxIntfLinkTraining7P1->isChecked())
+        {
+            // We need to (dis)connect the training widget with the dictionary
+            // tools window
+            shouldEmitUpdate = true;
+            qs.setValue(kINTF_LINK_TRAINING_7P1, 
checkBoxIntfLinkTraining7P1->isChecked());
+        }
 
         // Duplicate settings
         Settings::Instance().setBool("duplicate.reject-invalid",
@@ -127,7 +136,7 @@
     }
 
     if (shouldEmitUpdate)
-        emit gameUpdated();
+        emit prefsUpdated();
 }
 
 

Index: qt/prefs_dialog.h
===================================================================
RCS file: /cvsroot/eliot/eliot/qt/prefs_dialog.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- qt/prefs_dialog.h   8 Dec 2008 21:38:12 -0000       1.4
+++ qt/prefs_dialog.h   14 Dec 2008 13:20:48 -0000      1.5
@@ -38,13 +38,14 @@
     static const QString kINTF_DIC_PATH;
     static const QString kINTF_WARN_REPLAY_TURN;
     static const QString kINTF_SHOW_TOOLBAR;
+    static const QString kINTF_LINK_TRAINING_7P1;
 
 public slots:
     /// Update the settings when the user selects "OK"
     virtual void accept();
 
 signals:
-    void gameUpdated();
+    void prefsUpdated();
 
 private slots:
     void on_pushButtonIntfDicBrowse_clicked();

Index: qt/training_widget.cpp
===================================================================
RCS file: /cvsroot/eliot/eliot/qt/training_widget.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- qt/training_widget.cpp      30 Nov 2008 21:08:29 -0000      1.7
+++ qt/training_widget.cpp      14 Dec 2008 13:20:49 -0000      1.8
@@ -78,6 +78,9 @@
 
     m_validator = new RackValidator(this);
     lineEditRack->setValidator(m_validator);
+    // Notify that the rack changed
+    QObject::connect(lineEditRack, SIGNAL(textChanged(const QString&)),
+                     this, SIGNAL(rackUpdated(const QString&)));
 
     refresh();
 }

Index: qt/training_widget.h
===================================================================
RCS file: /cvsroot/eliot/eliot/qt/training_widget.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- qt/training_widget.h        30 Nov 2008 20:53:46 -0000      1.4
+++ qt/training_widget.h        14 Dec 2008 13:20:49 -0000      1.5
@@ -45,6 +45,7 @@
     void gameUpdated();
     void notifyProblem(QString iMsg);
     void notifyInfo(QString iMsg);
+    void rackUpdated(const QString &iRack);
 
 protected:
     /// Define a default size
@@ -54,7 +55,7 @@
     void enablePlayButton(const QItemSelection &, const QItemSelection &);
     void showPreview(const QItemSelection &, const QItemSelection &);
 
-    // These slots are automatocally connected
+    // These slots are automatically connected
     void on_lineEditRack_textEdited(const QString &iText);
     void on_pushButtonRack_clicked();
     void on_pushButtonComplement_clicked();

Index: qt/ui/prefs_dialog.ui
===================================================================
RCS file: /cvsroot/eliot/eliot/qt/ui/prefs_dialog.ui,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- qt/ui/prefs_dialog.ui       8 Dec 2008 21:37:02 -0000       1.7
+++ qt/ui/prefs_dialog.ui       14 Dec 2008 13:20:50 -0000      1.8
@@ -5,8 +5,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>404</width>
-    <height>437</height>
+    <width>508</width>
+    <height>442</height>
    </rect>
   </property>
   <property name="windowTitle" >
@@ -68,6 +68,9 @@
       </item>
       <item>
        <widget class="QCheckBox" name="checkBoxIntfWarnReplayTurn" >
+        <property name="toolTip" >
+         <string>_("If checked, a confirmation will be requested before 
replaying the game from a given turn. If unchecked, the action is performed 
without confirmation.")</string>
+        </property>
         <property name="text" >
          <string>_("Warn before replaying a turn")</string>
         </property>
@@ -190,11 +193,14 @@
      <property name="title" >
       <string>_("Training mode")</string>
      </property>
-     <layout class="QVBoxLayout" >
+     <layout class="QVBoxLayout" name="verticalLayout" >
       <item>
-       <widget class="QLabel" name="label" >
+       <widget class="QCheckBox" name="checkBoxIntfLinkTraining7P1" >
+        <property name="toolTip" >
+         <string>_("If checked, any change to the player rack in training mode 
will update the 'Plus 1' tab of the 'Dictionary tools' window")</string>
+        </property>
         <property name="text" >
-         <string>Nothing yet</string>
+         <string>_("Copy rack to the 'Plus 1' dictionary tool")</string>
         </property>
        </widget>
       </item>




reply via email to

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