17
17
"""Notification area icon and notification for Bazaar."""
20
import bzrlib.plugins.dbus
23
return (getattr(bzrlib.plugins, "dbus", None) is not None)
26
return (getattr(bzrlib.plugins, "avahi", None) is not None)
21
28
class NotifyPopupMenu(gtk.Menu):
22
29
def __init__(self):
24
31
self.create_items()
26
33
def create_items(self):
34
item = gtk.CheckMenuItem('_Gateway to LAN')
35
item.connect('toggled', self.toggle_lan_gateway)
37
self.append(gtk.SeparatorMenuItem())
28
39
from bzrlib.plugins.dbus.activity import LanGateway
29
40
self.langateway = LanGateway()
30
item = gtk.CheckMenuItem('_Gateway to LAN')
31
item.connect('toggled', self.toggle_lan_gateway)
33
self.append(gtk.SeparatorMenuItem())
34
41
except ImportError:
42
item.set_sensitive(False)
44
item = gtk.CheckMenuItem('Announce _branches on LAN')
45
item.connect('toggled', self.toggle_announce_branches)
47
self.append(gtk.SeparatorMenuItem())
38
49
from bzrlib.plugins.avahi.share import ZeroConfServer
39
50
from bzrlib import urlutils
40
51
self.zeroconfserver = ZeroConfServer(urlutils.normalize_url('.'))
41
item = gtk.CheckMenuItem('Announce _branches on LAN')
42
item.connect('toggled', self.toggle_announce_branches)
44
self.append(gtk.SeparatorMenuItem())
45
52
except ImportError:
53
item.set_sensitive(False)
48
55
item = gtk.ImageMenuItem(gtk.STOCK_PREFERENCES, None)
49
56
item.connect('activate', self.show_preferences)