[Pkg-bazaar-commits] ./bzr-gtk/unstable r534: Merge removal of glade from merge dialog.

Jelmer Vernooij jelmer at samba.org
Fri Apr 10 07:44:38 UTC 2009


------------------------------------------------------------
revno: 534
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: trunk
timestamp: Fri 2008-07-18 12:26:06 +0200
message:
  Merge removal of glade from merge dialog.
modified:
  NEWS
  merge.py
  olive/__init__.py
    ------------------------------------------------------------
    revno: 533.1.1
    committer: Jasper Groenewegen <colbrac at xs4all.nl>
    branch nick: mergedialog
    timestamp: Thu 2008-07-17 23:00:10 +0200
    message:
      Replace MergeDialog with glade-less version. 
      Move merge.py to olive/merge.py
    renamed:
      merge.py => olive/merge.py
    modified:
      olive/__init__.py
      olive/merge.py
    ------------------------------------------------------------
    revno: 533.2.1
    committer: Jasper Groenewegen <colbrac at xs4all.nl>
    branch nick: mergedialog
    timestamp: Fri 2008-07-18 01:15:19 +0200
    message:
      Merge dialog
    renamed:
      merge.py => olive/merge.py
    modified:
      olive/__init__.py
      olive/merge.py
    ------------------------------------------------------------
    revno: 533.2.2
    committer: Jasper Groenewegen <colbrac at xs4all.nl>
    branch nick: mergedialog
    timestamp: Fri 2008-07-18 01:15:43 +0200
    message:
      Move merge.py back to main directory
    renamed:
      olive/merge.py => merge.py
-------------- next part --------------
=== modified file 'NEWS'
--- a/NEWS	2008-07-01 21:56:25 +0000
+++ b/NEWS	2008-07-18 10:26:06 +0000
@@ -51,6 +51,8 @@
 
   * Share revision context menu and main revision menu in bzr viz. (Jelmer Vernooij)
 
+  * Remove glade from merge dialog. (Jasper Groenewegen)
+
 0.94.0    2008-05-04
 
  CHANGES

=== modified file 'merge.py'
--- a/merge.py	2008-05-05 18:16:46 +0000
+++ b/merge.py	2008-07-17 23:15:43 +0000
@@ -23,48 +23,63 @@
     pass
 
 import gtk
-import gtk.glade
 
 from bzrlib.branch import Branch
 import bzrlib.errors as errors
+
 from bzrlib.plugins.gtk import _i18n
-
-from dialog import error_dialog, info_dialog, warning_dialog
-from errors import show_bzr_error
-from olive.guifiles import GLADEFILENAME
-
-
-class MergeDialog:
+from bzrlib.plugins.gtk.dialog import error_dialog, info_dialog, warning_dialog
+from bzrlib.plugins.gtk.errors import show_bzr_error
+
+
+class MergeDialog(gtk.Dialog):
     """ Display the Merge dialog and perform the needed actions. """
-    def __init__(self, wt, wtpath,default_branch_path=None):
+    
+    def __init__(self, wt, wtpath, default_branch_path=None, parent=None):
         """ Initialize the Merge dialog. """
-        self.glade = gtk.glade.XML(GLADEFILENAME, 'window_merge', 'olive-gtk')
-        
-        self.window = self.glade.get_widget('window_merge')
-        
-        # Dictionary for signal_autoconnect
-        dic = { "on_button_merge_merge_clicked": self.merge,
-                "on_button_merge_cancel_clicked": self.close,
-                "on_button_merge_open_clicked": self.open }
-        
-        # Connect the signals to the handlers
-        self.glade.signal_autoconnect(dic)
-
+        gtk.Dialog.__init__(self, title="Olive - Merge",
+                                  parent=parent,
+                                  flags=0,
+                                  buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
+        
+        # Get arguments
         self.wt = wt
         self.wtpath = wtpath
         
-        # Get some widgets
-        self.entry = self.glade.get_widget('entry_merge')
-        if default_branch_path:
-            self.entry.set_text(default_branch_path)
-
-    def display(self):
-        """ Display the Add file(s) dialog. """
-        self.window.show_all()
+        directory = os.path.dirname(self.wt.abspath(self.wtpath))
+        
+        # Create widgets
+        self._hbox = gtk.HBox()
+        self._label_merge_from = gtk.Label(_i18n("Merge from"))
+        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_merge = gtk.Button(_i18n("_Merge"))
+        self._button_merge_icon = gtk.Image()
+        self._button_merge_icon.set_from_stock(gtk.STOCK_APPLY, gtk.ICON_SIZE_BUTTON)
+        self._button_merge.set_image(self._button_merge_icon)
+        
+        self._button_merge.connect('clicked', self._on_merge_clicked)
+        
+        # Set location
+        self._filechooser_dialog.set_current_folder(directory)
+        
+        # Add widgets to dialog
+        self.vbox.add(self._hbox)
+        self._hbox.add(self._label_merge_from)
+        self._hbox.add(self.filechooser)
+        self._hbox.set_spacing(5)
+        self.action_area.pack_end(self._button_merge)
+        
+        self.vbox.show_all()
 
     @show_bzr_error
-    def merge(self, widget):
-        branch = self.entry.get_text()
+    def _on_merge_clicked(self, widget):
+        branch = self._filechooser.get_filename()
         if branch == "":
             error_dialog(_i18n('Branch not given'),
                          _i18n('Please specify a branch to merge from.'))
@@ -78,7 +93,6 @@
             error_dialog(_i18n('Bazaar command error'), str(errmsg))
             return
         
-        self.close()
         if conflicts == 0:
             # No conflicts found.
             info_dialog(_i18n('Merge successful'),
@@ -87,19 +101,5 @@
             # There are conflicts to be resolved.
             warning_dialog(_i18n('Conflicts encountered'),
                            _i18n('Please resolve the conflicts manually before committing.'))
-    
-    def open(self, widget):
-        fcd = 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))
-        fcd.set_default_response(gtk.RESPONSE_OK)
-        
-        if fcd.run() == gtk.RESPONSE_OK:
-            self.entry.set_text(fcd.get_filename())
-        
-        fcd.destroy()
-        
-    def close(self, widget=None):
-        self.window.destroy()
+        
+        self.response(gtk.RESPONSE_OK)

=== modified file 'olive/__init__.py'
--- a/olive/__init__.py	2008-07-01 21:56:25 +0000
+++ b/olive/__init__.py	2008-07-17 21:00:10 +0000
@@ -537,15 +537,17 @@
     
     def on_menuitem_branch_merge_activate(self, widget):
         """ Branch/Merge... menu handler. """
-        from bzrlib.plugins.gtk.merge import MergeDialog
+        from bzrlib.plugins.gtk.olive.merge import MergeDialog
         
         if self.check_for_changes():
             error_dialog(_i18n('There are local changes in the branch'),
                          _i18n('Please commit or revert the changes before merging.'))
         else:
-            parent_branch_path = self.wt.branch.get_parent()
-            merge = MergeDialog(self.wt, self.wtpath,default_branch_path=parent_branch_path )
-            merge.display()
+            merge = MergeDialog(self.wt, self.wtpath, parent_branch_path, self.window)
+            response = merge.run()
+            merge.destroy()
+            if response == gtk.RESPONSE_OK:
+                self.refresh_right()
 
     @show_bzr_error
     def on_menuitem_branch_missing_revisions_activate(self, widget):



More information about the Pkg-bazaar-commits mailing list