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

  • Committer: Szilveszter Farkas (Phanatic)
  • Date: 2006-09-29 22:22:20 UTC
  • mto: (0.14.3 main)
  • mto: This revision was merged to the branch mainline in revision 84.
  • Revision ID: Szilveszter.Farkas@gmail.com-20060929222220-1cebaa642fdda8f1
Some further cleanups. More to come.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
16
16
 
17
 
import sys
 
17
import os
18
18
 
19
19
try:
20
20
    import pygtk
26
26
import gtk.glade
27
27
 
28
28
import bzrlib.errors as errors
29
 
from bzrlib.workingtree import WorkingTree
30
29
 
31
30
from olive import gladefile
 
31
from dialog import error_dialog, warning_dialog
32
32
 
33
33
class OliveRemove:
34
34
    """ Display the Remove file(s) dialog and perform the needed actions. """
35
 
    def __init__(self):
 
35
    def __init__(self, wt, wtpath, selected=[]):
36
36
        """ Initialize the Remove file(s) dialog. """
37
37
        self.glade = gtk.glade.XML(gladefile, 'window_remove')
38
38
        
44
44
        
45
45
        # Connect the signals to the handlers
46
46
        self.glade.signal_autoconnect(dic)
 
47
        
 
48
        self.wt = wt
 
49
        self.wtpath = wtpath
 
50
        self.selected = selected
47
51
 
48
52
    def display(self):
49
53
        """ Display the Remove file(s) dialog. """
53
57
        radio_selected = self.glade.get_widget('radiobutton_remove_selected')
54
58
        radio_new = self.glade.get_widget('radiobutton_remove_new')
55
59
        
56
 
        directory = self.comm.get_path()
57
 
        
58
60
        if radio_selected.get_active():
59
61
            # Remove only the selected file
60
 
            filename = self.comm.get_selected_right()
 
62
            filename = self.selected
61
63
            
62
64
            if filename is None:
63
65
                error_dialog(_('No file was selected'),
64
 
                                         _('Please select a file from the list,\nor choose the other option.'))
 
66
                             _('Please select a file from the list,\nor choose the other option.'))
65
67
                return
66
68
            
 
69
            if self.wtpath == "":
 
70
                fullpath = self.wt.abspath(filename)
 
71
            else:
 
72
                fullpath = self.wt.abspath(self.wtpath + os.sep + filename)
 
73
            
67
74
            try:
68
 
                wt, path = WorkingTree.open_containing(directory + '/' + filename)
69
 
                wt.remove(path)
 
75
                self.wt.remove(fullpath)
70
76
            except errors.NotBranchError:
71
77
                error_dialog(_('Directory is not a branch'),
72
 
                                         _('You can perform this action only in a branch.'))
 
78
                             _('You can perform this action only in a branch.'))
73
79
                return
74
80
            except errors.NotVersionedError:
75
81
                error_dialog(_('File not versioned'),
76
 
                                         _('The selected file is not versioned.'))
 
82
                             _('The selected file is not versioned.'))
77
83
                return
78
84
        elif radio_new.get_active():
79
85
            # Remove added files recursively
80
 
            try:
81
 
                wt, path = WorkingTree.open_containing(directory)
82
 
            except errors.NotBranchError:
83
 
                error_dialog(_('Directory is not a branch'),
84
 
                                         _('You can perform this action only in a branch.'))
85
 
                return
86
 
            
87
 
            added = wt.changes_from(wt.basis_tree()).added
 
86
            added = self.wt.changes_from(self.wt.basis_tree()).added
88
87
            file_list = sorted([f[0] for f in added], reverse=True)
89
88
            if len(file_list) == 0:
90
 
                dialog.warning_dialog(_('No matching files'),
91
 
                                      _('No added files were found in the working tree.'))
 
89
                warning_dialog(_('No matching files'),
 
90
                               _('No added files were found in the working tree.'))
92
91
                return
93
 
            wt.remove(file_list)
 
92
            self.wt.remove(file_list)
94
93
        
95
94
        self.close()
96
95