/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: Jasper Groenewegen
  • Date: 2008-07-27 12:01:40 UTC
  • mfrom: (576.3.2 improve-merge)
  • mto: This revision was merged to the branch mainline in revision 579.
  • Revision ID: colbrac@xs4all.nl-20080727120140-1agdlzkc9fumjk5f
Merge merge dialog improvements

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
19
18
 
20
19
try:
21
20
    import pygtk
24
23
    pass
25
24
 
26
25
import gtk
27
 
import gtk.glade
28
26
 
29
27
import bzrlib.add
30
28
import bzrlib.errors as errors
31
29
 
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
 
 
 
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
50
46
        self.wt = wt
51
47
        self.wtpath = wtpath
52
48
        self.selected = selected
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():
 
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():
63
72
            # Add only the selected file
64
73
            filename = self.selected
65
74
            
66
75
            if filename is None:
67
 
                error_dialog(_('No file was selected'),
68
 
                             _('Please select a file from the list,\nor choose the other option.'))
 
76
                error_dialog(_i18n('No file was selected'),
 
77
                             _i18n('Please select a file from the list,\nor choose the other option.'))
69
78
                return
70
79
            
71
 
            if self.wtpath == "":
72
 
                fullpath = self.wt.abspath(filename)
73
 
            else:
74
 
                fullpath = self.wt.abspath(self.wtpath + os.sep + filename)
75
 
            
76
80
            try:
77
 
                bzrlib.add.smart_add([fullpath])
 
81
                self.wt.add([filename])
78
82
            except errors.NotBranchError:
79
 
                error_dialog(_('Directory is not a branch'),
80
 
                             _('You can perform this action only in a branch.'))
 
83
                error_dialog(_i18n('Directory is not a branch'),
 
84
                             _i18n('You can perform this action only in a branch.'))
81
85
                return
82
 
        elif radio_unknown.get_active():
 
86
        elif self._radiobutton_add_unknown.get_active():
83
87
            # Add unknown files recursively
84
88
            try:
85
 
                bzrlib.add.smart_add([self.wtpath], True)
 
89
                self.wt.add(self.wt.unknowns())
86
90
            except errors.NotBranchError:
87
 
                error_dialog(_('Directory is not a branch'),
88
 
                             _('You can perform this action only in a branch.'))
 
91
                error_dialog(_i18n('Directory is not a branch'),
 
92
                             _i18n('You can perform this action only in a branch.'))
89
93
                return
90
94
        
91
 
        self.close()
92
 
    
93
 
    def close(self, widget=None):
94
 
        self.window.destroy()
 
95
        self.response(gtk.RESPONSE_OK)