ENTRY_TEMPLATE = entry_head
ENTRY_TEMPLATE_UNREAD = entry_active_head
+notification_iface = None
+def notify(message):
+ def get_iface():
+ global notification_iface
+
+ bus = dbus.SessionBus()
+ proxy = bus.get_object('org.freedesktop.Notifications',
+ '/org/freedesktop/Notifications')
+ notification_iface \
+ = dbus.Interface(proxy, 'org.freedesktop.Notifications')
+
+ def doit():
+ notification_iface.SystemNoteInfoprint("FeedingIt: " + message)
+
+ if notification_iface is None:
+ get_iface()
+
+ try:
+ doit()
+ except dbus.DBusException:
+ # Rebind the name and try again.
+ get_iface()
+ doit()
+
##
# Removes HTML or XML character references and entities from a text string.
#
self.set_for_removal = True
def open_in_browser(self, object, link=None):
- import dbus
- bus = dbus.SessionBus()
- proxy = bus.get_object("com.nokia.osso_browser", "/com/nokia/osso_browser/request")
- iface = dbus.Interface(proxy, 'com.nokia.osso_browser')
if link == None:
- iface.open_new_window(self.currentUrl)
- else:
- iface.open_new_window(link)
+ link = self.currentUrl
+
+ bus = dbus.SessionBus()
+ b_proxy = bus.get_object("com.nokia.osso_browser",
+ "/com/nokia/osso_browser/request")
+ b_iface = dbus.Interface(b_proxy, 'com.nokia.osso_browser')
+
+ notify("Opening %s" % link)
+
+ # We open the link asynchronously: if the web browser is not
+ # already running, this can take a while.
+ def error_handler():
+ """
+ Something went wrong opening the URL.
+ """
+ def e(exception):
+ notify("Error opening %s: %s" % (link, str(exception)))
+ return e
+
+ b_iface.open_new_window(link,
+ reply_handler=lambda *args: None,
+ error_handler=error_handler())
class DisplayFeed(hildon.StackableWindow):
def __init__(self, listing, feed, title, key, config):