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
21
21
pygtk.require("2.0")
29
import bzrlib.errors as errors
31
from bzrlib.plugins.gtk.dialog import error_dialog
32
from guifiles import GLADEFILENAME
30
import olive.backend.errors as errors
31
import olive.backend.fileops as fileops
36
34
""" Display the Add file(s) dialog and perform the needed actions. """
37
def __init__(self, wt, wtpath, selected=[]):
35
def __init__(self, gladefile, comm, dialog):
38
36
""" Initialize the Add file(s) dialog. """
39
self.glade = gtk.glade.XML(GLADEFILENAME, 'window_add', 'olive-gtk')
37
self.gladefile = gladefile
38
self.glade = gtk.glade.XML(self.gladefile, 'window_add', 'olive-gtk')
40
# Communication object
41
45
self.window = self.glade.get_widget('window_add')
59
59
radio_selected = self.glade.get_widget('radiobutton_add_selected')
60
60
radio_unknown = self.glade.get_widget('radiobutton_add_unknown')
62
directory = self.comm.get_path()
64
self.comm.set_busy(self.window)
62
65
if radio_selected.get_active():
63
66
# Add only the selected file
64
filename = self.selected
67
filename = self.comm.get_selected_right()
66
69
if filename is None:
67
error_dialog(_('No file was selected'),
68
_('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.'))
71
fullpath = self.wt.abspath(os.path.join(self.wtpath, filename))
74
bzrlib.add.smart_add([fullpath])
75
fileops.add([directory + '/' + filename])
75
76
except errors.NotBranchError:
76
error_dialog(_('Directory is not a branch'),
77
_('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)
79
83
elif radio_unknown.get_active():
80
84
# Add unknown files recursively
81
fullpath = self.wt.abspath(self.wtpath)
84
bzrlib.add.smart_add([fullpath], True)
86
fileops.add([directory], True)
85
87
except errors.NotBranchError:
86
error_dialog(_('Directory is not a branch'),
87
_('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()
92
101
def close(self, widget=None):
93
102
self.window.destroy()