And the rename dialog... getting there. :) 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: 8a786ce97b179d9791dc064364b36982091ac9dc # timestamp: 2008-07-17 23:32: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:32:21 +0000 @@ -731,9 +731,12 @@ def on_menuitem_file_rename_activate(self, widget): """ File/Rename... menu handler. """ - from rename import OliveRename - rename = OliveRename(self.wt, self.wtpath, self.get_selected_right()) - rename.display() + from bzrlib.plugins.gtk.olive.rename import RenameDialog + rename = RenameDialog(self.wt, self.wtpath, self.get_selected_right(), self.window) + response = rename.run() + rename.destroy() + if response == gtk.RESPONSE_OK: + self.refresh_right() def on_menuitem_remove_file_activate(self, widget): """ Remove (unversion) selected file. """
=== modified file 'olive/rename.py'
--- olive/rename.py 2008-05-05 18:16:46 +0000
+++ olive/rename.py 2008-07-17 21:32:21 +0000
@@ -23,49 +23,60 @@
pass
import gtk
-import gtk.glade
import bzrlib.errors as errors
from bzrlib.workingtree import WorkingTree
-from errors import show_bzr_error
+from bzrlib.plugins.gtk import _i18n
from bzrlib.plugins.gtk.dialog import error_dialog
-from guifiles import GLADEFILENAME
-from bzrlib.plugins.gtk import _i18n
-
-
-class OliveRename:
+from bzrlib.plugins.gtk.errors import show_bzr_error
+
+
+class RenameDialog(gtk.Dialog):
""" Display the Rename dialog and perform the needed actions. """
- def __init__(self, wt, wtpath, selected=[]):
- """ Initialize the Rename dialog. """
- self.glade = gtk.glade.XML(GLADEFILENAME, 'window_rename')
-
- self.window = self.glade.get_widget('window_rename')
- self.entry = self.glade.get_widget('entry_rename')
-
- # Dictionary for signal_autoconnect
- dic = { "on_button_rename_rename_clicked": self.rename,
- "on_button_rename_cancel_clicked": self.close }
-
- # Connect the signals to the handlers
- self.glade.signal_autoconnect(dic)
-
+
+ def __init__(self, wt, wtpath, selected=None, parent=None):
+ """ Initialize the Rename file dialog. """
+ gtk.Dialog.__init__(self, title="Olive - Rename files",
+ parent=parent,
+ flags=0,
+ buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
+
+ # Get arguments
self.wt = wt
self.wtpath = wtpath
self.selected = selected
- def display(self):
- """ Display the Rename dialog. """
+ # Create widgets
+ self._hbox = gtk.HBox()
+ self._label_rename_to = gtk.Label(_i18n("Rename to"))
+ self._entry = gtk.Entry()
+ self._button_rename = gtk.Button(_i18n("_Rename"))
+ self._button_rename_icon = gtk.Image()
+ self._button_rename_icon.set_from_stock(gtk.STOCK_APPLY, gtk.ICON_SIZE_BUTTON)
+ self._button_rename.set_image(self._button_rename_icon)
+
+ self._entry.connect('activate', self._on_rename_clicked)
+ self._button_rename.connect('clicked', self._on_rename_clicked)
+
+ # Set text
if self.selected is not None:
- self.entry.set_text(self.selected)
-
- self.window.show_all()
-
+ self._entry.set_text(self.selected)
+
+ # Add widgets to dialog
+ self.vbox.add(self._hbox)
+ self._hbox.add(self._label_rename_to)
+ self._hbox.add(self._entry)
+ self._hbox.set_spacing(5)
+ self.action_area.pack_end(self._button_rename)
+
+ self.vbox.show_all()
+
@show_bzr_error
- def rename(self, widget):
+ def _on_rename_clicked(self, widget):
# Get entry
old_filename = self.selected
- new_filename = self.entry.get_text()
+ new_filename = self._entry.get_text()
if old_filename is None:
error_dialog(_i18n('No file was selected'),
@@ -89,7 +100,5 @@
_i18n('The destination is not in the same branch.'))
return
wt1.rename_one(source, destination)
- self.close()
-
- def close(self, widget=None):
- self.window.destroy()
+
+ self.response(gtk.RESPONSE_OK)
# Begin bundle
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
1hzH/xdyRThQkEPG6Ac=
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
