/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: Jelmer Vernooij
  • Date: 2008-06-27 16:55:09 UTC
  • mto: This revision was merged to the branch mainline in revision 506.
  • Revision ID: jelmer@samba.org-20080627165509-7b68w2chzvvgc8vz
Use helper script to open patches.

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
from os.path import dirname
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
30
from bzrlib.workingtree import WorkingTree
29
31
 
30
32
from bzrlib.plugins.gtk import _i18n
31
33
from bzrlib.plugins.gtk.dialog import error_dialog
32
 
from bzrlib.plugins.gtk.errors import show_bzr_error
33
 
 
34
 
 
35
 
class MoveDialog(gtk.Dialog):
 
34
from errors import show_bzr_error
 
35
from guifiles import GLADEFILENAME
 
36
 
 
37
 
 
38
class OliveMove:
36
39
    """ Display the Move dialog and perform the needed actions. """
37
 
    
38
 
    def __init__(self, wt, wtpath, selected, parent=None):
 
40
    def __init__(self, wt, wtpath, selected=[]):
39
41
        """ Initialize the Move dialog. """
40
 
        gtk.Dialog.__init__(self, title="Olive - Move",
41
 
                                  parent=parent,
42
 
                                  flags=0,
43
 
                                  buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
44
 
        
45
 
        # Get arguments
 
42
        self.glade = gtk.glade.XML(GLADEFILENAME, 'window_move', 'olive-gtk')
 
43
        
 
44
        self.window = self.glade.get_widget('window_move')
 
45
        
 
46
        # Dictionary for signal_autoconnect
 
47
        dic = { "on_button_move_move_clicked": self.move,
 
48
                "on_button_move_cancel_clicked": self.close }
 
49
        
 
50
        # Connect the signals to the handlers
 
51
        self.glade.signal_autoconnect(dic)
 
52
        
46
53
        self.wt = wt
47
54
        self.wtpath = wtpath
48
55
        self.selected = selected
51
58
            self.selected = ""
52
59
        
53
60
        if self.wtpath == "":
54
 
            directory = os.path.dirname(self.wt.abspath(self.selected))
 
61
            directory = dirname(self.wt.abspath(self.selected))
55
62
        else:
56
 
            directory = os.path.dirname(self.wt.abspath(self.wtpath + os.sep + self.selected))
57
 
        
58
 
        # Create widgets
59
 
        self._hbox = gtk.HBox()
60
 
        self._label_move_to = gtk.Label(_i18n("Move to"))
61
 
        self._filechooser_dialog = gtk.FileChooserDialog(title="Please select a folder",
62
 
                                    parent=self.window,
63
 
                                    action=gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER,
64
 
                                    buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
65
 
                                             gtk.STOCK_OPEN, gtk.RESPONSE_OK))
66
 
        self._filechooser_dialog.set_default_response(gtk.RESPONSE_OK)
67
 
        self.filechooser = gtk.FileChooserButton(self._filechooser_dialog)
68
 
        self._button_move = gtk.Button(_i18n("_Move"))
69
 
        self._button_move_icon = gtk.Image()
70
 
        self._button_move_icon.set_from_stock(gtk.STOCK_APPLY, gtk.ICON_SIZE_BUTTON)
71
 
        self._button_move.set_image(self._button_move_icon)
72
 
        
73
 
        self._button_move.connect('clicked', self._on_move_clicked)
74
 
        
75
 
        # Set location
76
 
        self._filechooser_dialog.set_current_folder(directory)
77
 
        
78
 
        # Add widgets to dialog
79
 
        self.vbox.add(self._hbox)
80
 
        self._hbox.add(self._label_move_to)
81
 
        self._hbox.add(self.filechooser)
82
 
        self._hbox.set_spacing(5)
83
 
        self.action_area.pack_end(self._button_move)
84
 
        
85
 
        self.vbox.show_all()
 
63
            directory = dirname(self.wt.abspath(self.wtpath + os.sep + self.selected))
 
64
        
 
65
        # Set FileChooser directory
 
66
        self.filechooser = self.glade.get_widget('filechooserbutton_move')
 
67
        self.filechooser.set_filename(directory)
 
68
 
 
69
    def display(self):
 
70
        """ Display the Move dialog. """
 
71
        self.window.show_all()
86
72
 
87
73
    @show_bzr_error
88
 
    def _on_move_clicked(self, widget):
 
74
    def move(self, widget):
89
75
        destination = self.filechooser.get_filename()
90
 
        
91
 
        if destination == None:
92
 
            error_dialog(_i18n('No folder was selected'),
93
 
                         _i18n('Please select a folder to move the selected file to'))
94
 
            return
95
 
        
 
76
 
96
77
        filename = self.selected
97
78
            
98
79
        if filename is None:
111
92
            return
112
93
 
113
94
        wt1.move([source], wt1.relpath(destination))
114
 
        
115
 
        self.response(gtk.RESPONSE_OK)
 
95
        self.close()
 
96
    
 
97
    def close(self, widget=None):
 
98
        self.window.destroy()