/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 olive/remove.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:
23
23
        pass
24
24
 
25
25
import gtk
 
26
import gtk.glade
26
27
 
27
28
import bzrlib.errors as errors
28
29
 
29
30
from bzrlib.plugins.gtk import _i18n
30
31
from bzrlib.plugins.gtk.dialog import error_dialog, warning_dialog
31
 
from bzrlib.plugins.gtk.errors import show_bzr_error
32
 
 
33
 
 
34
 
class RemoveDialog(gtk.Dialog):
 
32
from guifiles import GLADEFILENAME
 
33
 
 
34
 
 
35
class OliveRemove:
 
36
    """ Display the Remove file(s) dialog and perform the needed actions. """
 
37
    def __init__(self, wt, wtpath, selected=[]):
 
38
        """ Initialize the Remove file(s) dialog. """
 
39
        self.glade = gtk.glade.XML(GLADEFILENAME, 'window_remove')
 
40
        
 
41
        self.window = self.glade.get_widget('window_remove')
 
42
        
 
43
        # Dictionary for signal_autoconnect
 
44
        dic = { "on_button_remove_remove_clicked": self.remove,
 
45
                "on_button_remove_cancel_clicked": self.close }
 
46
        
 
47
        # Connect the signals to the handlers
 
48
        self.glade.signal_autoconnect(dic)
 
49
        
 
50
        self.wt = wt
 
51
        self.wtpath = wtpath
 
52
        self.selected = selected
 
53
 
 
54
    def display(self):
 
55
        """ Display the Remove file(s) dialog. """
 
56
        self.window.show_all()
 
57
        
 
58
    @show_bzr_error
 
59
    def remove(self, widget):
 
60
        radio_selected = self.glade.get_widget('radiobutton_remove_selected')
 
61
        radio_new = self.glade.get_widget('radiobutton_remove_new')
 
62
        
 
63
        if radio_selected.get_active():
 
64
            # Remove only the selected file
 
65
            filename = self.selected
 
66
            
 
67
            if filename is None:
 
68
                error_dialog(_i18n('No file was selected'),
 
69
                             _i18n('Please select a file from the list,\nor choose the other option.'))
 
70
                return
 
71
            
 
72
            fullpath = self.wt.abspath(os.path.join(self.wtpath, filename))
 
73
            
 
74
            self.wt.remove(fullpath)
 
75
        elif radio_new.get_active():
 
76
            # Remove added files recursively
 
77
            added = self.wt.changes_from(self.wt.basis_tree()).added
 
78
            file_list = sorted([f[0] for f in added], reverse=True)
 
79
            if len(file_list) == 0:
 
80
                warning_dialog(_i18n('No matching files'),
 
81
                               _i18n('No added files were found in the working tree.'))
 
82
                return
 
83
            self.wt.remove(file_list)
 
84
        
 
85
        self.close()
 
86
    
 
87
    def close(self, widget=None):
 
88
        self.window.destroy()
 
89
 
 
90
class OliveRemoveDialog(gtk.Dialog):
35
91
    """ This class wraps the old Remove window into a gtk.Dialog. """
36
92
    
37
 
    def __init__(self, wt, wtpath, selected='', parent=None):
 
93
    def __init__(self, wt, wtpath, selected=[], parent=None):
38
94
        """ Initialize the Remove file(s) dialog. """
39
 
        gtk.Dialog.__init__(self, title="Olive - Remove files",
 
95
        gtk.Dialog.__init__(self, title="Remove files - Olive",
40
96
                                  parent=parent,
41
97
                                  flags=0,
42
98
                                  buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
48
104
        
49
105
        # Create widgets
50
106
        self._label = gtk.Label(_i18n("Which file(s) do you want to remove?"))
51
 
        self._radio_selected = gtk.RadioButton(None, _i18n("Selected: %s"%self.selected), False)
 
107
        self._radio_selected = gtk.RadioButton(None, _i18n("Selected only"), False)
52
108
        self._radio_added = gtk.RadioButton(self._radio_selected, _i18n("All files with status 'added'"), False)
53
 
        self._button_remove = gtk.Button(stock=gtk.STOCK_REMOVE)
 
109
        self._button_remove = gtk.Button(_i18n("_Remove"), use_underline=True)
54
110
        
55
111
        self._button_remove.connect('clicked', self._on_remove_clicked)
56
112
        
57
 
        self.vbox.add(self._label)
58
 
        self.vbox.add(self._radio_selected)
59
 
        self.vbox.add(self._radio_added)
 
113
        self.vbox.pack_start(self._label)
 
114
        self.vbox.pack_end(self._radio_added)
 
115
        self.vbox.pack_end(self._radio_selected)
 
116
        
 
117
        self.action_area.pack_end(self._button_remove)
 
118
        
60
119
        self.vbox.set_spacing(3)
61
 
        self.action_area.pack_end(self._button_remove)
62
 
        
63
120
        self.vbox.show_all()
64
121
        
65
122
    @show_bzr_error