12
12
from bzrlib.plugins.gtk.commands import open_display
14
14
from bzrlib.plugins.gtk.notify import NotifyPopupMenu
21
19
import dbus.service
22
from gi.repository import GObject
23
from gi.repository import Notify
25
22
from bzrlib.bzrdir import BzrDir
26
23
from bzrlib.osutils import format_date
27
24
from bzrlib.transport import get_transport
29
26
menu = NotifyPopupMenu()
31
from gi.repository import AppIndicator3
32
29
except ImportError:
33
icon = Gtk.StatusIcon.new_from_icon_name("bzr-panel")
30
icon = gtk.status_icon_new_from_icon_name("bzr-panel")
34
31
icon.connect('popup-menu', menu.display)
35
32
icon.set_visible(False)
36
33
hide_icon = lambda: icon.set_visible(False)
37
34
show_icon = lambda: icon.set_visible(True)
39
indicator = AppIndicator3.Indicator.new(
40
"bzr-gtk-notify", "bzr-panel", AppIndicator3.IndicatorCategory.OTHER)
41
indicator.set_status (AppIndicator3.IndicatorStatus.PASSIVE)
36
indicator = appindicator.Indicator ("bzr-gtk-notify",
37
"bzr-panel", appindicator.CATEGORY_OTHER)
38
indicator.set_status (appindicator.STATUS_PASSIVE)
42
39
indicator.set_attention_icon("bzr-panel")
43
40
indicator.set_menu(menu)
44
hide_icon = lambda: indicator.set_status (
45
AppIndicator3.IndicatorStatus.PASSIVE)
46
show_icon = lambda: indicator.set_status (
47
AppIndicator3.IndicatorStatus.ATTENTION)
41
hide_icon = lambda: indicator.set_status (appindicator.STATUS_PASSIVE)
42
show_icon = lambda: indicator.set_status (appindicator.STATUS_ATTENTION)
49
44
if getattr(dbus, 'version', (0,0,0)) >= (0,41,0):
70
65
body += revision.message
71
66
body = cgi.escape(body)
72
nw = Notify.Notification.new(summary, body, None)
67
nw = pynotify.Notification(summary, body)
73
68
def start_viz(notification=None, action=None, data=None):
74
69
"""Start the viz program."""
75
70
from bzrlib.plugins.gtk.commands import start_viz_window
80
75
from bzrlib.plugins.gtk.branch import BranchDialog
81
76
bd = BranchDialog(remote_path=url)
83
if "actions" in Notify.get_server_caps():
78
if "actions" in pynotify.get_server_caps():
84
79
nw.add_action("inspect", "Inspect", start_viz, None)
85
80
nw.add_action("branch", "Branch", start_branch, None)
87
GObject.timeout_add(5000, hide_icon)
82
gobject.timeout_add(5000, hide_icon)
88
83
nw.set_timeout(5000)
90
85
except Exception, e:
93
88
bus.add_signal_receiver(catch_branch,
94
89
dbus_interface=BROADCAST_INTERFACE,
95
90
signal_name="Revision")
96
Notify.init("bzr-notify")
98
if sys.argv[-1] == 'test':
99
# Exit before main loop.
91
pynotify.init("bzr-notify")