/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-03-23 13:45:02 UTC
  • Revision ID: jelmer@samba.org-20120323134502-fsxyhpb0ilbabozp
Ignore bzr-handle-patch in software center.

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
 
37
38
import os
38
39
import sys
39
40
 
53
54
import bzrlib
54
55
import bzrlib.api
55
56
from bzrlib import (
56
 
    branch,
57
57
    config,
58
 
    errors,
59
58
    )
60
59
from bzrlib.commands import plugin_cmds
61
60
 
62
 
 
63
 
version_info = (0, 99, 0, 'dev', 1)
 
61
from bzrlib.plugins.gtk.info import (
 
62
    bzr_plugin_version as version_info,
 
63
    bzr_compatible_versions,
 
64
    )
64
65
 
65
66
if version_info[3] == 'final':
66
67
    version_string = '%d.%d.%d' % version_info[:3]
68
69
    version_string = '%d.%d.%d%s%d' % version_info
69
70
__version__ = version_string
70
71
 
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)
 
72
bzrlib.api.require_any_api(bzrlib, bzr_compatible_versions)
80
73
 
81
74
if __name__ != 'bzrlib.plugins.gtk':
82
75
    from bzrlib.trace import warning
83
76
    warning("Not running as bzrlib.plugins.gtk, things may break.")
84
77
 
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
78
 
94
79
def set_ui_factory():
95
 
    import_pygtk()
96
 
    from ui import GtkUIFactory
 
80
    from bzrlib.plugins.gtk.ui import GtkUIFactory
97
81
    import bzrlib.ui
98
82
    bzrlib.ui.ui_factory = GtkUIFactory()
99
83
 
116
100
    return data_path(os.path.join('icons', *args))
117
101
 
118
102
 
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
103
commands = {
131
104
    "gannotate": ["gblame", "gpraise"],
132
105
    "gbranch": [],
135
108
    "gconflicts": [],
136
109
    "gdiff": [],
137
110
    "ginit": [],
138
 
    "ginfo": [],
139
111
    "gmerge": [],
140
112
    "gmissing": [],
141
113
    "gpreferences": [],
142
114
    "gpush": [],
143
 
    "gselftest": [],
144
115
    "gsend": [],
145
116
    "gstatus": ["gst"],
146
117
    "gtags": [],
159
130
                              "bzrlib.plugins.gtk.commands")
160
131
 
161
132
def save_commit_messages(*args):
162
 
    from bzrlib.plugins.gtk import commit
163
 
    commit.save_commit_messages(*args)
164
 
 
165
 
branch.Branch.hooks.install_named_hook('post_uncommit',
166
 
                                       save_commit_messages,
167
 
                                       "Saving commit messages for gcommit")
168
 
 
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
 
 
 
133
    from bzrlib.plugins.gtk import commitmsgs
 
134
    commitmsgs.save_commit_messages(*args)
 
135
 
 
136
try:
 
137
    from bzrlib.hooks import install_lazy_named_hook
 
138
except ImportError:
 
139
    from bzrlib.branch import Branch
 
140
    Branch.hooks.install_named_hook('post_uncommit',
 
141
                                    save_commit_messages,
 
142
                                    "Saving commit messages for gcommit")
 
143
else:
 
144
    install_lazy_named_hook("bzrlib.branch", "Branch.hooks",
 
145
        'post_uncommit', save_commit_messages, "Saving commit messages for gcommit")
 
146
 
 
147
 
 
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')
195
152
 
196
153
def load_tests(basic_tests, module, loader):
197
154
    testmod_names = [
202
159
    try:
203
160
        result = basic_tests
204
161
        try:
205
 
            import_pygtk()
206
 
        except errors.BzrCommandError:
 
162
            import gi.repository.Gtk
 
163
        except ImportError:
207
164
            return basic_tests
208
165
        basic_tests.addTest(loader.loadTestsFromModuleNames(
209
166
                ["%s.%s" % (__name__, tmn) for tmn in testmod_names]))
212
169
            reload(sys)
213
170
            sys.setdefaultencoding(default_encoding)
214
171
    return basic_tests
 
172