15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22
21
pygtk.require("2.0")
31
import olive.backend.errors as errors
32
import olive.backend.fileops as fileops
28
import bzrlib.errors as errors
29
from bzrlib.workingtree import WorkingTree
31
from olive import gladefile
32
from dialog import error_dialog
35
35
""" Display the Rename dialog and perform the needed actions. """
36
def __init__(self, gladefile, comm, dialog):
36
def __init__(self, wt, wtpath, selected=[]):
37
37
""" Initialize the Rename dialog. """
38
self.gladefile = gladefile
39
self.glade = gtk.glade.XML(self.gladefile, 'window_rename')
41
# Communication object
38
self.glade = gtk.glade.XML(gladefile, 'window_rename')
46
40
self.window = self.glade.get_widget('window_rename')
61
59
entry = self.glade.get_widget('entry_rename')
63
old_filename = self.comm.get_selected_right()
61
old_filename = self.selected
64
62
new_filename = entry.get_text()
66
64
if old_filename is None:
67
self.dialog.error_dialog(_('No file was selected'),
68
_('Please select a file from the list to proceed.'))
65
error_dialog(_('No file was selected'),
66
_('Please select a file from the list to proceed.'))
71
69
if new_filename == "":
72
self.dialog.error_dialog(_('Filename not given'),
73
_('Please specify a new name for the file.'))
70
error_dialog(_('Filename not given'),
71
_('Please specify a new name for the file.'))
76
source = self.comm.get_path() + '/' + old_filename
77
destination = self.comm.get_path() + '/' + new_filename
74
source = os.path.join(self.wtpath, old_filename)
75
destination = os.path.join(self.wtpath, new_filename)
81
fileops.rename(source, destination)
79
wt1, path1 = WorkingTree.open_containing(self.wt.abspath(source))
80
wt2, path2 = WorkingTree.open_containing(self.wt.abspath(source))
82
if wt1.basedir != wt2.basedir:
83
error_dialog(_('Not the same branch'),
84
_('The destination is not in the same branch.'))
86
wt1.rename_one(source, destination)
82
87
except errors.NotBranchError:
83
self.dialog.error_dialog(_('File is not in a branch'),
84
_('The selected file is not in a branch.'))
86
except errors.NotSameBranchError:
87
self.dialog.error_dialog(_('Not the same branch'),
88
_('The destination is not in the same branch.'))
88
error_dialog(_('File is not in a branch'),
89
_('The selected file is not in a branch.'))
91
except errors.BzrError, msg:
92
error_dialog(_('Unknown bzr error'), str(msg))
94
self.comm.refresh_right()
96
96
def close(self, widget=None):
97
97
self.window.destroy()