Do less important start up configuration after the main view is shown.
authorNeal H. Walfield <neal@walfield.org>
Tue, 6 Sep 2011 20:57:01 +0000 (22:57 +0200)
committerNeal H. Walfield <neal@walfield.org>
Thu, 8 Sep 2011 16:37:31 +0000 (18:37 +0200)
src/FeedingIt.py

index 926f139..48faf04 100644 (file)
@@ -1159,51 +1159,18 @@ class FeedingIt:
         self.listing = Listing(self.config, CONFIGDIR)
 
         self.downloadDialog = False
-        
-        menu = hildon.AppMenu()
-        # Create a button and add it to the menu
-        button = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
-        button.set_label("Update feeds")
-        button.connect("clicked", self.button_update_clicked, "All")
-        menu.append(button)
-        
-        button = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
-        button.set_label("Mark all as read")
-        button.connect("clicked", self.button_markAll)
-        menu.append(button)
-
-        button = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
-        button.set_label("Add new feed")
-        button.connect("clicked", lambda b: self.addFeed())
-        menu.append(button)
-
-        button = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
-        button.set_label("Manage subscriptions")
-        button.connect("clicked", self.button_organize_clicked)
-        menu.append(button)
 
-        button = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
-        button.set_label("Settings")
-        button.connect("clicked", self.button_preferences_clicked)
-        menu.append(button)
-       
-        button = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
-        button.set_label("About")
-        button.connect("clicked", self.button_about_clicked)
-        menu.append(button)
-        
-        self.window.set_app_menu(menu)
-        menu.show_all()
-        
-        #self.feedWindow = hildon.StackableWindow()
-        #self.articleWindow = hildon.StackableWindow()
         self.introLabel.destroy()
         self.pannableListing = hildon.PannableArea()
+
+        # The main area is a view consisting of an icon and two
+        # strings.  The view is bound to the Listing's database via a
+        # TreeStore.
+
         self.feedItems = gtk.TreeStore(gtk.gdk.Pixbuf, str, str)
         self.feedList = gtk.TreeView(self.feedItems)
         self.feedList.connect('row-activated', self.on_feedList_row_activated)
-        #self.feedList.set_enable_tree_lines(True)                                                                                           
-        #self.feedList.set_show_expanders(True)
+
         self.pannableListing.add(self.feedList)
 
         icon_renderer = gtk.CellRendererPixbuf()
@@ -1220,12 +1187,10 @@ class FeedingIt:
         self.mainVbox.show_all()
 
         self.displayListing()
-        self.autoupdate = False
-        self.checkAutoUpdate()
         
         hildon.hildon_gtk_window_set_progress_indicator(self.window, 0)
         gobject.idle_add(self.late_init)
-        
+
     def update_progress(self, percent_complete,
                         completed, in_progress, queued,
                         bytes_downloaded, bytes_updated, bytes_per_second,
@@ -1246,6 +1211,43 @@ class FeedingIt:
             self.displayListing()
 
     def late_init(self):
+        # Finish building the GUI.
+        menu = hildon.AppMenu()
+        # Create a button and add it to the menu
+        button = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
+        button.set_label("Update feeds")
+        button.connect("clicked", self.button_update_clicked, "All")
+        menu.append(button)
+        
+        button = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
+        button.set_label("Mark all as read")
+        button.connect("clicked", self.button_markAll)
+        menu.append(button)
+
+        button = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
+        button.set_label("Add new feed")
+        button.connect("clicked", lambda b: self.addFeed())
+        menu.append(button)
+
+        button = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
+        button.set_label("Manage subscriptions")
+        button.connect("clicked", self.button_organize_clicked)
+        menu.append(button)
+
+        button = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
+        button.set_label("Settings")
+        button.connect("clicked", self.button_preferences_clicked)
+        menu.append(button)
+       
+        button = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
+        button.set_label("About")
+        button.connect("clicked", self.button_about_clicked)
+        menu.append(button)
+        
+        self.window.set_app_menu(menu)
+        menu.show_all()
+
+        # Initialize the DBus interface.
         self.dbusHandler = ServerObject(self)
         bus = dbus.SessionBus()
         bus.add_signal_receiver(handler_function=self.update_progress,
@@ -1254,6 +1256,10 @@ class FeedingIt:
                                 dbus_interface='org.marcoz.feedingit',
                                 path='/org/marcoz/feedingit/update')
 
+        # Check whether auto-update is enabled.
+        self.autoupdate = False
+        self.checkAutoUpdate()
+
         gobject.idle_add(self.build_feed_display)
 
     def build_feed_display(self):