[meld: 57/63] Merge branch 'master' into Gio
- From: Kai Willadsen <kaiw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [meld: 57/63] Merge branch 'master' into Gio
- Date: Wed, 16 Dec 2015 21:23:46 +0000 (UTC)
commit 5f842847d8003f2b1303285c65590778337251c5
Merge: 3a8dae9 5f2e3f4
Author: Kai Willadsen <kai willadsen gmail com>
Date: Sun Nov 15 09:15:08 2015 +1000
Merge branch 'master' into Gio
NEWS | 65 +
bin/meld | 3 +-
data/styles/meld-base.xml | 1 +
data/styles/meld-dark.xml | 1 +
data/ui/filediff.ui | 16 +-
data/ui/preferences.ui | 55 +-
data/ui/vcview.ui | 7 +-
help/cs/cs.po | 26 +-
meld/build_helpers.py | 14 +-
meld/conf.py | 2 +-
meld/diffmap.py | 34 +-
meld/diffutil.py | 8 +-
meld/filediff.py | 29 +-
meld/gutterrendererchunk.py | 2 +-
meld/linkmap.py | 3 +-
meld/matchers.py | 2 +-
meld/meldapp.py | 2 +-
meld/meldbuffer.py | 7 +-
meld/meldwindow.py | 19 +-
meld/merge.py | 2 +-
meld/misc.py | 4 +-
meld/patchdialog.py | 12 +-
meld/recent.py | 6 +-
meld/sourceview.py | 34 +-
meld/tree.py | 4 +-
meld/ui/emblemcellrenderer.py | 5 +-
meld/ui/historyentry.py | 2 +-
meld/ui/notebooklabel.py | 9 +-
meld/ui/statusbar.py | 3 +-
meld/undo.py | 3 +-
meld/vc/_vc.py | 12 +
meld/vc/bzr.py | 1 -
meld/vc/git.py | 62 +-
meld/vc/svn.py | 3 +-
meld/vcview.py | 4 +-
po/cs.po | 275 +-
po/es.po | 6068 +++++++++++++++++++++--------------------
po/it.po | 1422 ++++++----
po/pl.po | 94 +-
po/pt.po | 470 ++--
po/pt_BR.po | 1201 +++++----
setup_win32.py | 4 +-
test/test_matchers.py | 6 +-
43 files changed, 5417 insertions(+), 4585 deletions(-)
---
diff --cc meld/filediff.py
index 8be01d8,301b316..3630668
--- a/meld/filediff.py
+++ b/meld/filediff.py
@@@ -841,10 -870,9 +861,11 @@@ class FileDiff(melddoc.MeldDoc, gnomegl
messagetype=Gtk.MessageType.QUESTION)
if resolve_response == Gtk.ResponseType.OK:
- conflict_file = self.textbuffer[1].data.filename
+ bufdata = self.textbuffer[1].data
+ conflict_file = bufdata.savefile or bufdata.filename
parent.command('resolve', [conflict_file])
+ elif response == Gtk.ResponseType.CANCEL:
+ self.state = melddoc.STATE_NORMAL
return response
diff --cc meld/patchdialog.py
index dedc485,171e99b..916a45d
--- a/meld/patchdialog.py
+++ b/meld/patchdialog.py
@@@ -17,8 -17,7 +17,9 @@@
import difflib
import os
+ from gi.repository import Gdk
+from gi.repository import Gio
+from gi.repository import GLib
from gi.repository import Gtk
from gi.repository import GtkSource
@@@ -94,54 -94,38 +97,57 @@@ class PatchDialog(gnomeglade.Component)
buf = self.textview.get_buffer()
text0, text1 = texts[indices[0]], texts[indices[1]]
name0, name1 = names[indices[0]], names[indices[1]]
- diff_text = "".join(difflib.unified_diff(text0, text1, name0, name1))
+
+ diff = difflib.unified_diff(text0, text1, name0, name1)
+ unicodeify = lambda x: x.decode('utf8') if isinstance(x, str) else x
+ diff_text = "".join(unicodeify(d) for d in diff)
buf.set_text(diff_text)
+ def save_patch(self, filename):
+ buf = self.textview.get_buffer()
+ sourcefile = GtkSource.File.new()
+ targetfile = Gio.File.new_for_path(filename)
+ saver = GtkSource.FileSaver.new_with_target(
+ buf, sourcefile, targetfile)
+ saver.save_async(
+ GLib.PRIORITY_HIGH,
+ callback=self.file_saved_cb,
+ )
+
+ def file_saved_cb(self, saver, result, *args):
+ gfile = saver.get_location()
+ try:
+ saver.save_finish(result)
+ except GLib.Error as err:
+ filename = GLib.markup_escape_text(
+ gfile.get_parse_name()).decode('utf-8')
+ error_dialog(
+ primary=_("Could not save file %s.") % filename,
+ secondary=_("Couldn't save file due to:\n%s") % (
+ GLib.markup_escape_text(str(err))),
+ )
+
def run(self):
self.update_patch()
- while 1:
- result = self.widget.run()
- if result < 0:
- break
+ result = self.widget.run()
+ if result < 0:
+ self.widget.hide()
+ return
+ # Copy patch to clipboard
+ if result == 1:
buf = self.textview.get_buffer()
start, end = buf.get_bounds()
- clip = Gtk.Clipboard.get()
- clip.set_text(buf.get_text(start, end, False))
- txt = text_type(buf.get_text(start, end, False), 'utf8')
-
- # Copy patch to clipboard
- if result == 1:
- clip = Gtk.Clipboard.get_default(Gdk.Display.get_default())
- clip.set_text(txt, -1)
- clip.store()
- break
- # Save patch as a file
- else:
- # FIXME: These filediff methods are actually general utility.
- filename = self.filediff._get_filename_for_saving(
- _("Save Patch"))
- if filename:
- txt = txt.encode('utf-8')
- self.filediff._save_text_to_filename(filename, txt)
- break
++ clip = Gtk.Clipboard.get_default(Gdk.Display.get_default())
++ clip.set_text(buf.get_text(start, end, False), -1)
+ clip.store()
+ # Save patch as a file
+ else:
+ # FIXME: These filediff methods are actually general utility.
+ filename = self.filediff._get_filename_for_saving(
+ _("Save Patch"))
+ if filename:
+ self.save_patch(filename)
self.widget.hide()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]