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

  • Committer: Jelmer Vernooij
  • Date: 2012-07-09 15:23:26 UTC
  • mto: This revision was merged to the branch mainline in revision 794.
  • Revision ID: jelmer@samba.org-20120709152326-dzxb8zoz0btull7n
Remove bzr-notify.

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
"""Graphical support for Bazaar using GTK.
16
16
 
17
17
This plugin includes:
18
 
gannotate         GTK+ annotate. 
19
 
gbranch           GTK+ branching. 
20
 
gcheckout         GTK+ checkout. 
 
18
gannotate         GTK+ annotate.
 
19
gbranch           GTK+ branching.
 
20
gcheckout         GTK+ checkout.
21
21
gcommit           GTK+ commit dialog.
22
 
gconflicts        GTK+ conflicts. 
23
 
gdiff             Show differences in working tree in a GTK+ Window. 
 
22
gconflicts        GTK+ conflicts.
 
23
gdiff             Show differences in working tree in a GTK+ Window.
24
24
ginit             Initialise a new branch.
25
 
ginfo             GTK+ branch info dialog
26
25
gloom             GTK+ loom browse dialog
27
26
gmerge            GTK+ merge dialog
28
 
gmissing          GTK+ missing revisions dialog. 
29
 
gpreferences      GTK+ preferences dialog. 
 
27
gmissing          GTK+ missing revisions dialog.
 
28
gpreferences      GTK+ preferences dialog.
30
29
gpush             GTK+ push.
31
30
gsend             GTK+ send merge directive.
32
31
gstatus           GTK+ status dialog.
33
32
gtags             Manage branch tags.
34
 
visualise         Graphically visualise this branch. 
 
33
visualise         Graphically visualise this branch.
35
34
"""
36
35
 
 
36
from __future__ import absolute_import
 
37
 
 
38
import os
 
39
import sys
 
40
 
 
41
if getattr(sys, "frozen", None) is not None: # we run bzr.exe
 
42
 
 
43
    # FIXME: Unless a better packaging solution is found, the following
 
44
    # provides a workaround for https://bugs.launchpad.net/bzr/+bug/388790 Also
 
45
    # see https://code.edge.launchpad.net/~vila/bzr-gtk/388790-windows-setup
 
46
    # for more details about while it's needed.
 
47
 
 
48
    # NOTE: _lib must be ahead of bzrlib or sax.saxutils (in olive) fails
 
49
    here = os.path.dirname(__file__)
 
50
    sys.path.insert(0, os.path.join(here, '_lib'))
 
51
    sys.path.append(os.path.join(here, '_lib/gtk-2.0'))
 
52
 
 
53
 
37
54
import bzrlib
38
55
import bzrlib.api
39
 
from bzrlib import (
40
 
    branch,
41
 
    config,
42
 
    errors,
 
56
from bzrlib.commands import plugin_cmds
 
57
 
 
58
from bzrlib.plugins.gtk.info import (
 
59
    bzr_plugin_version as version_info,
 
60
    bzr_compatible_versions,
43
61
    )
44
 
from bzrlib.commands import plugin_cmds
45
 
 
46
 
import os.path
47
 
 
48
 
version_info = (0, 97, 0, 'dev', 1)
49
62
 
50
63
if version_info[3] == 'final':
51
64
    version_string = '%d.%d.%d' % version_info[:3]
53
66
    version_string = '%d.%d.%d%s%d' % version_info
54
67
__version__ = version_string
55
68
 
56
 
COMPATIBLE_BZR_VERSIONS = [(1, 6, 0), (1, 7, 0), (1, 8, 0), (1, 9, 0),
57
 
                           (1, 10, 0), (1, 11, 0), (1, 12, 0), (1, 13, 0),
58
 
                           (1, 15, 0),
59
 
                           (1, 17, 0),]
60
 
 
61
 
bzrlib.api.require_any_api(bzrlib, COMPATIBLE_BZR_VERSIONS)
 
69
bzrlib.api.require_any_api(bzrlib, bzr_compatible_versions)
62
70
 
63
71
if __name__ != 'bzrlib.plugins.gtk':
64
72
    from bzrlib.trace import warning
65
73
    warning("Not running as bzrlib.plugins.gtk, things may break.")
66
74
 
67
 
def import_pygtk():
68
 
    try:
69
 
        import pygtk
70
 
    except ImportError:
71
 
        raise errors.BzrCommandError("PyGTK not installed.")
72
 
    pygtk.require('2.0')
73
 
    return pygtk
74
 
 
75
75
 
76
76
def set_ui_factory():
77
 
    import_pygtk()
78
 
    from ui import GtkUIFactory
 
77
    from bzrlib.plugins.gtk.ui import GtkUIFactory
79
78
    import bzrlib.ui
80
79
    bzrlib.ui.ui_factory = GtkUIFactory()
81
80
 
98
97
    return data_path(os.path.join('icons', *args))
99
98
 
100
99
 
101
 
def open_display():
102
 
    pygtk = import_pygtk()
103
 
    try:
104
 
        import gtk
105
 
    except RuntimeError, e:
106
 
        if str(e) == "could not open display":
107
 
            raise NoDisplayError
108
 
    set_ui_factory()
109
 
    return gtk
110
 
 
111
 
 
112
100
commands = {
113
101
    "gannotate": ["gblame", "gpraise"],
114
102
    "gbranch": [],
117
105
    "gconflicts": [],
118
106
    "gdiff": [],
119
107
    "ginit": [],
120
 
    "ginfo": [],
121
108
    "gmerge": [],
122
109
    "gmissing": [],
123
110
    "gpreferences": [],
124
111
    "gpush": [],
125
 
    "gselftest": [],
126
112
    "gsend": [],
127
113
    "gstatus": ["gst"],
128
114
    "gtags": [],
129
 
    "visualise": ["visualize", "vis", "viz"],
 
115
    "visualise": ["visualize", "vis", "viz", 'glog'],
130
116
    }
131
117
 
132
118
try:
141
127
                              "bzrlib.plugins.gtk.commands")
142
128
 
143
129
def save_commit_messages(*args):
144
 
    from bzrlib.plugins.gtk import commit
145
 
    commit.save_commit_messages(*args)
146
 
 
147
 
branch.Branch.hooks.install_named_hook('post_uncommit',
148
 
                                       save_commit_messages,
149
 
                                       "Saving commit messages for gcommit")
150
 
 
151
 
import gettext
152
 
gettext.install('olive-gtk')
153
 
 
154
 
# Let's create a specialized alias to protect '_' from being erased by other
155
 
# uses of '_' as an anonymous variable (think pdb for one).
156
 
_i18n = gettext.gettext
157
 
 
158
 
class NoDisplayError(errors.BzrCommandError):
159
 
    """gtk could not find a proper display"""
160
 
 
161
 
    def __str__(self):
162
 
        return "No DISPLAY. Unable to run GTK+ application."
163
 
 
164
 
 
165
 
credential_store_registry = getattr(config, "credential_store_registry", None)
166
 
if credential_store_registry is not None:
167
 
    try:
168
 
        credential_store_registry.register_lazy(
169
 
            "gnome-keyring", "bzrlib.plugins.gtk.keyring", "GnomeKeyringCredentialStore",
170
 
            help="The GNOME Keyring.", fallback=True)
171
 
    except TypeError:
172
 
    # Fallback credentials stores were introduced in Bazaar 1.15
173
 
        credential_store_registry.register_lazy(
174
 
            "gnome-keyring", "bzrlib.plugins.gtk.keyring", "GnomeKeyringCredentialStore",
175
 
            help="The GNOME Keyring.")
 
130
    from bzrlib.plugins.gtk import commitmsgs
 
131
    commitmsgs.save_commit_messages(*args)
 
132
 
 
133
try:
 
134
    from bzrlib.hooks import install_lazy_named_hook
 
135
except ImportError:
 
136
    from bzrlib.branch import Branch
 
137
    Branch.hooks.install_named_hook('post_uncommit',
 
138
                                    save_commit_messages,
 
139
                                    "Saving commit messages for gcommit")
 
140
else:
 
141
    install_lazy_named_hook("bzrlib.branch", "Branch.hooks",
 
142
        'post_uncommit', save_commit_messages, "Saving commit messages for gcommit")
 
143
 
 
144
try:
 
145
    from bzrlib.registry import register_lazy
 
146
except ImportError:
 
147
    from bzrlib import config
 
148
    option_registry = getattr(config, "option_registry", None)
 
149
    if option_registry is not None:
 
150
        config.option_registry.register_lazy('nautilus_integration',
 
151
                'bzrlib.plugins.gtk.config', 'opt_nautilus_integration')
 
152
else:
 
153
    register_lazy("bzrlib.config", "option_registry",
 
154
        'nautilus_integration', 'bzrlib.plugins.gtk.config',
 
155
        'opt_nautilus_integration')
176
156
 
177
157
 
178
158
def load_tests(basic_tests, module, loader):
184
164
    try:
185
165
        result = basic_tests
186
166
        try:
187
 
            import_pygtk()
188
 
        except errors.BzrCommandError:
 
167
            import gi.repository.Gtk
 
168
        except ImportError:
189
169
            return basic_tests
190
170
        basic_tests.addTest(loader.loadTestsFromModuleNames(
191
171
                ["%s.%s" % (__name__, tmn) for tmn in testmod_names]))
194
174
            reload(sys)
195
175
            sys.setdefaultencoding(default_encoding)
196
176
    return basic_tests
 
177