[Xword-commits] r73 - branches/recentlist/usr/bin

btb at garage.maemo.org btb at garage.maemo.org
Sat May 10 03:08:40 EEST 2008


Author: btb
Date: 2008-05-10 03:08:39 +0300 (Sat, 10 May 2008)
New Revision: 73

Modified:
   branches/recentlist/usr/bin/xword
Log:
move menu functionality out of RecentList class


Modified: branches/recentlist/usr/bin/xword
===================================================================
--- branches/recentlist/usr/bin/xword	2008-05-09 21:41:38 UTC (rev 72)
+++ branches/recentlist/usr/bin/xword	2008-05-10 00:08:39 UTC (rev 73)
@@ -1241,45 +1241,27 @@
 
 
 class RecentList:
-    def __init__(self, parent):
+    def __init__(self):
         self.max_entries = 5
-        self.parent = parent
         self.recent_list = []
-        self.update_menu()
 
     def add(self,newentry):
         self.delete(newentry)
         self.recent_list.insert(0,newentry)
         if len(self.recent_list) > self.max_entries:
             del self.recent_list[-1]
-        self.update_menu()
 
     def delete(self,newentry):
         if newentry in self.recent_list:
             try:
                 self.recent_list.remove(newentry)
-                self.update_menu()
             except ValueError:
                 pass
 
     def set(self, newlist=[]):
         self.recent_list = newlist
-        self.update_menu()
 
-    def update_menu(self):
-        for child in self.parent.recent_menu.get_children():
-            self.parent.recent_menu.remove(child)
-        if len(self.recent_list) == 0:
-            emptymenu = gtk.MenuItem('Empty')
-            self.parent.recent_menu.append(emptymenu)
-        else:
-            for item in self.recent_list:
-                m = gtk.MenuItem(item.split(os.sep)[-1])
-                m.connect('activate', self.parent.menu_selected, 'recent', item)
-                self.parent.recent_menu.append(m)
-        self.parent.recent_menu.show_all()
 
-
 class PuzzleWindow:
     def __init__(self, puzzle):
         self.clock_time = 0.0
@@ -1292,7 +1274,7 @@
         else: self.control = DummyController()
 
         self.recent_menu = gtk.Menu()
-        self.recent = RecentList(self)
+        self.recent = RecentList()
 
         self.skip_filled = False
         self.layout = 0
@@ -1329,6 +1311,7 @@
         menubox = gtk.VBox()
         self.menubar = self.create_menubar()
         menubox.pack_start(self.menubar, False, False, 0)
+        self.update_recent_menu()
 
         win.add(menubox)
 
@@ -1381,7 +1364,6 @@
         def enable(w): w.set_property('sensitive', enabled)
         
         enable(self.menu_items['save'])
-        enable(self.menu_items['recent'])
         enable(self.menu_items['properties'])
         if has_print:
             enable(self.menu_items['print'])
@@ -1412,6 +1394,7 @@
             return
         self.last_file = fname
         self.recent.add(fname)
+        self.update_recent_menu()
         self.control = PuzzleController(self.puzzle)
         self.setup_controller()
         self.clue_widget.set_controller(self.control)
@@ -1734,6 +1717,19 @@
         if not self.maximized:
             self.window_size = self.win.get_size()
 
+    def update_recent_menu(self):
+        for child in self.recent_menu.get_children():
+            self.recent_menu.remove(child)
+        if len(self.recent.recent_list) == 0:
+            self.menu_items['recent'].set_property('sensitive', False)
+        else:
+            self.menu_items['recent'].set_property('sensitive', True)
+            for item in self.recent.recent_list:
+                m = gtk.MenuItem(item.split(os.sep)[-1])
+                m.connect('activate', self.menu_selected, 'recent', item)
+                self.recent_menu.append(m)
+        self.recent_menu.show_all()
+
     def create_menubar(self):
         accel = gtk.AccelGroup()
 
@@ -2205,6 +2201,7 @@
             else:
                 self.notify('File not found.')
                 self.recent.delete(filename)
+                self.update_recent_menu()
 
     def print_puzzle(self):
         if has_print:



More information about the Xword-commits mailing list