/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: Szilveszter Farkas (Phanatic)
  • Date: 2006-08-07 16:51:21 UTC
  • mto: (0.14.1 main) (93.1.1 win32.bialix)
  • mto: This revision was merged to the branch mainline in revision 83.
  • Revision ID: Szilveszter.Farkas@gmail.com-20060807165121-10fe27c374bbdffd
Added new artwork.

2006-08-07  Szilveszter Farkas <Szilveszter.Farkas@gmail.com>

    * olive.galde: added custom artwork (icons)
    * icons/*: new icons for the toolbar
    * setup.py: install the icons

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