1
# Copyright (C) 2006 by Szilveszter Farkas (Phanatic) <szilveszter.farkas@gmail.com>
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
# GNU General Public License for more details.
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28
import bzrlib.errors as errors
29
from bzrlib.workingtree import WorkingTree
31
from olive import gladefile
34
""" Display the Remove file(s) dialog and perform the needed actions. """
36
""" Initialize the Remove file(s) dialog. """
37
self.glade = gtk.glade.XML(gladefile, 'window_remove')
39
self.window = self.glade.get_widget('window_remove')
41
# Dictionary for signal_autoconnect
42
dic = { "on_button_remove_remove_clicked": self.remove,
43
"on_button_remove_cancel_clicked": self.close }
45
# Connect the signals to the handlers
46
self.glade.signal_autoconnect(dic)
49
""" Display the Remove file(s) dialog. """
50
self.window.show_all()
52
def remove(self, widget):
53
radio_selected = self.glade.get_widget('radiobutton_remove_selected')
54
radio_new = self.glade.get_widget('radiobutton_remove_new')
56
directory = self.comm.get_path()
58
if radio_selected.get_active():
59
# Remove only the selected file
60
filename = self.comm.get_selected_right()
63
error_dialog(_('No file was selected'),
64
_('Please select a file from the list,\nor choose the other option.'))
68
wt, path = WorkingTree.open_containing(directory + '/' + filename)
70
except errors.NotBranchError:
71
error_dialog(_('Directory is not a branch'),
72
_('You can perform this action only in a branch.'))
74
except errors.NotVersionedError:
75
error_dialog(_('File not versioned'),
76
_('The selected file is not versioned.'))
78
elif radio_new.get_active():
79
# Remove added files recursively
81
wt, path = WorkingTree.open_containing(directory)
82
except errors.NotBranchError:
83
error_dialog(_('Directory is not a branch'),
84
_('You can perform this action only in a branch.'))
87
added = wt.changes_from(wt.basis_tree()).added
88
file_list = sorted([f[0] for f in added], reverse=True)
89
if len(file_list) == 0:
90
dialog.warning_dialog(_('No matching files'),
91
_('No added files were found in the working tree.'))
97
def close(self, widget=None):