16
16
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
17
"""Notification area icon and notification for Bazaar."""
30
return (getattr(bzrlib.plugins, "dbus", None) is not None)
34
return (getattr(bzrlib.plugins, "avahi", None) is not None)
21
37
class NotifyPopupMenu(gtk.Menu):
22
39
def __init__(self):
23
40
super(NotifyPopupMenu, self).__init__()
24
41
self.create_items()
26
43
def create_items(self):
44
from bzrlib import errors
45
item = gtk.CheckMenuItem('_Gateway to LAN')
46
item.connect('toggled', self.toggle_lan_gateway)
48
self.append(gtk.SeparatorMenuItem())
28
50
from bzrlib.plugins.dbus.activity import LanGateway
29
51
self.langateway = LanGateway()
30
item = gtk.CheckMenuItem('_Gateway to LAN')
31
item.connect('toggled', self.toggle_lan_gateway)
33
self.append(gtk.SeparatorMenuItem())
34
52
except ImportError:
53
item.set_sensitive(False)
54
except errors.BzrError:
55
# FIXME: Should only catch errors that indicate a lan-notify
56
# process is already running.
57
item.set_sensitive(False)
59
item = gtk.CheckMenuItem('Announce _branches on LAN')
60
item.connect('toggled', self.toggle_announce_branches)
62
self.append(gtk.SeparatorMenuItem())
38
64
from bzrlib.plugins.avahi.share import ZeroConfServer
39
65
from bzrlib import urlutils
40
66
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
67
except ImportError:
68
item.set_sensitive(False)
48
70
item = gtk.ImageMenuItem(gtk.STOCK_PREFERENCES, None)
49
71
item.connect('activate', self.show_preferences)
74
96
self.zeroconfserver.close()
76
98
def show_about(self, item):
77
from about import AboutDialog
99
from bzrlib.plugins.gtk.about import AboutDialog
78
100
dialog = AboutDialog()
81
103
def show_preferences(self, item):
82
from preferences import PreferencesWindow
104
from bzrlib.plugins.gtk.preferences import PreferencesWindow
83
105
prefs = PreferencesWindow()