14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28
28
import bzrlib.errors as errors
29
from bzrlib.workingtree import WorkingTree
31
30
from olive import gladefile
31
from dialog import error_dialog, warning_dialog
34
34
""" Display the Remove file(s) dialog and perform the needed actions. """
35
def __init__(self, wt, wtpath, selected=[]):
36
36
""" Initialize the Remove file(s) dialog. """
37
37
self.glade = gtk.glade.XML(gladefile, 'window_remove')
53
57
radio_selected = self.glade.get_widget('radiobutton_remove_selected')
54
58
radio_new = self.glade.get_widget('radiobutton_remove_new')
56
directory = self.comm.get_path()
58
60
if radio_selected.get_active():
59
61
# Remove only the selected file
60
filename = self.comm.get_selected_right()
62
filename = self.selected
62
64
if filename is None:
63
65
error_dialog(_('No file was selected'),
64
_('Please select a file from the list,\nor choose the other option.'))
66
_('Please select a file from the list,\nor choose the other option.'))
70
fullpath = self.wt.abspath(filename)
72
fullpath = self.wt.abspath(self.wtpath + os.sep + filename)
68
wt, path = WorkingTree.open_containing(directory + '/' + filename)
75
self.wt.remove(fullpath)
70
76
except errors.NotBranchError:
71
77
error_dialog(_('Directory is not a branch'),
72
_('You can perform this action only in a branch.'))
78
_('You can perform this action only in a branch.'))
74
80
except errors.NotVersionedError:
75
81
error_dialog(_('File not versioned'),
76
_('The selected file is not versioned.'))
82
_('The selected file is not versioned.'))
78
84
elif radio_new.get_active():
79
85
# 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
86
added = self.wt.changes_from(self.wt.basis_tree()).added
88
87
file_list = sorted([f[0] for f in added], reverse=True)
89
88
if len(file_list) == 0:
90
dialog.warning_dialog(_('No matching files'),
91
_('No added files were found in the working tree.'))
89
warning_dialog(_('No matching files'),
90
_('No added files were found in the working tree.'))
92
self.wt.remove(file_list)