Author: esr
Date: Thu Oct 16 14:46:39 2008
New Revision: 30197

URL: http://svn.gna.org/viewcvs/wesnoth?rev=30197&view=rev
Log:
trackplacer: make track addition have the right side effects in other controls.

Modified:
    trunk/data/tools/trackplacer

Modified: trunk/data/tools/trackplacer
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/data/tools/trackplacer?rev=30197&r1=30196&r2=30197&view=diff
==============================================================================
--- trunk/data/tools/trackplacer (original)
+++ trunk/data/tools/trackplacer Thu Oct 16 14:46:39 2008
@@ -251,7 +251,7 @@
     def add_track(self, name):
         if name not in self.track_list:
             self.tracks[name] = []
-            self.tracklist.append(name)
+            self.track_list.append(name)
             self.modified = True
     def remove_track(self, name):
         if name in self.track_list:
@@ -261,7 +261,7 @@
     def rename_track(self, oldname, newname):
         if oldname in self.tracklist and newname not in self.tracklist:
             self.tracks[newname] = self.tracks[oldname]
-            self.tracklist[self.track_list.index(oldname)] = newname
+            self.track_list[self.track_list.index(oldname)] = newname
     def has_unsaved_changes(self):
         return self.modified
     def neighbors(self, x, y):
@@ -843,23 +843,25 @@
         addentry = gtk.Entry()
         addentry.show()
         addbox.add(addentry)
-        addentry.connect("activate",
-                         lambda w: TrackController(self,
-                                                 addentry.get_text(),
-                                                 self.trackbox,
-                                                 basebutton))
+        addentry.connect("activate", self.track_add_callback, basebutton)
         self.visibility.vbox.add(addbox)
         self.visibility.connect("response", self.track_visibility_revert)
         self.visibility.show()
+    def track_select(self, w, track_id):
+        "Make the specified track the selected one for editing."
+        self.journey.set_selected_track(track_id)
+        self.controller[track_id].checkbox.set_active(True)
+        self.controller[track_id].radiobutton.set_active(True)
+        if track_id not in self.visible_set:
+            self.track_visibility_callback(self.controller[track_id], track_id)
+        else:
+            self.redraw(self.drawing_area, delay=0.05)
     def track_activity_callback(self, w, track_id):
+        "Called (twice) when a track activity radiobutton is toggled."
         if w.get_active():
-            self.journey.set_selected_track(track_id)
-            self.controller[track_id].checkbox.set_active(True)
-            if track_id not in self.visible_set:
-                self.track_visibility_callback(w, track_id)
-            else:
-                self.redraw(self.drawing_area, delay=0.05)
+            self.track_select(w, track_id)
     def track_visibility_callback(self, w, track_id):
+        "Called when a track visibility checkbutton is toggled."
         if len(self.visible_set) <= 1 and track_id in self.visible_set:
             w = gtk.MessageDialog(type=gtk.MESSAGE_INFO,
                                   flags=gtk.DIALOG_DESTROY_WITH_PARENT,
@@ -878,8 +880,15 @@
         if self.journey.selected_id not in self.visible_set:
             self.journey.set_selected_track(self.visible_set[-1])
         self.redraw(self.drawing_area, delay=0.05)
+    def track_add_callback(self, w, basebutton):
+        "Add a new track, and the controller for it, and select it."
+        track_id = w.get_text()
+        w.set_text("")
+        TrackController(self, track_id, self.trackbox, basebutton)
+        self.journey.add_track(track_id)
+        self.track_select(w, track_id)
     def track_visibility_revert(self, w, response_id):
-        "On response or window distruction, restire visibility set."
+        "On response or window distruction, restore visibility set."
         self.visible_set = self.journey.track_list
         self.redraw(self.drawing_area, delay=0.05)
         self.visibility.destroy()


_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits

Reply via email to