[meld: 16/63] filediff, meldbuffer: Have BufferData record and use a gfile
- From: Kai Willadsen <kaiw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [meld: 16/63] filediff, meldbuffer: Have BufferData record and use a gfile
- Date: Wed, 16 Dec 2015 21:20:18 +0000 (UTC)
commit e5522a83aaab81f6837417280225a6350b437974
Author: Kai Willadsen <kai willadsen gmail com>
Date: Sun Jul 19 12:54:52 2015 +1000
filediff, meldbuffer: Have BufferData record and use a gfile
meld/filediff.py | 25 ++++++++++---------------
meld/meldbuffer.py | 13 ++++++++++---
2 files changed, 20 insertions(+), 18 deletions(-)
---
diff --git a/meld/filediff.py b/meld/filediff.py
index 23e6f20..c245e88 100644
--- a/meld/filediff.py
+++ b/meld/filediff.py
@@ -1024,16 +1024,14 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
return
self._disconnect_buffer_handlers()
- files = list(files)
- for i, f in enumerate(files):
- if not f:
- continue
- if not isinstance(f, unicode):
- files[i] = f = f.decode('utf8')
- absfile = os.path.abspath(f)
- self.fileentry[i].set_filename(absfile)
- self.textbuffer[i].data.reset(absfile)
- self.msgarea_mgr[i].clear()
+
+ files = [(pane, Gio.File.new_for_path(filename))
+ for pane, filename in enumerate(files) if filename]
+
+ for pane, gfile in files:
+ self.fileentry[pane].set_file(gfile)
+ self.textbuffer[pane].data.reset(gfile)
+ self.msgarea_mgr[pane].clear()
self.recompute_label()
self.textview[len(files) >= 2].grab_focus()
@@ -1041,11 +1039,7 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
self.undosequence.clear()
self.linediffer.clear()
- for pane, filename in enumerate(files):
- if not filename:
- continue
-
- gfile = Gio.File.new_for_path(filename)
+ for pane, gfile in files:
sourcefile = GtkSource.File()
sourcefile.set_location(gfile)
@@ -1486,6 +1480,7 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
return False
bufdata.filename = bufdata.label = os.path.abspath(filename)
+ bufdata.gfile = Gio.File.new_for_path(bufdata.filename)
bufdata.savefile = None
self.fileentry[pane].set_filename(bufdata.filename)
self.filelabel_toolitem[pane].set_visible(False)
diff --git a/meld/meldbuffer.py b/meld/meldbuffer.py
index a1ebc29..7a40a52 100644
--- a/meld/meldbuffer.py
+++ b/meld/meldbuffer.py
@@ -107,16 +107,23 @@ class MeldBufferData(GObject.GObject):
GObject.GObject.__init__(self)
self._filename = None
self._label = None
- self.reset(filename=None)
+ self.reset(gfile=None)
- def reset(self, filename):
+ def reset(self, gfile):
+ same_file = gfile and self.gfile and gfile.equal(self.gfile)
+ self.gfile = gfile
self.loaded = False
self.modified = False
self.editable = True
self._monitor = None
self._mtime = None
self._disk_mtime = None
- self.label = self._label if self._filename == filename else filename
+
+ # This is aiming to maintain existing behaviour for filename. The
+ # behaviour is however wrong and should be fixed.
+ filename = gfile.get_path().decode('utf8') if gfile else None
+
+ self.label = self._label if same_file else filename
self.filename = filename
self.savefile = None
self.encoding = None
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]