21
21
pygtk.require("2.0")
30
28
import bzrlib.errors as errors
29
from bzrlib.workingtree import WorkingTree
31
from olive import gladefile
33
34
""" Display the Remove file(s) dialog and perform the needed actions. """
34
def __init__(self, gladefile, comm, dialog):
35
36
""" Initialize the Remove file(s) dialog. """
36
self.gladefile = gladefile
37
self.glade = gtk.glade.XML(self.gladefile, 'window_remove')
39
# Communication object
37
self.glade = gtk.glade.XML(gladefile, 'window_remove')
44
39
self.window = self.glade.get_widget('window_remove')
61
56
directory = self.comm.get_path()
63
self.comm.set_busy(self.window)
64
58
if radio_selected.get_active():
65
59
# Remove only the selected file
66
60
filename = self.comm.get_selected_right()
68
62
if filename is None:
69
self.dialog.error_dialog(_('No file was selected'),
63
error_dialog(_('No file was selected'),
70
64
_('Please select a file from the list,\nor choose the other option.'))
71
self.comm.set_busy(self.window, False)
75
68
wt, path = WorkingTree.open_containing(directory + '/' + filename)
77
70
except errors.NotBranchError:
78
self.dialog.error_dialog(_('Directory is not a branch'),
71
error_dialog(_('Directory is not a branch'),
79
72
_('You can perform this action only in a branch.'))
80
self.comm.set_busy(self.window, False)
82
74
except errors.NotVersionedError:
83
self.dialog.error_dialog(_('File not versioned'),
75
error_dialog(_('File not versioned'),
84
76
_('The selected file is not versioned.'))
85
self.comm.set_busy(self.window, False)
89
78
elif radio_new.get_active():
90
79
# Remove added files recursively
92
81
wt, path = WorkingTree.open_containing(directory)
94
82
except errors.NotBranchError:
95
self.dialog.error_dialog(_('Directory is not a branch'),
83
error_dialog(_('Directory is not a branch'),
96
84
_('You can perform this action only in a branch.'))
97
self.comm.set_busy(self.window, False)
99
except errors.NoMatchingFiles:
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:
100
90
dialog.warning_dialog(_('No matching files'),
101
91
_('No added files were found in the working tree.'))
102
self.comm.set_busy(self.window, False)
106
# This should really never happen.
110
self.comm.refresh_right()
112
97
def close(self, widget=None):
113
98
self.window.destroy()