/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: 2011-12-11 17:14:12 UTC
  • Revision ID: jelmer@samba.org-20111211171412-cgcn0yas3zlcahzg
StartĀ onĀ 0.104.0.

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
 
37
36
import os
55
54
from bzrlib import (
56
55
    branch,
57
56
    config,
58
 
    errors,
59
57
    )
60
58
from bzrlib.commands import plugin_cmds
61
59
 
62
 
 
63
 
version_info = (0, 99, 0, 'dev', 1)
 
60
from info import (
 
61
    bzr_plugin_version as version_info,
 
62
    bzr_compatible_versions,
 
63
    )
64
64
 
65
65
if version_info[3] == 'final':
66
66
    version_string = '%d.%d.%d' % version_info[:3]
68
68
    version_string = '%d.%d.%d%s%d' % version_info
69
69
__version__ = version_string
70
70
 
71
 
COMPATIBLE_BZR_VERSIONS = [(1, 6, 0), (1, 7, 0), (1, 8, 0), (1, 9, 0),
72
 
                           (1, 10, 0), (1, 11, 0), (1, 12, 0), (1, 13, 0),
73
 
                           (1, 15, 0),
74
 
                           (1, 17, 0),
75
 
                           (2, 1, 0),
76
 
                           (2, 2, 0),
77
 
                           ]
78
 
 
79
 
bzrlib.api.require_any_api(bzrlib, COMPATIBLE_BZR_VERSIONS)
 
71
bzrlib.api.require_any_api(bzrlib, bzr_compatible_versions)
80
72
 
81
73
if __name__ != 'bzrlib.plugins.gtk':
82
74
    from bzrlib.trace import warning
83
75
    warning("Not running as bzrlib.plugins.gtk, things may break.")
84
76
 
85
 
def import_pygtk():
86
 
    try:
87
 
        import pygtk
88
 
    except ImportError:
89
 
        raise errors.BzrCommandError("PyGTK not installed.")
90
 
    pygtk.require('2.0')
91
 
    return pygtk
92
 
 
93
77
 
94
78
def set_ui_factory():
95
 
    import_pygtk()
96
79
    from ui import GtkUIFactory
97
80
    import bzrlib.ui
98
81
    bzrlib.ui.ui_factory = GtkUIFactory()
116
99
    return data_path(os.path.join('icons', *args))
117
100
 
118
101
 
119
 
def open_display():
120
 
    pygtk = import_pygtk()
121
 
    try:
122
 
        import gtk
123
 
    except RuntimeError, e:
124
 
        if str(e) == "could not open display":
125
 
            raise NoDisplayError
126
 
    set_ui_factory()
127
 
    return gtk
128
 
 
129
 
 
130
102
commands = {
131
103
    "gannotate": ["gblame", "gpraise"],
132
104
    "gbranch": [],
135
107
    "gconflicts": [],
136
108
    "gdiff": [],
137
109
    "ginit": [],
138
 
    "ginfo": [],
139
110
    "gmerge": [],
140
111
    "gmissing": [],
141
112
    "gpreferences": [],
142
113
    "gpush": [],
143
 
    "gselftest": [],
144
114
    "gsend": [],
145
115
    "gstatus": ["gst"],
146
116
    "gtags": [],
159
129
                              "bzrlib.plugins.gtk.commands")
160
130
 
161
131
def save_commit_messages(*args):
162
 
    from bzrlib.plugins.gtk import commit
163
 
    commit.save_commit_messages(*args)
 
132
    from bzrlib.plugins.gtk import commitmsgs
 
133
    commitmsgs.save_commit_messages(*args)
164
134
 
165
135
branch.Branch.hooks.install_named_hook('post_uncommit',
166
136
                                       save_commit_messages,
167
137
                                       "Saving commit messages for gcommit")
168
138
 
169
 
import gettext
170
 
gettext.install('olive-gtk')
171
 
 
172
 
# Let's create a specialized alias to protect '_' from being erased by other
173
 
# uses of '_' as an anonymous variable (think pdb for one).
174
 
_i18n = gettext.gettext
175
 
 
176
 
class NoDisplayError(errors.BzrCommandError):
177
 
    """gtk could not find a proper display"""
178
 
 
179
 
    def __str__(self):
180
 
        return "No DISPLAY. Unable to run GTK+ application."
181
 
 
182
 
 
183
 
credential_store_registry = getattr(config, "credential_store_registry", None)
184
 
if credential_store_registry is not None:
185
 
    try:
186
 
        credential_store_registry.register_lazy(
187
 
            "gnome-keyring", "bzrlib.plugins.gtk.keyring", "GnomeKeyringCredentialStore",
188
 
            help="The GNOME Keyring.", fallback=True)
189
 
    except TypeError:
190
 
    # Fallback credentials stores were introduced in Bazaar 1.15
191
 
        credential_store_registry.register_lazy(
192
 
            "gnome-keyring", "bzrlib.plugins.gtk.keyring", "GnomeKeyringCredentialStore",
193
 
            help="The GNOME Keyring.")
194
 
 
 
139
option_registry = getattr(config, "option_registry", None)
 
140
if option_registry is not None:
 
141
    config.option_registry.register_lazy('nautilus_integration',
 
142
            'bzrlib.plugins.gtk.config', 'opt_nautilus_integration')
195
143
 
196
144
def load_tests(basic_tests, module, loader):
197
145
    testmod_names = [
202
150
    try:
203
151
        result = basic_tests
204
152
        try:
205
 
            import_pygtk()
206
 
        except errors.BzrCommandError:
 
153
            import gi.repository.Gtk
 
154
        except ImportError:
207
155
            return basic_tests
208
156
        basic_tests.addTest(loader.loadTestsFromModuleNames(
209
157
                ["%s.%s" % (__name__, tmn) for tmn in testmod_names]))
212
160
            reload(sys)
213
161
            sys.setdefaultencoding(default_encoding)
214
162
    return basic_tests
 
163