/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz

« back to all changes in this revision

Viewing changes to olive/rename.py

  • Committer: Jelmer Vernooij
  • Date: 2006-09-30 10:21:43 UTC
  • Revision ID: jelmer@samba.org-20060930102143-c0ef64d6ca860c21
Merge some files from Olive and bzr-gtk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
17
import os
 
18
import sys
18
19
 
19
20
try:
20
21
    import pygtk
23
24
    pass
24
25
 
25
26
import gtk
 
27
import gtk.glade
26
28
 
27
29
import bzrlib.errors as errors
28
 
from bzrlib.workingtree import WorkingTree
29
 
 
30
 
from bzrlib.plugins.gtk import _i18n
31
 
from bzrlib.plugins.gtk.dialog import error_dialog
32
 
from bzrlib.plugins.gtk.errors import show_bzr_error
33
 
 
34
 
 
35
 
class RenameDialog(gtk.Dialog):
 
30
 
 
31
class OliveRename:
36
32
    """ Display the Rename dialog and perform the needed actions. """
37
 
    
38
 
    def __init__(self, wt, wtpath, selected=None, parent=None):
39
 
        """ Initialize the Rename file dialog. """
40
 
        gtk.Dialog.__init__(self, title="Olive - Rename files",
41
 
                                  parent=parent,
42
 
                                  flags=0,
43
 
                                  buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
44
 
        
45
 
        # Get arguments
46
 
        self.wt = wt
47
 
        self.wtpath = wtpath
48
 
        self.selected = selected
49
 
        
50
 
        # Create widgets
51
 
        self._hbox = gtk.HBox()
52
 
        self._label_rename_to = gtk.Label(_i18n("Rename to"))
53
 
        self._entry = gtk.Entry()
54
 
        self._button_rename = gtk.Button(_i18n("_Rename"))
55
 
        self._button_rename_icon = gtk.Image()
56
 
        self._button_rename_icon.set_from_stock(gtk.STOCK_APPLY, gtk.ICON_SIZE_BUTTON)
57
 
        self._button_rename.set_image(self._button_rename_icon)
58
 
        
59
 
        self._entry.connect('activate', self._on_rename_clicked)
60
 
        self._button_rename.connect('clicked', self._on_rename_clicked)
61
 
        
62
 
        # Set text
63
 
        if self.selected is not None:
64
 
            self._entry.set_text(self.selected)
65
 
        
66
 
        # Add widgets to dialog
67
 
        self.vbox.add(self._hbox)
68
 
        self._hbox.add(self._label_rename_to)
69
 
        self._hbox.add(self._entry)
70
 
        self._hbox.set_spacing(5)
71
 
        self.action_area.pack_end(self._button_rename)
72
 
        
73
 
        self.vbox.show_all()
74
 
        
75
 
    @show_bzr_error
76
 
    def _on_rename_clicked(self, widget):
 
33
    def __init__(self, comm):
 
34
        """ Initialize the Rename dialog. """
 
35
        self.glade = gtk.glade.XML(gladefile, 'window_rename')
 
36
        
 
37
        # Communication object
 
38
        self.comm = comm
 
39
        
 
40
        self.window = self.glade.get_widget('window_rename')
 
41
        
 
42
        # Dictionary for signal_autoconnect
 
43
        dic = { "on_button_rename_rename_clicked": self.rename,
 
44
                "on_button_rename_cancel_clicked": self.close }
 
45
        
 
46
        # Connect the signals to the handlers
 
47
        self.glade.signal_autoconnect(dic)
 
48
        
 
49
    def display(self):
 
50
        """ Display the Rename dialog. """
 
51
        self.window.show_all()
 
52
 
 
53
    def rename(self, widget):
77
54
        # Get entry
78
 
        old_filename = self.selected
79
 
        new_filename = self._entry.get_text()
 
55
        entry = self.glade.get_widget('entry_rename')
 
56
        
 
57
        old_filename = self.comm.get_selected_right()
 
58
        new_filename = entry.get_text()
80
59
            
81
60
        if old_filename is None:
82
 
            error_dialog(_i18n('No file was selected'),
83
 
                         _i18n('Please select a file from the list to proceed.'))
 
61
            error_dialog(_('No file was selected'),
 
62
                                     _('Please select a file from the list to proceed.'))
84
63
            return
85
64
        
86
65
        if new_filename == "":
87
 
            error_dialog(_i18n('Filename not given'),
88
 
                         _i18n('Please specify a new name for the file.'))
 
66
            error_dialog(_('Filename not given'),
 
67
                                     _('Please specify a new name for the file.'))
89
68
            return
90
69
        
91
 
        source = os.path.join(self.wtpath, old_filename)
92
 
        destination = os.path.join(self.wtpath, new_filename)
 
70
        source = self.comm.get_path() + '/' + old_filename
 
71
        destination = self.comm.get_path() + '/' + new_filename
93
72
        
94
73
        # Rename the file
95
 
        wt1, path1 = WorkingTree.open_containing(self.wt.abspath(source))
96
 
        wt2, path2 = WorkingTree.open_containing(self.wt.abspath(source))
 
74
        try:
 
75
            wt1, path1 = WorkingTree.open_containing(source)
 
76
            wt2, path2 = WorkingTree.open_containing(source)
97
77
 
98
 
        if wt1.basedir != wt2.basedir:
99
 
            error_dialog(_i18n('Not the same branch'),
100
 
                         _i18n('The destination is not in the same branch.'))
 
78
            if wt1.base != wt2.base:
 
79
                error_dialog(_('Not the same branch'),
 
80
                                         _('The destination is not in the same branch.'))
 
81
                return
 
82
            wt1.rename_one(source, destination)
 
83
        except errors.NotBranchError:
 
84
            error_dialog(_('File is not in a branch'),
 
85
                                     _('The selected file is not in a branch.'))
101
86
            return
102
 
        wt1.rename_one(source, destination)
103
 
        
104
 
        self.response(gtk.RESPONSE_OK)
 
87
 
 
88
        self.close()
 
89
        self.comm.refresh_right()
 
90
    
 
91
    def close(self, widget=None):
 
92
        self.window.destroy()