[meld] filediff: Make unsaved change warning specific to reloaded files (#161)



commit 37a8908c85497bf04884b1dae4cee45dde524b95
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Fri Feb 9 06:52:51 2018 +1000

    filediff: Make unsaved change warning specific to reloaded files (#161)
    
    Our "do you want to discard changes?" confirmation was written for the
    revert-to-saved case, which reverts all panes at once. We're now reusing
    it for the reload caused by encoding change, but it's still warning if
    any file has been modified, even though it only reloads one file.
    
    This change makes it so that the unsaved changes check takes a list of
    panes that are being reloaded, and uses that in the encoding handler.

 meld/filediff.py | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
---
diff --git a/meld/filediff.py b/meld/filediff.py
index 4405b0ff..88581712 100644
--- a/meld/filediff.py
+++ b/meld/filediff.py
@@ -236,9 +236,10 @@ class FileDiff(MeldDoc, Component):
                 GObject.BindingFlags.DEFAULT)
 
             def reload_with_encoding(widget, encoding, pane):
-                if not self.check_unsaved_changes():
+                buffer = self.textbuffer[pane]
+                if not self.check_unsaved_changes([buffer]):
                     return
-                self.set_file(pane, self.textbuffer[pane].data.gfile, encoding)
+                self.set_file(pane, buffer.data.gfile, encoding)
 
             def go_to_line(widget, line, pane):
                 self.move_cursor(pane, line, focus=False)
@@ -1704,8 +1705,9 @@ class FileDiff(MeldDoc, Component):
                 return i
         return -1
 
-    def check_unsaved_changes(self):
-        unsaved = [b.data.label for b in self.textbuffer if b.get_modified()]
+    def check_unsaved_changes(self, buffers=None):
+        buffers = buffers or self.textbuffer
+        unsaved = [b.data.label for b in buffers if b.get_modified()]
         if not unsaved:
             return True
 


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