[gnome-games] chess: Make history combo correctly track move number



commit 98a12e0137439dd8168d69c67662de578b6b0c09
Author: Robert Ancell <robert ancell canonical com>
Date:   Wed Jan 19 10:07:48 2011 +1100

    chess: Make history combo correctly track move number

 glchess/data/glchess.ui  |    1 -
 glchess/src/glchess.vala |    9 +++++++--
 2 files changed, 7 insertions(+), 3 deletions(-)
---
diff --git a/glchess/data/glchess.ui b/glchess/data/glchess.ui
index cbcd7af..4978305 100644
--- a/glchess/data/glchess.ui
+++ b/glchess/data/glchess.ui
@@ -355,7 +355,6 @@
                   <object class="GtkComboBox" id="history_combo">
                     <property name="visible">True</property>
                     <property name="model">history_model</property>
-                    <signal name="changed" handler="history_combo_changed_cb" swapped="no"/>
                     <child>
                       <object class="GtkCellRendererText" id="history_combo_cellrenderer"/>
                       <attributes>
diff --git a/glchess/src/glchess.vala b/glchess/src/glchess.vala
index 250eb78..1c9a88e 100644
--- a/glchess/src/glchess.vala
+++ b/glchess/src/glchess.vala
@@ -167,6 +167,7 @@ public class Application
         next_move_button.sensitive = move_number < n_moves;
         last_move_button.sensitive = n_moves > 0 && move_number != n_moves;
 
+        /* Set move text for all moves (it may have changed format) */
         int i = n_moves;
         foreach (var state in game.move_stack)
         {
@@ -178,6 +179,8 @@ public class Application
             }
             i--;
         }
+
+        history_combo.set_active (move_number);
     }
 
     private void options_changed_cb (ChessViewOptions options)
@@ -600,9 +603,11 @@ public class Application
         Gtk.TreeIter iter;
         var model = (Gtk.ListStore) history_combo.model;
         model.append (out iter);
-        model.set (iter, 1, game.n_moves, -1);        
+        model.set (iter, 1, move.number, -1);        
         set_move_text (iter, move);
-        if (view_options.move_number == -1)
+
+        /* Follow the latest move */
+        if (move.number == game.n_moves && view_options.move_number == -1)
             history_combo.set_active_iter (iter);
 
         save_menu.sensitive = true;



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