[meld] Add Save All action for file comparisons (bgo#699068)



commit 89302af24015b747b5bfef834730185d86f5f874
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Sat May 4 09:10:51 2013 +1000

    Add Save All action for file comparisons (bgo#699068)
    
    This is just a convenience action to save all curently modified files
    open in the current comparison.

 data/ui/filediff-ui.xml |    1 +
 meld/filediff.py        |    7 ++++++-
 2 files changed, 7 insertions(+), 1 deletions(-)
---
diff --git a/data/ui/filediff-ui.xml b/data/ui/filediff-ui.xml
index 4b91298..443e380 100644
--- a/data/ui/filediff-ui.xml
+++ b/data/ui/filediff-ui.xml
@@ -10,6 +10,7 @@
   <menubar name="Menubar">
     <menu action="FileMenu">
       <placeholder name="RevertPlaceholder">
+        <menuitem action="SaveAll"/>
         <menuitem action="Revert"/>
       </placeholder>
       <placeholder name="FileActionsPlaceholder">
diff --git a/meld/filediff.py b/meld/filediff.py
index 8545d22..54784fa 100644
--- a/meld/filediff.py
+++ b/meld/filediff.py
@@ -221,6 +221,9 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
             ("MakePatch", None, _("Format as Patch..."), None,
                 _("Create a patch using differences between files"),
                 self.make_patch),
+            ("SaveAll", None, _("Save A_ll"), "<Ctrl><Shift>L",
+                _("Save all files in the current comparison"),
+                self.on_save_all_activate),
             ("Revert", gtk.STOCK_REVERT_TO_SAVED, None, None,
                 _("Revert files to their saved versions"),
                 self.on_revert_activate),
@@ -1001,6 +1004,8 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
         modified = False if pane == -1 else self.textbuffer[pane].data.modified
         if self.main_actiongroup:
             self.main_actiongroup.get_action("Save").set_sensitive(modified)
+        any_modified = any(b.data.modified for b in self.textbuffer)
+        self.actiongroup.get_action("SaveAll").set_sensitive(any_modified)
 
     def recompute_label(self):
         self._set_save_action_sensitivity()
@@ -1608,7 +1613,7 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
         if pane >= 0:
             self.save_file(pane, True)
 
-    def save_all(self):
+    def on_save_all_activate(self, action):
         for i in range(self.num_panes):
             if self.textbuffer[i].data.modified:
                 self.save_file(i)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]