/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: David Planella
  • Date: 2010-08-21 09:32:13 UTC
  • mto: This revision was merged to the branch mainline in revision 719.
  • Revision ID: david.planella@ubuntu.com-20100821093213-njpqd5sploa8n71m
Adapted desktop entries for translation

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
25
gloom             GTK+ loom browse dialog
26
26
gmerge            GTK+ merge dialog
27
 
gmissing          GTK+ missing revisions dialog.
28
 
gpreferences      GTK+ preferences dialog.
 
27
gmissing          GTK+ missing revisions dialog. 
 
28
gpreferences      GTK+ preferences dialog. 
29
29
gpush             GTK+ push.
30
30
gsend             GTK+ send merge directive.
31
31
gstatus           GTK+ status dialog.
32
32
gtags             Manage branch tags.
33
 
visualise         Graphically visualise this branch.
 
33
visualise         Graphically visualise this branch. 
34
34
"""
35
35
 
36
 
from __future__ import absolute_import
37
 
 
38
36
import os
39
37
import sys
40
38
 
54
52
import bzrlib
55
53
import bzrlib.api
56
54
from bzrlib import (
 
55
    branch,
57
56
    config,
 
57
    errors,
58
58
    )
59
59
from bzrlib.commands import plugin_cmds
60
60
 
61
 
from bzrlib.plugins.gtk.info import (
 
61
from info import (
62
62
    bzr_plugin_version as version_info,
63
63
    bzr_compatible_versions,
64
64
    )
75
75
    from bzrlib.trace import warning
76
76
    warning("Not running as bzrlib.plugins.gtk, things may break.")
77
77
 
 
78
def import_pygtk():
 
79
    try:
 
80
        import pygtk
 
81
    except ImportError:
 
82
        raise errors.BzrCommandError("PyGTK not installed.")
 
83
    pygtk.require('2.0')
 
84
    return pygtk
 
85
 
78
86
 
79
87
def set_ui_factory():
80
 
    from bzrlib.plugins.gtk.ui import GtkUIFactory
 
88
    import_pygtk()
 
89
    from ui import GtkUIFactory
81
90
    import bzrlib.ui
82
91
    bzrlib.ui.ui_factory = GtkUIFactory()
83
92
 
100
109
    return data_path(os.path.join('icons', *args))
101
110
 
102
111
 
 
112
def open_display():
 
113
    pygtk = import_pygtk()
 
114
    try:
 
115
        import gtk
 
116
    except RuntimeError, e:
 
117
        if str(e) == "could not open display":
 
118
            raise NoDisplayError
 
119
    set_ui_factory()
 
120
    return gtk
 
121
 
 
122
 
103
123
commands = {
104
124
    "gannotate": ["gblame", "gpraise"],
105
125
    "gbranch": [],
112
132
    "gmissing": [],
113
133
    "gpreferences": [],
114
134
    "gpush": [],
 
135
    "gselftest": [],
115
136
    "gsend": [],
116
137
    "gstatus": ["gst"],
117
138
    "gtags": [],
130
151
                              "bzrlib.plugins.gtk.commands")
131
152
 
132
153
def save_commit_messages(*args):
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')
 
154
    from bzrlib.plugins.gtk import commit
 
155
    commit.save_commit_messages(*args)
 
156
 
 
157
branch.Branch.hooks.install_named_hook('post_uncommit',
 
158
                                       save_commit_messages,
 
159
                                       "Saving commit messages for gcommit")
 
160
 
 
161
class NoDisplayError(errors.BzrCommandError):
 
162
    """gtk could not find a proper display"""
 
163
 
 
164
    def __str__(self):
 
165
        return "No DISPLAY. Unable to run GTK+ application."
 
166
 
 
167
 
 
168
credential_store_registry = getattr(config, "credential_store_registry", None)
 
169
if credential_store_registry is not None:
 
170
    try:
 
171
        credential_store_registry.register_lazy(
 
172
            "gnome-keyring", "bzrlib.plugins.gtk.keyring", "GnomeKeyringCredentialStore",
 
173
            help="The GNOME Keyring.", fallback=True)
 
174
    except TypeError:
 
175
    # Fallback credentials stores were introduced in Bazaar 1.15
 
176
        credential_store_registry.register_lazy(
 
177
            "gnome-keyring", "bzrlib.plugins.gtk.keyring", "GnomeKeyringCredentialStore",
 
178
            help="The GNOME Keyring.")
 
179
 
152
180
 
153
181
def load_tests(basic_tests, module, loader):
154
182
    testmod_names = [
159
187
    try:
160
188
        result = basic_tests
161
189
        try:
162
 
            import gi.repository.Gtk
163
 
        except ImportError:
 
190
            import_pygtk()
 
191
        except errors.BzrCommandError:
164
192
            return basic_tests
165
193
        basic_tests.addTest(loader.loadTestsFromModuleNames(
166
194
                ["%s.%s" % (__name__, tmn) for tmn in testmod_names]))
170
198
            sys.setdefaultencoding(default_encoding)
171
199
    return basic_tests
172
200
 
 
201
 
 
202
def _i18n(text):
 
203
    # Stub until we support proper i18n
 
204
    return text