/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):
63
111
 
64
112
 
65
113
class GtkUIFactory(UIFactory):
66
 
    """A UI factory for GTK user interefaces."""
 
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"""
91
127
        dialog = PromptDialog(prompt)
92
128
        response = dialog.run()
93
129
        dialog.destroy()
94
 
        if response == gtk.RESPONSE_YES:
95
 
            return True
96
 
        else:
97
 
            return False
 
130
        return (response == gtk.RESPONSE_YES)
98
131
        
99
 
    @deprecated_method(zero_eight)
100
 
    def progress_bar(self):
101
 
        """See UIFactory.nested_progress_bar()."""
102
 
        # this in turn is abstract, and creates either a tty or dots
103
 
        # bar depending on what we think of the terminal
104
 
        return bzrlib.progress.ProgressBar()
105
 
 
106
132
    def get_password(self, prompt='', **kwargs):
107
133
        """Prompt the user for a password.
108
134
 
124
150
 
125
151
    def nested_progress_bar(self):
126
152
        """Return a nested progress bar.
127
 
        
128
 
        The actual bar type returned depends on the progress module which
129
 
        may return a tty or dots bar depending on the terminal.
130
 
        
131
 
        FIXME: It should return a GtkProgressBar actually.
132
153
        """
133
154
        if self._progress_bar_stack is None:
134
 
            self._progress_bar_stack = bzrlib.progress.ProgressBarStack(
135
 
                klass=self._bar_type)
 
155
            self._progress_bar_stack = GtkProgressBarStack()
136
156
        return self._progress_bar_stack.get_nested()
137
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
 
138
163
    def clear_term(self):
139
164
        """Prepare the terminal for output.
140
165