/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 seahorse.py

  • Committer: Elliot Murphy
  • Date: 2008-06-04 20:36:54 UTC
  • mto: This revision was merged to the branch mainline in revision 501.
  • Revision ID: elliot@elliotmurphy.com-20080604203654-21e327jxe5cs7zgx
Trying to fix bug 107169 so that visualize can be used even if there are DBus problems which prevent seahorse from being loaded

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
 
31
31
try:
32
32
    bus = dbus.SessionBus()
 
33
except dbus.exceptions.DBusException, e:
 
34
    raise ImportError
 
35
 
 
36
try: 
33
37
    crypto = dbus.Interface(bus.get_object(BUS_NAME, CRYPTO_PATH), 
34
38
                            CRYPTO_INTERFACE)
35
39
    openpgp = dbus.Interface(bus.get_object(BUS_NAME, OPENPGP_PATH),
36
40
                             OPENPGP_INTERFACE)
37
41
except dbus.exceptions.DBusException, e:
38
 
    get_name = getattr(e, 'get_dbus_name', None)
39
 
    if get_name is not None:
40
 
        name = get_name()
41
 
    else:
42
 
        name = getattr(e, '_dbus_error_name', None)
43
 
 
44
 
    if name is None:
45
 
        args = getattr(e, 'args', None) # This is case for old python-dbus-0.62
46
 
        if args == ("Unable to determine the address of the message bus (try 'man dbus-launch' and 'man dbus-daemon' for help)",):
47
 
            raise ImportError
48
 
 
49
 
    # DBus sometimes fails like this, just treat it as if seahorse is not
50
 
    # available rather than crashing.
51
 
    if name in ("org.freedesktop.DBus.Error.Spawn.ExecFailed", 
52
 
                "org.freedesktop.DBus.Error.ServiceUnknown",
53
 
                "org.freedesktop.DBus.Error.NotSupported"):
 
42
    if e.get_dbus_name() == 'org.freedesktop.DBus.Error.ServiceUnknown':
54
43
        raise ImportError
55
 
    else:
56
 
        raise
 
44
    raise
57
45
 
58
46
FLAG_VALID = 0x0001
59
47
FLAG_CAN_ENCRYPT = 0x0002
83
71
        if key not in keyset:
84
72
            keyset[key] = Key(key)
85
73
 
86
 
        return (cleartext, keyset[key])
87
 
 
88
 
    return (cleartext, None)
89
 
 
 
74
        return keyset[key]
90
75
 
91
76
class Key:
92
77