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 import _i18n
32
from bzrlib.plugins.gtk.dialog import error_dialog
33
from guifiles import GLADEFILENAME
30
import olive.backend.errors as errors
31
import olive.backend.fileops as fileops
37
34
""" Display the Add file(s) dialog and perform the needed actions. """
38
def __init__(self, wt, wtpath, selected=[]):
35
def __init__(self, gladefile, comm):
39
36
""" Initialize the Add file(s) dialog. """
40
self.glade = gtk.glade.XML(GLADEFILENAME, 'window_add', 'olive-gtk')
37
self.gladefile = gladefile
38
self.glade = gtk.glade.XML(self.gladefile, 'window_add')
42
42
self.window = self.glade.get_widget('window_add')
48
48
# Connect the signals to the handlers
49
49
self.glade.signal_autoconnect(dic)
53
self.selected = selected
56
52
""" Display the Add file(s) dialog. """
57
53
self.window.show_all()
59
55
def add(self, widget):
56
from dialog import OliveDialog
57
dialog = OliveDialog(self.gladefile)
60
59
radio_selected = self.glade.get_widget('radiobutton_add_selected')
61
60
radio_unknown = self.glade.get_widget('radiobutton_add_unknown')
62
directory = self.comm.get_path()
64
self.comm.set_busy(self.window)
63
65
if radio_selected.get_active():
64
66
# Add only the selected file
65
filename = self.selected
67
filename = self.comm.get_selected_right()
67
69
if filename is None:
68
error_dialog(_i18n('No file was selected'),
69
_i18n('Please select a file from the list,\nor choose the other option.'))
70
dialog.error_dialog('No file was selected.')
72
fullpath = self.wt.abspath(os.path.join(self.wtpath, filename))
75
bzrlib.add.smart_add([fullpath])
74
fileops.add([directory + '/' + filename])
76
75
except errors.NotBranchError:
77
error_dialog(_i18n('Directory is not a branch'),
78
_i18n('You can perform this action only in a branch.'))
76
dialog.error_dialog('The directory is not a branch.')
77
self.comm.set_busy(self.window, False)
80
81
elif radio_unknown.get_active():
81
82
# Add unknown files recursively
82
fullpath = self.wt.abspath(self.wtpath)
85
bzrlib.add.smart_add([fullpath], True)
84
fileops.add([directory], True)
86
85
except errors.NotBranchError:
87
error_dialog(_i18n('Directory is not a branch'),
88
_i18n('You can perform this action only in a branch.'))
86
dialog.error_dialog('The directory is not a branch.')
87
self.comm.set_busy(self.window, False)
92
# This should really never happen.
96
self.comm.refresh_right()
93
98
def close(self, widget=None):
94
99
self.window.destroy()