Move dialog..

Jasper
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: [EMAIL PROTECTED]
# target_branch: https://code.launchpad.net/~bzr-gtk/bzr-gtk/trunk
# testament_sha1: 368026c14faedbe0a10ba85f39d32c8bcd69d38b
# timestamp: 2008-07-17 23:17:27 +0200
# source_branch: https://code.launchpad.net/~bzr-gtk/bzr-gtk/trunk
# base_revision_id: [EMAIL PROTECTED]
# 
# Begin patch
=== modified file 'olive/__init__.py'
--- olive/__init__.py	2008-07-01 21:56:25 +0000
+++ olive/__init__.py	2008-07-17 21:16:27 +0000
@@ -725,9 +725,12 @@
     
     def on_menuitem_file_move_activate(self, widget):
         """ File/Move... menu handler. """
-        from move import OliveMove
-        move = OliveMove(self.wt, self.wtpath, self.get_selected_right())
-        move.display()
+        from bzrlib.plugins.gtk.olive.move import MoveDialog
+        move = MoveDialog(self.wt, self.wtpath, self.get_selected_right(), self.window)
+        response = move.run()
+        move.destroy()
+        if response == gtk.RESPONSE_OK:
+            self.refresh_right()
     
     def on_menuitem_file_rename_activate(self, widget):
         """ File/Rename... menu handler. """

=== modified file 'olive/move.py'
--- olive/move.py	2008-06-28 16:59:50 +0000
+++ olive/move.py	2008-07-17 21:16:27 +0000
@@ -15,7 +15,6 @@
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
 import os
-from os.path import dirname
 
 try:
     import pygtk
@@ -24,7 +23,6 @@
     pass
 
 import gtk
-import gtk.glade
 
 import bzrlib.errors as errors
 from bzrlib.workingtree import WorkingTree
@@ -32,24 +30,19 @@
 from bzrlib.plugins.gtk import _i18n
 from bzrlib.plugins.gtk.dialog import error_dialog
 from bzrlib.plugins.gtk.errors import show_bzr_error
-from guifiles import GLADEFILENAME
-
-
-class OliveMove:
+
+
+class MoveDialog(gtk.Dialog):
     """ Display the Move dialog and perform the needed actions. """
-    def __init__(self, wt, wtpath, selected=[]):
+    
+    def __init__(self, wt, wtpath, selected, parent=None):
         """ Initialize the Move dialog. """
-        self.glade = gtk.glade.XML(GLADEFILENAME, 'window_move', 'olive-gtk')
-        
-        self.window = self.glade.get_widget('window_move')
-        
-        # Dictionary for signal_autoconnect
-        dic = { "on_button_move_move_clicked": self.move,
-                "on_button_move_cancel_clicked": self.close }
-        
-        # Connect the signals to the handlers
-        self.glade.signal_autoconnect(dic)
-        
+        gtk.Dialog.__init__(self, title="Olive - Move",
+                                  parent=parent,
+                                  flags=0,
+                                  buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
+        
+        # Get arguments
         self.wt = wt
         self.wtpath = wtpath
         self.selected = selected
@@ -58,22 +51,48 @@
             self.selected = ""
         
         if self.wtpath == "":
-            directory = dirname(self.wt.abspath(self.selected))
+            directory = os.path.dirname(self.wt.abspath(self.selected))
         else:
-            directory = dirname(self.wt.abspath(self.wtpath + os.sep + self.selected))
-        
-        # Set FileChooser directory
-        self.filechooser = self.glade.get_widget('filechooserbutton_move')
-        self.filechooser.set_filename(directory)
-
-    def display(self):
-        """ Display the Move dialog. """
-        self.window.show_all()
+            directory = os.path.dirname(self.wt.abspath(self.wtpath + os.sep + self.selected))
+        
+        # Create widgets
+        self._hbox = gtk.HBox()
+        self._label_move_to = gtk.Label(_i18n("Move to"))
+        self._filechooser_dialog = gtk.FileChooserDialog(title="Please select a folder",
+                                    parent=self.window,
+                                    action=gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER,
+                                    buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
+                                             gtk.STOCK_OPEN, gtk.RESPONSE_OK))
+        self._filechooser_dialog.set_default_response(gtk.RESPONSE_OK)
+        self.filechooser = gtk.FileChooserButton(self._filechooser_dialog)
+        self._button_move = gtk.Button(_i18n("_Move"))
+        self._button_move_icon = gtk.Image()
+        self._button_move_icon.set_from_stock(gtk.STOCK_APPLY, gtk.ICON_SIZE_BUTTON)
+        self._button_move.set_image(self._button_move_icon)
+        
+        self._button_move.connect('clicked', self._on_move_clicked)
+        
+        # Set location
+        self._filechooser_dialog.set_current_folder(directory)
+        
+        # Add widgets to dialog
+        self.vbox.add(self._hbox)
+        self._hbox.add(self._label_move_to)
+        self._hbox.add(self.filechooser)
+        self._hbox.set_spacing(5)
+        self.action_area.pack_end(self._button_move)
+        
+        self.vbox.show_all()
 
     @show_bzr_error
-    def move(self, widget):
+    def _on_move_clicked(self, widget):
         destination = self.filechooser.get_filename()
-
+        
+        if destination == None:
+            error_dialog(_i18n('No folder was selected'),
+                         _i18n('Please select a folder to move the selected file to'))
+            return
+        
         filename = self.selected
             
         if filename is None:
@@ -92,7 +111,5 @@
             return
 
         wt1.move([source], wt1.relpath(destination))
-        self.close()
-    
-    def close(self, widget=None):
-        self.window.destroy()
+        
+        self.response(gtk.RESPONSE_OK)

# Begin bundle
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
BQWV2j/F3JFOFCQIPmDpgA==

Attachment: signature.asc
Description: OpenPGP digital signature

-- 
bzr-gtk mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.canonical.com/mailman/listinfo/bzr-gtk

Reply via email to