/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/move.py

  • Committer: Szilveszter Farkas (Phanatic)
  • Date: 2006-09-30 13:04:15 UTC
  • mto: (0.14.3 main)
  • mto: This revision was merged to the branch mainline in revision 86.
  • Revision ID: Szilveszter.Farkas@gmail.com-20060930130415-aba4100709e11f0a
Loads of fixes. Pyflakes cleanup.

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
from os.path import dirname
19
19
 
20
20
try:
21
21
    import pygtk
22
22
    pygtk.require("2.0")
23
23
except:
24
24
    pass
25
 
try:
26
 
    import gtk
27
 
    import gtk.glade
28
 
except:
29
 
    sys.exit(1)
30
 
 
31
 
import olive.backend.errors as errors
32
 
import olive.backend.fileops as fileops
 
25
 
 
26
import gtk
 
27
import gtk.glade
 
28
 
 
29
import bzrlib.errors as errors
 
30
from bzrlib.workingtree import WorkingTree
 
31
 
 
32
from olive import gladefile
 
33
from dialog import error_dialog
33
34
 
34
35
class OliveMove:
35
36
    """ Display the Move dialog and perform the needed actions. """
36
 
    def __init__(self, gladefile, comm, dialog):
 
37
    def __init__(self, wt, wtpath, selected=[]):
37
38
        """ Initialize the Move dialog. """
38
 
        self.gladefile = gladefile
39
 
        self.glade = gtk.glade.XML(self.gladefile, 'window_move', 'olive-gtk')
40
 
        
41
 
        # Communication object
42
 
        self.comm = comm
43
 
        # Dialog object
44
 
        self.dialog = dialog
 
39
        self.glade = gtk.glade.XML(gladefile, 'window_move', 'olive-gtk')
45
40
        
46
41
        self.window = self.glade.get_widget('window_move')
47
42
        
52
47
        # Connect the signals to the handlers
53
48
        self.glade.signal_autoconnect(dic)
54
49
        
 
50
        self.wt = wt
 
51
        self.wtpath = wtpath
 
52
        self.selected = selected
 
53
        
 
54
        if self.selected is None:
 
55
            self.selected = ""
 
56
        
 
57
        if self.wtpath == "":
 
58
            directory = dirname(self.wt.abspath(self.selected))
 
59
        else:
 
60
            directory = dirname(self.wt.abspath(self.wtpath + os.sep + self.selected))
 
61
        
55
62
        # Set FileChooser directory
56
63
        self.filechooser = self.glade.get_widget('filechooserbutton_move')
57
 
        self.filechooser.set_filename(self.comm.get_path())
 
64
        self.filechooser.set_filename(directory)
58
65
 
59
66
    def display(self):
60
67
        """ Display the Move dialog. """
63
70
    def move(self, widget):
64
71
        destination = self.filechooser.get_filename()
65
72
 
66
 
        filename = self.comm.get_selected_right()
 
73
        filename = self.selected
67
74
            
68
75
        if filename is None:
69
 
            self.dialog.error_dialog(_('No file was selected'),
70
 
                                     _('Please select a file from the list to proceed.'))
 
76
            error_dialog(_('No file was selected'),
 
77
                         _('Please select a file from the list to proceed.'))
71
78
            return
72
79
        
73
 
        source = self.comm.get_path() + '/' + filename
 
80
        source = os.path.join(self.wtpath, filename)
74
81
        
75
82
        # Move the file to a directory
76
83
        try:
77
 
            fileops.move([source, destination])
 
84
            wt1, path1 = WorkingTree.open_containing(self.wt.abspath(source))
 
85
            wt2, path2 = WorkingTree.open_containing(destination)
 
86
            if wt1.basedir != wt2.basedir:
 
87
                error_dialog(_('Not the same branch'),
 
88
                             _('The destination is not in the same branch.'))
 
89
                return
 
90
 
 
91
            wt1.move([source], wt1.relpath(destination))
78
92
        except errors.NotBranchError:
79
 
            self.dialog.error_dialog(_('File is not in a branch'),
80
 
                                     _('The selected file is not in a branch.'))
81
 
            return
82
 
        except errors.NotSameBranchError:
83
 
            self.dialog.error_dialog(_('Not the same branch'),
84
 
                                     _('The destination is not in the same branch.'))
85
 
            return
86
 
        except:
87
 
            raise
 
93
            error_dialog(_('File is not in a branch'),
 
94
                         _('The selected file is not in a branch.'))
 
95
            return
88
96
 
89
97
        self.close()
90
 
        self.comm.refresh_right()
91
98
    
92
99
    def close(self, widget=None):
93
100
        self.window.destroy()