/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 ui.py

  • Committer: Vincent Ladeuil
  • Date: 2008-05-05 18:16:46 UTC
  • mto: (487.1.1 gtk)
  • mto: This revision was merged to the branch mainline in revision 490.
  • Revision ID: v.ladeuil+lp@free.fr-20080505181646-n95l8ltw2u6jtr26
Fix bug #187283 fix replacing _() by _i18n().

* genpot.sh 
Remove duplication. Add the ability to specify the genrated pot
file on command-line for debugging purposes.

* po/olive-gtk.pot:
Regenerated.

* __init__.py, branch.py, branchview/treeview.py, checkout.py,
commit.py, conflicts.py, diff.py, errors.py, initialize.py,
merge.py, nautilus-bzr.py, olive/__init__.py, olive/add.py,
olive/bookmark.py, olive/guifiles.py, olive/info.py,
olive/menu.py, olive/mkdir.py, olive/move.py, olive/remove.py,
olive/rename.py, push.py, revbrowser.py, status.py, tags.py:
Replace all calls to _() by calls to _i18n(), the latter being
defined in __init__.py and imported in the other modules from
there. This fix the problem encountered countless times when
running bzr selftest and getting silly error messages about
boolean not being callables.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# Copyright (C) 2006 Szilveszter Farkas <szilveszter.farkas@gmail.com>
 
2
# Copyright (C) 2007 Jelmer Vernooij <jelmer@samba.org>
2
3
 
3
4
# This program is free software; you can redistribute it and/or modify
4
5
# it under the terms of the GNU General Public License as published by
22
23
import sys
23
24
 
24
25
import bzrlib.progress
25
 
from bzrlib.symbol_versioning import (deprecated_method, 
26
 
        zero_eight)
27
26
from bzrlib.ui import UIFactory
28
27
 
29
28
 
37
36
        
38
37
        self.vbox.show_all()
39
38
 
40
 
        self.add_buttons(gtk.STOCK_YES, gtk.RESPONSE_YES, gtk.STOCK_NO, gtk.RESPONSE_NO)
 
39
        self.add_buttons(gtk.STOCK_YES, gtk.RESPONSE_YES, gtk.STOCK_NO, 
 
40
                         gtk.RESPONSE_NO)
 
41
 
 
42
 
 
43
class GtkProgressBar(gtk.ProgressBar):
 
44
    def __init__(self, stack):
 
45
        super(GtkProgressBar, self).__init__()
 
46
        self.set_fraction(0.0)
 
47
        self._stack = stack
 
48
 
 
49
    def finished(self):
 
50
        self._stack.remove(self)
 
51
 
 
52
    def clear(self):
 
53
        pass
 
54
 
 
55
    def tick(self):
 
56
        self.pulse()
 
57
 
 
58
    def update(self, msg=None, current=None, total=None):
 
59
        if msg is not None:
 
60
            self.set_text(msg)
 
61
        if None not in (current, total):
 
62
            self.set_fraction(1.0 * current / total)
 
63
        while gtk.events_pending():
 
64
            gtk.main_iteration()
 
65
 
 
66
 
 
67
class GtkProgressBarStack(gtk.Window):
 
68
    def __init__(self):
 
69
        super(GtkProgressBarStack, self).__init__(type=gtk.WINDOW_TOPLEVEL)
 
70
        self.set_border_width(0)
 
71
        self.set_title("Progress")
 
72
        self.set_position(gtk.WIN_POS_CENTER_ALWAYS)
 
73
        self.vbox = gtk.VBox()
 
74
        self.add(self.vbox)
 
75
        self.set_resizable(False)
 
76
 
 
77
    def _adapt_size(self):
 
78
        self.resize(250, 15 * len(self.vbox.get_children()))
 
79
 
 
80
    def get_nested(self):
 
81
        nested = GtkProgressBar(self)
 
82
        self.vbox.pack_start(nested)
 
83
        self._adapt_size()
 
84
        self.show_all()
 
85
        return nested
 
86
 
 
87
    def remove(self, pb):
 
88
        self.vbox.remove(pb)
41
89
 
42
90
 
43
91
class PasswordDialog(gtk.Dialog):
66
114
    """A UI factory for GTK user interfaces."""
67
115
 
68
116
    def __init__(self,
69
 
                 bar_type=None,
70
117
                 stdout=None,
71
118
                 stderr=None):
72
119
        """Create a GtkUIFactory.
73
120
 
74
 
        :param bar_type: The type of progress bar to create. It defaults to 
75
 
                         letting the bzrlib.progress.ProgressBar factory auto
76
 
                         select.
77
121
        """
78
122
        super(GtkUIFactory, self).__init__()
79
 
        self._bar_type = bar_type
80
 
        if stdout is None:
81
 
            self.stdout = sys.stdout
82
 
        else:
83
 
            self.stdout = stdout
84
 
        if stderr is None:
85
 
            self.stderr = sys.stderr
86
 
        else:
87
 
            self.stderr = stderr
 
123
        self._progress_bar_stack = None
88
124
 
89
125
    def get_boolean(self, prompt):
90
126
        """GtkDialog with yes/no answers"""
93
129
        dialog.destroy()
94
130
        return (response == gtk.RESPONSE_YES)
95
131
        
96
 
    @deprecated_method(zero_eight)
97
 
    def progress_bar(self):
98
 
        """See UIFactory.nested_progress_bar()."""
99
 
        # this in turn is abstract, and creates either a tty or dots
100
 
        # bar depending on what we think of the terminal
101
 
        return bzrlib.progress.ProgressBar()
102
 
 
103
132
    def get_password(self, prompt='', **kwargs):
104
133
        """Prompt the user for a password.
105
134
 
121
150
 
122
151
    def nested_progress_bar(self):
123
152
        """Return a nested progress bar.
124
 
        
125
 
        The actual bar type returned depends on the progress module which
126
 
        may return a tty or dots bar depending on the terminal.
127
 
        
128
 
        FIXME: It should return a GtkProgressBar actually.
129
153
        """
130
154
        if self._progress_bar_stack is None:
131
 
            self._progress_bar_stack = bzrlib.progress.ProgressBarStack(
132
 
                klass=self._bar_type)
 
155
            self._progress_bar_stack = GtkProgressBarStack()
133
156
        return self._progress_bar_stack.get_nested()
134
157
 
 
158
    def set_progress_bar_vbox(self, vbox):
 
159
        """Change the vbox to put progress bars in.
 
160
        """
 
161
        self._progress_bar_stack = vbox
 
162
 
135
163
    def clear_term(self):
136
164
        """Prepare the terminal for output.
137
165