21
21
pygtk.require("2.0")
29
import bzrlib.errors as errors
31
from olive import gladefile
30
import olive.backend.errors as errors
31
import olive.backend.fileops as fileops
34
34
""" Display the Add file(s) dialog and perform the needed actions. """
35
def __init__(self, wt, wtpath, selected=[]):
35
def __init__(self, gladefile, comm, dialog):
36
36
""" Initialize the Add file(s) dialog. """
37
self.glade = gtk.glade.XML(gladefile, 'window_add', 'olive-gtk')
37
self.gladefile = gladefile
38
self.glade = gtk.glade.XML(self.gladefile, 'window_add')
40
# Communication object
39
45
self.window = self.glade.get_widget('window_add')
57
59
radio_selected = self.glade.get_widget('radiobutton_add_selected')
58
60
radio_unknown = self.glade.get_widget('radiobutton_add_unknown')
62
directory = self.comm.get_path()
64
self.comm.set_busy(self.window)
60
65
if radio_selected.get_active():
61
66
# Add only the selected file
62
filename = self.selected
67
filename = self.comm.get_selected_right()
64
69
if filename is None:
65
error_dialog(_('No file was selected'),
66
_('Please select a file from the list,\nor choose the other option.'))
70
self.dialog.error_dialog('No file was selected',
71
'Please select a file from the list,\nor choose the other option.')
70
bzrlib.add.smart_add([directory + '/' + filename])
75
fileops.add([directory + '/' + filename])
71
76
except errors.NotBranchError:
72
error_dialog(_('Directory is not a branch'),
73
_('You can perform this action only in a branch.'))
77
self.dialog.error_dialog('Directory is not a branch',
78
'You can perform this action only in a branch.')
79
self.comm.set_busy(self.window, False)
75
83
elif radio_unknown.get_active():
76
84
# Add unknown files recursively
78
bzrlib.add.smart_add([directory], True)
86
fileops.add([directory], True)
79
87
except errors.NotBranchError:
80
error_dialog(_('Directory is not a branch'),
81
_('You can perform this action only in a branch.'))
88
self.dialog.error_dialog('Directory is not a branch',
89
'You can perform this action only in a branch.')
90
self.comm.set_busy(self.window, False)
95
# This should really never happen.
99
self.comm.refresh_right()
86
101
def close(self, widget=None):
87
102
self.window.destroy()