/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:
 
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
    )
 
58
from bzrlib.commands import plugin_cmds
 
59
 
 
60
from info import (
 
61
    bzr_plugin_version as version_info,
 
62
    bzr_compatible_versions,
 
63
    )
 
64
 
 
65
if version_info[3] == 'final':
 
66
    version_string = '%d.%d.%d' % version_info[:3]
 
67
else:
 
68
    version_string = '%d.%d.%d%s%d' % version_info
 
69
__version__ = version_string
 
70
 
 
71
bzrlib.api.require_any_api(bzrlib, bzr_compatible_versions)
 
72
 
 
73
if __name__ != 'bzrlib.plugins.gtk':
 
74
    from bzrlib.trace import warning
 
75
    warning("Not running as bzrlib.plugins.gtk, things may break.")
 
76
 
 
77
 
 
78
def set_ui_factory():
 
79
    from ui import GtkUIFactory
 
80
    import bzrlib.ui
 
81
    bzrlib.ui.ui_factory = GtkUIFactory()
 
82
 
 
83
 
 
84
def data_basedirs():
 
85
    return [os.path.dirname(__file__),
 
86
             "/usr/share/bzr-gtk", 
 
87
             "/usr/local/share/bzr-gtk"]
 
88
 
 
89
 
 
90
def data_path(*args):
 
91
    for basedir in data_basedirs():
 
92
        path = os.path.join(basedir, *args)
 
93
        if os.path.exists(path):
 
94
            return path
 
95
    return None
 
96
 
 
97
 
 
98
def icon_path(*args):
 
99
    return data_path(os.path.join('icons', *args))
 
100
 
 
101
 
 
102
commands = {
 
103
    "gannotate": ["gblame", "gpraise"],
 
104
    "gbranch": [],
 
105
    "gcheckout": [],
 
106
    "gcommit": ["gci"],
 
107
    "gconflicts": [],
 
108
    "gdiff": [],
 
109
    "ginit": [],
 
110
    "gmerge": [],
 
111
    "gmissing": [],
 
112
    "gpreferences": [],
 
113
    "gpush": [],
 
114
    "gsend": [],
 
115
    "gstatus": ["gst"],
 
116
    "gtags": [],
 
117
    "visualise": ["visualize", "vis", "viz", 'glog'],
 
118
    }
 
119
 
 
120
try:
 
121
    from bzrlib.plugins import loom
 
122
except ImportError:
 
123
    pass # Loom plugin doesn't appear to be present
 
124
else:
 
125
    commands["gloom"] = []
 
126
 
 
127
for cmd, aliases in commands.iteritems():
 
128
    plugin_cmds.register_lazy("cmd_%s" % cmd, aliases,
 
129
                              "bzrlib.plugins.gtk.commands")
 
130
 
 
131
def save_commit_messages(*args):
 
132
    from bzrlib.plugins.gtk import commitmsgs
 
133
    commitmsgs.save_commit_messages(*args)
 
134
 
 
135
branch.Branch.hooks.install_named_hook('post_uncommit',
 
136
                                       save_commit_messages,
 
137
                                       "Saving commit messages for gcommit")
 
138
 
 
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')
 
143
 
 
144
def load_tests(basic_tests, module, loader):
 
145
    testmod_names = [
 
146
        'tests',
 
147
        ]
 
148
    import sys
 
149
    default_encoding = sys.getdefaultencoding()
 
150
    try:
 
151
        result = basic_tests
 
152
        try:
 
153
            import gi.repository.Gtk
 
154
        except ImportError:
 
155
            return basic_tests
 
156
        basic_tests.addTest(loader.loadTestsFromModuleNames(
 
157
                ["%s.%s" % (__name__, tmn) for tmn in testmod_names]))
 
158
    finally:
 
159
        if sys.getdefaultencoding() != default_encoding:
 
160
            reload(sys)
 
161
            sys.setdefaultencoding(default_encoding)
 
162
    return basic_tests
 
163