/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz

« back to all changes in this revision

Viewing changes to bzr-notify

  • Committer: Lucas Shrewsbury
  • Date: 2009-08-24 05:45:14 UTC
  • mto: This revision was merged to the branch mainline in revision 663.
  • Revision ID: rollbak@gmail.com-20090824054514-x5cteatkygzhw1ls
Fix #294632 by adding ignored emblem and correct status.
Fix #417966 by setting not emblem and correcting status.

* nautilus-bzr.py:
(BzrExtension.update_file_info): added check for ignored and unversioned files.

* setup.py: 
(data_files): added ignored emblem image.

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
 
14
14
from bzrlib.plugins.gtk.notify import NotifyPopupMenu
15
15
gtk = open_display()
 
16
menu = NotifyPopupMenu()
 
17
icon = gtk.status_icon_new_from_file(icon_path("bzr-icon-64.png"))
 
18
icon.connect('popup-menu', menu.display)
 
19
icon.set_visible(False)
16
20
 
17
21
import cgi
18
22
import dbus
20
24
import gobject
21
25
import pynotify
22
26
from bzrlib.bzrdir import BzrDir
 
27
from bzrlib import errors
23
28
from bzrlib.osutils import format_date
24
29
from bzrlib.transport import get_transport
25
 
 
26
 
menu = NotifyPopupMenu()
27
 
try:
28
 
    import appindicator
29
 
except ImportError:
30
 
    icon = gtk.status_icon_new_from_file(icon_path("bzr-icon-64.png"))
31
 
    icon.connect('popup-menu', menu.display)
32
 
    icon.set_visible(False)
33
 
    hide_icon = lambda: icon.set_visible(False)
34
 
    show_icon = lambda: icon.set_visible(True)
35
 
else:
36
 
    indicator = appindicator.Indicator ("bzr-gtk-notify",
37
 
        "bzr-icon-64", appindicator.CATEGORY_APPLICATION_STATUS)
38
 
    indicator.set_status (appindicator.STATUS_PASSIVE)
39
 
    indicator.set_attention_icon("bzr-icon-64")
40
 
    indicator.set_menu(menu)
41
 
    hide_icon = lambda: indicator.set_status (appindicator.STATUS_PASSIVE)
42
 
    show_icon = lambda: indicator.set_status (appindicator.STATUS_ATTENTION)
43
 
 
44
30
if getattr(dbus, 'version', (0,0,0)) >= (0,41,0):
45
 
    import dbus.glib
 
31
        import dbus.glib
46
32
BROADCAST_INTERFACE = "org.bazaarvcs.plugins.dbus.Broadcast"
47
33
bus = dbus.SessionBus()
48
34
 
 
35
def hide_icon():
 
36
        icon.set_visible(False)
 
37
 
49
38
def catch_branch(revision_id, urls):
50
 
    # TODO: show all the urls, or perhaps choose the 'best'.
51
 
    url = urls[0]
52
 
    try:
53
 
        if isinstance(revision_id, unicode):
54
 
            revision_id = revision_id.encode('utf8')
55
 
        transport = get_transport(url)
56
 
        a_dir = BzrDir.open_from_transport(transport)
57
 
        branch = a_dir.open_branch()
58
 
        revno = branch.revision_id_to_revno(revision_id)
59
 
        revision = branch.repository.get_revision(revision_id)
60
 
        summary = 'New revision %d in %s' % (revno, url)
61
 
        body = 'Committer: %s\n' % revision.committer
62
 
        body += 'Date: %s\n' % format_date(revision.timestamp,
63
 
            revision.timezone)
64
 
        body += '\n'
65
 
        body += revision.message
66
 
        body = cgi.escape(body)
67
 
        nw = pynotify.Notification(summary, body)
68
 
        def start_viz(notification=None, action=None, data=None):
69
 
            """Start the viz program."""
70
 
            from bzrlib.plugins.gtk.commands import start_viz_window
71
 
            pp = start_viz_window(branch, revision_id)
72
 
            pp.show()
73
 
        def start_branch(notification=None, action=None, data=None):
74
 
            """Start a Branch dialog"""
75
 
            from bzrlib.plugins.gtk.branch import BranchDialog
76
 
            bd = BranchDialog(remote_path=url)
77
 
            bd.run()
78
 
        if "actions" in pynotify.get_server_caps():
79
 
            nw.add_action("inspect", "Inspect", start_viz, None)
80
 
            nw.add_action("branch", "Branch", start_branch, None)
81
 
        show_icon()
82
 
        gobject.timeout_add(5000, hide_icon)
83
 
        nw.set_timeout(5000)
84
 
        nw.show()
85
 
    except Exception, e:
86
 
        print e
87
 
        raise
 
39
        # TODO: show all the urls, or perhaps choose the 'best'.
 
40
        url = urls[0]
 
41
        try:
 
42
                if isinstance(revision_id, unicode):
 
43
                        revision_id = revision_id.encode('utf8')
 
44
                transport = get_transport(url)
 
45
                a_dir = BzrDir.open_from_transport(transport)
 
46
                branch = a_dir.open_branch()
 
47
                revno = branch.revision_id_to_revno(revision_id)
 
48
                revision = branch.repository.get_revision(revision_id)
 
49
                summary = 'New revision %d in %s' % (revno, url)
 
50
                body  = 'Committer: %s\n' % revision.committer
 
51
                body += 'Date: %s\n' % format_date(revision.timestamp,
 
52
                        revision.timezone)
 
53
                body += '\n'
 
54
                body += revision.message
 
55
                body = cgi.escape(body)
 
56
                nw = pynotify.Notification(summary, body)
 
57
                def start_viz(notification=None, action=None, data=None):
 
58
                        """Start the viz program."""
 
59
                        pp = start_viz_window(branch, revision_id)
 
60
                        pp.show()
 
61
                def start_branch(notification=None, action=None, data=None):
 
62
                        """Start a Branch dialog"""
 
63
                        from bzrlib.plugins.gtk.branch import BranchDialog
 
64
                        bd = BranchDialog(remote_path=url)
 
65
                        bd.run()
 
66
                if "actions" in pynotify.get_server_caps():
 
67
                        nw.add_action("inspect", "Inspect", start_viz, None)
 
68
                        nw.add_action("branch", "Branch", start_branch, None)
 
69
                icon.set_visible(True)
 
70
                gobject.timeout_add(5000, hide_icon)
 
71
                nw.set_timeout(5000)
 
72
                nw.show()
 
73
        except Exception, e:
 
74
                print e
 
75
                raise
88
76
bus.add_signal_receiver(catch_branch,
89
 
                        dbus_interface=BROADCAST_INTERFACE,
90
 
                        signal_name="Revision")
 
77
                                                dbus_interface=BROADCAST_INTERFACE,
 
78
                                                signal_name="Revision")
91
79
pynotify.init("bzr-notify")
92
80
gtk.main()