/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/add.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.add
28
30
import bzrlib.errors as errors
29
31
 
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 AddDialog(gtk.Dialog):
36
 
    """ Dialog for adding selected file or recursively all unknown files/folders in branch """
37
 
    
38
 
    def __init__(self, wt, wtpath, selected, parent=None):
39
 
        """ Initialize the Add dialog. """
40
 
        gtk.Dialog.__init__(self, title="Olive - Add file(s)",
41
 
                                  parent=parent,
42
 
                                  flags=0,
43
 
                                  buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
44
 
        
45
 
        # Get arguments
 
32
from olive import gladefile
 
33
from dialog import error_dialog
 
34
 
 
35
class OliveAdd:
 
36
    """ Display the Add file(s) dialog and perform the needed actions. """
 
37
    def __init__(self, wt, wtpath, selected=[]):
 
38
        """ Initialize the Add file(s) dialog. """
 
39
        self.glade = gtk.glade.XML(gladefile, 'window_add', 'olive-gtk')
 
40
        
 
41
        self.window = self.glade.get_widget('window_add')
 
42
        
 
43
        # Dictionary for signal_autoconnect
 
44
        dic = { "on_button_add_add_clicked": self.add,
 
45
                "on_button_add_cancel_clicked": self.close }
 
46
        
 
47
        # Connect the signals to the handlers
 
48
        self.glade.signal_autoconnect(dic)
 
49
 
46
50
        self.wt = wt
47
51
        self.wtpath = wtpath
48
52
        self.selected = selected
49
 
        
50
 
        # Create widgets
51
 
        self._label_add_question = gtk.Label(_i18n("Which file(s) do you want to add?"))
52
 
        self._radiobutton_add_selected = gtk.RadioButton(None,_i18n("Selected: %s"%self.selected))
53
 
        self._radiobutton_add_unknown = gtk.RadioButton(self._radiobutton_add_selected, 
54
 
                                                        _i18n("All unknowns recursively"))
55
 
        self._button_add = gtk.Button(stock=gtk.STOCK_ADD)        
56
 
        
57
 
        self._button_add.connect('clicked', self._on_add_clicked)
58
 
        
59
 
        # Add widgets to dialog window and decorate
60
 
        self.vbox.add(self._label_add_question)
61
 
        self.vbox.add(self._radiobutton_add_selected)
62
 
        self.vbox.add(self._radiobutton_add_unknown)
63
 
        self.vbox.set_spacing(3)
64
 
        self.action_area.pack_end(self._button_add)
65
 
        
66
 
        self.vbox.show_all()
67
 
        
68
 
    @show_bzr_error
69
 
    def _on_add_clicked(self, button):
70
 
        """ """
71
 
        if self._radiobutton_add_selected.get_active():
 
53
 
 
54
    def display(self):
 
55
        """ Display the Add file(s) dialog. """
 
56
        self.window.show_all()
 
57
        
 
58
    def add(self, widget):
 
59
        radio_selected = self.glade.get_widget('radiobutton_add_selected')
 
60
        radio_unknown = self.glade.get_widget('radiobutton_add_unknown')
 
61
        
 
62
        if radio_selected.get_active():
72
63
            # Add only the selected file
73
64
            filename = self.selected
74
65
            
75
66
            if filename is None:
76
 
                error_dialog(_i18n('No file was selected'),
77
 
                             _i18n('Please select a file from the list,\nor choose the other option.'))
 
67
                error_dialog(_('No file was selected'),
 
68
                             _('Please select a file from the list,\nor choose the other option.'))
78
69
                return
79
70
            
 
71
            if self.wtpath == "":
 
72
                fullpath = self.wt.abspath(filename)
 
73
            else:
 
74
                fullpath = self.wt.abspath(self.wtpath + os.sep + filename)
 
75
            
80
76
            try:
81
 
                self.wt.add([filename])
 
77
                bzrlib.add.smart_add([fullpath])
82
78
            except errors.NotBranchError:
83
 
                error_dialog(_i18n('Directory is not a branch'),
84
 
                             _i18n('You can perform this action only in a branch.'))
 
79
                error_dialog(_('Directory is not a branch'),
 
80
                             _('You can perform this action only in a branch.'))
85
81
                return
86
 
        elif self._radiobutton_add_unknown.get_active():
 
82
        elif radio_unknown.get_active():
87
83
            # Add unknown files recursively
88
84
            try:
89
 
                self.wt.add(self.wt.unknowns())
 
85
                bzrlib.add.smart_add([self.wtpath], True)
90
86
            except errors.NotBranchError:
91
 
                error_dialog(_i18n('Directory is not a branch'),
92
 
                             _i18n('You can perform this action only in a branch.'))
 
87
                error_dialog(_('Directory is not a branch'),
 
88
                             _('You can perform this action only in a branch.'))
93
89
                return
94
90
        
95
 
        self.response(gtk.RESPONSE_OK)
 
91
        self.close()
 
92
    
 
93
    def close(self, widget=None):
 
94
        self.window.destroy()