[meld: 8/63] filediff: Do less work when starting a load, and de-yieldify



commit 7d444bf47ae8ea3bf73e63392cfd96113e5b6f6a
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Sun Jul 19 10:19:42 2015 +1000

    filediff: Do less work when starting a load, and de-yieldify
    
    Since we're now doing async file loading, there's no need to do our
    cooperative multitasking dance here. While we're at it, we didn't need
    to be doing some of the other on-load stuff, so stop it.

 meld/filediff.py  |   15 +++++----------
 meld/filemerge.py |    3 +--
 2 files changed, 6 insertions(+), 12 deletions(-)
---
diff --git a/meld/filediff.py b/meld/filediff.py
index b75ac01..e741484 100644
--- a/meld/filediff.py
+++ b/meld/filediff.py
@@ -1034,22 +1034,18 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
         self.recompute_label()
         self.textview[len(files) >= 2].grab_focus()
         self._connect_buffer_handlers()
-        self.scheduler.add_task(self._set_files_internal(files))
+        self._set_files_internal(files)
 
     def get_comparison(self):
         files = [b.data.filename for b in self.textbuffer[:self.num_panes]]
         return recent.TYPE_FILE, files
 
     def _load_files(self, files, textbuffers):
-        self.undosequence.clear()
-        yield _("[%s] Set num panes") % self.label_text
-        self.set_num_panes( len(files) )
+        if len(files) != self.num_panes:
+            return
         self._disconnect_buffer_handlers()
+        self.undosequence.clear()
         self.linediffer.clear()
-        self.queue_draw()
-
-        yield _("[%s] Opening files") % self.label_text
-        tasks = []
 
         for pane, filename in enumerate(files):
             if not filename:
@@ -1154,8 +1150,7 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
             self.textbuffer[i].set_language(langs[i])
 
     def _set_files_internal(self, files):
-        for i in self._load_files(files, self.textbuffer):
-            yield i
+        self._load_files(files, self.textbuffer)
 
     def _compare_files_internal(self):
         for i in self._diff_files():
diff --git a/meld/filemerge.py b/meld/filemerge.py
index 9f2e85c..8d3d637 100644
--- a/meld/filemerge.py
+++ b/meld/filemerge.py
@@ -36,8 +36,7 @@ class FileMerge(filediff.FileDiff):
 
     def _set_files_internal(self, files):
         self.textview[1].set_buffer(meldbuffer.MeldBuffer())
-        for i in self._load_files(files, self.textbuffer):
-            yield i
+        self._load_files(files, self.textbuffer)
 
     def _compare_files_internal(self):
         for i in self._merge_files():


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