/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: Curtis Hovey
  • Date: 2011-09-07 16:01:14 UTC
  • mto: This revision was merged to the branch mainline in revision 741.
  • Revision ID: sinzui.is@verizon.net-20110907160114-ytbap2x584bh1ehw
Fixed long lines created by conversion script. removed checks for obsolete methods.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# This program is free software; you can redistribute it and/or modify
 
2
# it under the terms of the GNU General Public License as published by
 
3
# the Free Software Foundation; either version 2 of the License, or
 
4
# (at your option) any later version.
 
5
 
 
6
# This program is distributed in the hope that it will be useful,
 
7
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
8
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
9
# GNU General Public License for more details.
 
10
 
 
11
# You should have received a copy of the GNU General Public License
 
12
# along with this program; if not, write to the Free Software
 
13
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
14
 
 
15
"""Graphical support for Bazaar using GTK.
 
16
 
 
17
This plugin includes:
 
18
gannotate         GTK+ annotate.
 
19
gbranch           GTK+ branching.
 
20
gcheckout         GTK+ checkout.
 
21
gcommit           GTK+ commit dialog.
 
22
gconflicts        GTK+ conflicts.
 
23
gdiff             Show differences in working tree in a GTK+ Window.
 
24
ginit             Initialise a new branch.
 
25
gloom             GTK+ loom browse dialog
 
26
gmerge            GTK+ merge dialog
 
27
gmissing          GTK+ missing revisions dialog.
 
28
gpreferences      GTK+ preferences dialog.
 
29
gpush             GTK+ push.
 
30
gsend             GTK+ send merge directive.
 
31
gstatus           GTK+ status dialog.
 
32
gtags             Manage branch tags.
 
33
visualise         Graphically visualise this branch.
 
34
"""
 
35
 
 
36
import os
 
37
import sys
 
38
 
 
39
if getattr(sys, "frozen", None) is not None: # we run bzr.exe
 
40
 
 
41
    # FIXME: Unless a better packaging solution is found, the following
 
42
    # provides a workaround for https://bugs.launchpad.net/bzr/+bug/388790 Also
 
43
    # see https://code.edge.launchpad.net/~vila/bzr-gtk/388790-windows-setup
 
44
    # for more details about while it's needed.
 
45
 
 
46
    # NOTE: _lib must be ahead of bzrlib or sax.saxutils (in olive) fails
 
47
    here = os.path.dirname(__file__)
 
48
    sys.path.insert(0, os.path.join(here, '_lib'))
 
49
    sys.path.append(os.path.join(here, '_lib/gtk-2.0'))
 
50
 
 
51
 
 
52
import bzrlib
 
53
import bzrlib.api
 
54
from bzrlib import (
 
55
    branch,
 
56
    config,
 
57
    errors,
 
58
    )
 
59
from bzrlib.commands import plugin_cmds
 
60
 
 
61
from info import (
 
62
    bzr_plugin_version as version_info,
 
63
    bzr_compatible_versions,
 
64
    )
 
65
 
 
66
if version_info[3] == 'final':
 
67
    version_string = '%d.%d.%d' % version_info[:3]
 
68
else:
 
69
    version_string = '%d.%d.%d%s%d' % version_info
 
70
__version__ = version_string
 
71
 
 
72
bzrlib.api.require_any_api(bzrlib, bzr_compatible_versions)
 
73
 
 
74
if __name__ != 'bzrlib.plugins.gtk':
 
75
    from bzrlib.trace import warning
 
76
    warning("Not running as bzrlib.plugins.gtk, things may break.")
 
77
 
 
78
 
 
79
def set_ui_factory():
 
80
    from ui import GtkUIFactory
 
81
    import bzrlib.ui
 
82
    bzrlib.ui.ui_factory = GtkUIFactory()
 
83
 
 
84
 
 
85
def data_basedirs():
 
86
    return [os.path.dirname(__file__),
 
87
             "/usr/share/bzr-gtk", 
 
88
             "/usr/local/share/bzr-gtk"]
 
89
 
 
90
 
 
91
def data_path(*args):
 
92
    for basedir in data_basedirs():
 
93
        path = os.path.join(basedir, *args)
 
94
        if os.path.exists(path):
 
95
            return path
 
96
    return None
 
97
 
 
98
 
 
99
def icon_path(*args):
 
100
    return data_path(os.path.join('icons', *args))
 
101
 
 
102
 
 
103
commands = {
 
104
    "gannotate": ["gblame", "gpraise"],
 
105
    "gbranch": [],
 
106
    "gcheckout": [],
 
107
    "gcommit": ["gci"],
 
108
    "gconflicts": [],
 
109
    "gdiff": [],
 
110
    "ginit": [],
 
111
    "gmerge": [],
 
112
    "gmissing": [],
 
113
    "gpreferences": [],
 
114
    "gpush": [],
 
115
    "gsend": [],
 
116
    "gstatus": ["gst"],
 
117
    "gtags": [],
 
118
    "visualise": ["visualize", "vis", "viz", 'glog'],
 
119
    }
 
120
 
 
121
try:
 
122
    from bzrlib.plugins import loom
 
123
except ImportError:
 
124
    pass # Loom plugin doesn't appear to be present
 
125
else:
 
126
    commands["gloom"] = []
 
127
 
 
128
for cmd, aliases in commands.iteritems():
 
129
    plugin_cmds.register_lazy("cmd_%s" % cmd, aliases,
 
130
                              "bzrlib.plugins.gtk.commands")
 
131
 
 
132
def save_commit_messages(*args):
 
133
    from bzrlib.plugins.gtk import commit
 
134
    commit.save_commit_messages(*args)
 
135
 
 
136
branch.Branch.hooks.install_named_hook('post_uncommit',
 
137
                                       save_commit_messages,
 
138
                                       "Saving commit messages for gcommit")
 
139
 
 
140
credential_store_registry = getattr(config, "credential_store_registry", None)
 
141
if credential_store_registry is not None:
 
142
    try:
 
143
        credential_store_registry.register_lazy(
 
144
            "gnome-keyring", "bzrlib.plugins.gtk.keyring", "GnomeKeyringCredentialStore",
 
145
            help="The GNOME Keyring.", fallback=True)
 
146
    except TypeError:
 
147
    # Fallback credentials stores were introduced in Bazaar 1.15
 
148
        credential_store_registry.register_lazy(
 
149
            "gnome-keyring", "bzrlib.plugins.gtk.keyring", "GnomeKeyringCredentialStore",
 
150
            help="The GNOME Keyring.")
 
151
 
 
152
 
 
153
def load_tests(basic_tests, module, loader):
 
154
    testmod_names = [
 
155
        'tests',
 
156
        ]
 
157
    import sys
 
158
    default_encoding = sys.getdefaultencoding()
 
159
    try:
 
160
        result = basic_tests
 
161
        try:
 
162
            import gi.repository.Gtk
 
163
        except ImportError:
 
164
            return basic_tests
 
165
        basic_tests.addTest(loader.loadTestsFromModuleNames(
 
166
                ["%s.%s" % (__name__, tmn) for tmn in testmod_names]))
 
167
    finally:
 
168
        if sys.getdefaultencoding() != default_encoding:
 
169
            reload(sys)
 
170
            sys.setdefaultencoding(default_encoding)
 
171
    return basic_tests
 
172