/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-04-06 14:50:40 UTC
  • Revision ID: jelmer@samba.org-20110406145040-7u37k9hxkhleiqx2
Cleanups, fix compatibility with older versions of pygtk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
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
 
53
51
 
54
52
import bzrlib
55
53
import bzrlib.api
 
54
from bzrlib import (
 
55
    branch,
 
56
    config,
 
57
    errors,
 
58
    )
56
59
from bzrlib.commands import plugin_cmds
57
60
 
58
 
from bzrlib.plugins.gtk.info import (
 
61
from info import (
59
62
    bzr_plugin_version as version_info,
60
63
    bzr_compatible_versions,
61
64
    )
 
65
from gettext import (
 
66
    gettext,
 
67
    textdomain,
 
68
    bindtextdomain,
 
69
    bind_textdomain_codeset,
 
70
    )
 
71
 
 
72
# FIXME: We should find out LOCALEDIR at compile or run time. The current
 
73
# hardcoded path will work for most distributions, but not for e.g. Solaris and
 
74
# Windows
 
75
GETTEXT_PACKAGE = 'bzr-gtk'
 
76
LOCALEDIR = '/usr/share/locale'
 
77
bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR)
 
78
bind_textdomain_codeset(GETTEXT_PACKAGE, 'UTF-8')
 
79
textdomain(GETTEXT_PACKAGE)
62
80
 
63
81
if version_info[3] == 'final':
64
82
    version_string = '%d.%d.%d' % version_info[:3]
72
90
    from bzrlib.trace import warning
73
91
    warning("Not running as bzrlib.plugins.gtk, things may break.")
74
92
 
 
93
def import_pygtk():
 
94
    try:
 
95
        import pygtk
 
96
    except ImportError:
 
97
        raise errors.BzrCommandError("PyGTK not installed.")
 
98
    pygtk.require('2.0')
 
99
    return pygtk
 
100
 
75
101
 
76
102
def set_ui_factory():
77
 
    from bzrlib.plugins.gtk.ui import GtkUIFactory
 
103
    import_pygtk()
 
104
    from ui import GtkUIFactory
78
105
    import bzrlib.ui
79
106
    bzrlib.ui.ui_factory = GtkUIFactory()
80
107
 
127
154
                              "bzrlib.plugins.gtk.commands")
128
155
 
129
156
def save_commit_messages(*args):
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')
 
157
    from bzrlib.plugins.gtk import commit
 
158
    commit.save_commit_messages(*args)
 
159
 
 
160
branch.Branch.hooks.install_named_hook('post_uncommit',
 
161
                                       save_commit_messages,
 
162
                                       "Saving commit messages for gcommit")
 
163
 
 
164
credential_store_registry = getattr(config, "credential_store_registry", None)
 
165
if credential_store_registry is not None:
 
166
    try:
 
167
        credential_store_registry.register_lazy(
 
168
            "gnome-keyring", "bzrlib.plugins.gtk.keyring", "GnomeKeyringCredentialStore",
 
169
            help="The GNOME Keyring.", fallback=True)
 
170
    except TypeError:
 
171
    # Fallback credentials stores were introduced in Bazaar 1.15
 
172
        credential_store_registry.register_lazy(
 
173
            "gnome-keyring", "bzrlib.plugins.gtk.keyring", "GnomeKeyringCredentialStore",
 
174
            help="The GNOME Keyring.")
156
175
 
157
176
 
158
177
def load_tests(basic_tests, module, loader):
164
183
    try:
165
184
        result = basic_tests
166
185
        try:
167
 
            import gi.repository.Gtk
168
 
        except ImportError:
 
186
            import_pygtk()
 
187
        except errors.BzrCommandError:
169
188
            return basic_tests
170
189
        basic_tests.addTest(loader.loadTestsFromModuleNames(
171
190
                ["%s.%s" % (__name__, tmn) for tmn in testmod_names]))
175
194
            sys.setdefaultencoding(default_encoding)
176
195
    return basic_tests
177
196
 
 
197
 
 
198
def _i18n(text):
 
199
    return gettext(text)