From 54cf9739f3822b5e351887a8b2d173e14a93731c Mon Sep 17 00:00:00 2001 From: Yves Marcoz Date: Mon, 31 May 2010 19:21:20 -0700 Subject: [PATCH] Modified TreeView for article listing, and for the widget --- src/FeedingIt.py | 13 +++++++++++-- src/feedingit_widget.py | 30 +++++++++++++++++++++++------- src/feedingitdbus.py | 3 ++- 3 files changed, 36 insertions(+), 10 deletions(-) diff --git a/src/FeedingIt.py b/src/FeedingIt.py index dc4aa71..32919b7 100644 --- a/src/FeedingIt.py +++ b/src/FeedingIt.py @@ -671,7 +671,6 @@ class DisplayFeed(hildon.StackableWindow): #self.feedList.connect('row-activated', self.on_feedList_row_activated) - self.feedList.connect('hildon-row-tapped', self.on_feedList_row_activated) vbox= gtk.VBox(False, 10) vbox.pack_start(self.feedList) @@ -688,6 +687,7 @@ class DisplayFeed(hildon.StackableWindow): #self.pannableFeed.set_property("mov-mode", hildon.MOVEMENT_MODE_BOTH) hideReadArticles = self.config.getHideReadArticles() + hasArticle = False for id in self.feed.getIds(): isRead = False try: @@ -706,6 +706,12 @@ class DisplayFeed(hildon.StackableWindow): markup = ENTRY_TEMPLATE_UNREAD % (self.config.getFontSize(), title) self.feedItems.append((markup, id)) + hasArticle = True + if hasArticle: + self.feedList.connect('hildon-row-tapped', self.on_feedList_row_activated) + else: + markup = ENTRY_TEMPLATE % (self.config.getFontSize(), "No Articles To Display") + self.feedItems.append((markup, "")) self.add(self.pannableFeed) self.show_all() @@ -1061,7 +1067,9 @@ class FeedingIt: model = treeview.get_model() iter = model.get_iter(path) key = model.get_value(iter, COLUMN_KEY) - + self.openFeed(key) + + def openFeed(self, key): try: self.feed_lock except: @@ -1071,6 +1079,7 @@ class FeedingIt: self.listing.getFeedTitle(key), key, \ self.config, self.updateDbusHandler) self.disp.connect("feed-closed", self.onFeedClosed) + def onFeedClosed(self, object, key): #self.listing.saveConfig() diff --git a/src/feedingit_widget.py b/src/feedingit_widget.py index 33c2f57..cabd729 100644 --- a/src/feedingit_widget.py +++ b/src/feedingit_widget.py @@ -38,9 +38,12 @@ from os import environ, remove bus = dbus.bus.BusConnection(environ["DBUS_SESSION_BUS_ADDRESS"]) from os.path import isfile -color_style = gtk.rc_get_style_by_paths(gtk.settings_get_default() , 'GtkButton', 'osso-logical-colors', gtk.Button) +settings = gtk.settings_get_default() +color_style = gtk.rc_get_style_by_paths( settings, 'GtkButton', 'osso-logical-colors', gtk.Button) active_color = color_style.lookup_color('ActiveTextColor') default_color = color_style.lookup_color('DefaultTextColor') +font_desc = gtk.rc_get_style_by_paths(settings, 'HomeSystemFont', None, None).font_desc + del color_style CONFIGDIR="/home/user/.feedingit/" @@ -51,6 +54,13 @@ SOURCE=CONFIGDIR + "source" #libc = ctypes.CDLL('libc.so.6') #libc.printf('Hello world!') +def get_font_desc(logicalfontname): + settings = gtk.settings_get_default() + font_style = gtk.rc_get_style_by_paths(settings, logicalfontname, \ + None, None) + font_desc = font_style.font_desc + return font_desc + class FeedingItHomePlugin(hildondesktop.HomePluginItem): def __init__(self): __gsignals__ = { @@ -79,9 +89,10 @@ class FeedingItHomePlugin(hildondesktop.HomePluginItem): self.label1 = self.button.child.child.get_children()[0].get_children()[0] self.label2 = self.button.child.child.get_children()[0].get_children()[1] self.label1.modify_fg(gtk.STATE_INSENSITIVE, default_color) + self.label1.modify_font(font_desc) self.label2.modify_fg(gtk.STATE_INSENSITIVE, active_color) icon_theme = gtk.icon_theme_get_default() - pixbuf = icon_theme.load_icon("feedingit", 48, gtk.ICON_LOOKUP_USE_BUILTIN ) + pixbuf = icon_theme.load_icon("feedingit", 32, gtk.ICON_LOOKUP_USE_BUILTIN ) image = gtk.Image() image.set_from_pixbuf(pixbuf) self.button.set_image(image) @@ -96,15 +107,21 @@ class FeedingItHomePlugin(hildondesktop.HomePluginItem): # self.treestore.append([feed, "0"]) self.treeview = gtk.TreeView() self.update_list() - self.treeview.append_column(gtk.TreeViewColumn('Feed Name', gtk.CellRendererText(), text = 0)) - self.treeview.append_column(gtk.TreeViewColumn('Unread Items', gtk.CellRendererText(), text = 1)) + name_renderer = gtk.CellRendererText() + name_renderer.set_property("font-desc", font_desc) + unread_renderer = gtk.CellRendererText() + unread_renderer.set_property("font-desc", font_desc) + self.treeview.append_column(gtk.TreeViewColumn('Feed Name', name_renderer, text = 0)) + self.treeview.append_column(gtk.TreeViewColumn('Unread Items', unread_renderer, text = 1)) + selection = self.treeview.get_selection() + #selection.set_mode(gtk.SELECTION_NONE) #self.treeview.get_selection().set_mode(gtk.SELECTION_NONE) #hildon.hildon_gtk_tree_view_set_ui_mode(self.treeview, gtk.HILDON_UI_MODE_NORMAL) vbox.pack_start(self.treeview) self.add(vbox) - self.treeview.connect("row-activated", self.row_activated) + self.treeview.connect("hildon-row-tapped", self.row_activated) #self.treeview.connect("cursor-changed", self.cursor_changed) vbox.show_all() self.setupDbus() @@ -145,7 +162,7 @@ class FeedingItHomePlugin(hildondesktop.HomePluginItem): else: self.button.set_value("") - def row_activated(self, treeview, treepath, column): + def row_activated(self, treeview, treepath): #, column): (model, iter) = self.treeview.get_selection().get_selected() key = model.get_value(iter, 2) # Create an object that will proxy for a particular remote object. @@ -183,7 +200,6 @@ class FeedingItHomePlugin(hildondesktop.HomePluginItem): for item in list[0:8]: treestore.append(item) self.treeview.set_model(treestore) - self.treeview.get_selection().unselect_all() if self.total > oldtotal: self.update_label("%s Unread" %str(self.total), "%s more articles" %str(self.total-oldtotal)) else: diff --git a/src/feedingitdbus.py b/src/feedingitdbus.py index 7081c41..1974254 100644 --- a/src/feedingitdbus.py +++ b/src/feedingitdbus.py @@ -46,5 +46,6 @@ class ServerObject(dbus.service.Object): @dbus.service.method('org.maemo.feedingit') def OpenFeed(self, key): - self.app.buttonFeedClicked(None, self.app, None, key) + #self.app.buttonFeedClicked(None, self.app, None, key) + self.app.openFeed(key) return "Done" -- 1.7.9.5