[gitg] Added ignore-whitespace option for diff
- From: Jesse van den Kieboom <jessevdk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gitg] Added ignore-whitespace option for diff
- Date: Mon, 30 Jun 2014 21:03:48 +0000 (UTC)
commit c9b0d2994952ce7e715340c2e33798f7afcf84f6
Author: Jesse van den Kieboom <jessevdk gnome org>
Date: Mon Jun 30 22:02:23 2014 +0200
Added ignore-whitespace option for diff
data/org.gnome.gitg.gschema.xml.in.in | 5 +++
libgitg/gitg-diff-view.vala | 47 +++++++++++++++++++++++++++++++++
2 files changed, 52 insertions(+), 0 deletions(-)
---
diff --git a/data/org.gnome.gitg.gschema.xml.in.in b/data/org.gnome.gitg.gschema.xml.in.in
index 2563b01..57a2d4c 100644
--- a/data/org.gnome.gitg.gschema.xml.in.in
+++ b/data/org.gnome.gitg.gschema.xml.in.in
@@ -166,4 +166,9 @@
<default>false</default>
</key>
</schema>
+ <schema gettext-domain="@GETTEXT_PACKAGE@" id="org.gnome.gitg.state.diff"
path="/org/gnome/gitg/state/diff/">
+ <key name="ignore-whitespace" type="b">
+ <default>false</default>
+ </key>
+ </schema>
</schemalist>
diff --git a/libgitg/gitg-diff-view.vala b/libgitg/gitg-diff-view.vala
index d0dde3e..deadfac 100644
--- a/libgitg/gitg-diff-view.vala
+++ b/libgitg/gitg-diff-view.vala
@@ -104,6 +104,22 @@ namespace Gitg
public bool unstaged { get; set; default = false; }
public int tab_width { get; set; default = 4; }
+ public bool ignore_whitespace
+ {
+ get { return (options.flags & Ggit.DiffOption.IGNORE_WHITESPACE) != 0; }
+ set
+ {
+ if (value)
+ {
+ options.flags |= Ggit.DiffOption.IGNORE_WHITESPACE;
+ }
+ else
+ {
+ options.flags &= ~Ggit.DiffOption.IGNORE_WHITESPACE;
+ }
+ }
+ }
+
static construct
{
s_diff_map = new Gee.HashMap<string, DiffView>();
@@ -483,6 +499,37 @@ namespace Gitg
return ret;
}
+
+ protected override bool context_menu(WebKit.ContextMenu menu,
+ Gdk.Event event,
+ WebKit.HitTestResult hit_test_result)
+ {
+ var m = new Gtk.Menu();
+
+ var item = new Gtk.CheckMenuItem.with_label(_("Ignore whitespace changes"));
+ item.active = ignore_whitespace;
+
+ item.toggled.connect((i) => {
+ ignore_whitespace = i.active;
+ });
+
+ m.append(item);
+ m.show_all();
+
+ m.attach_to_widget(this, null);
+
+ if (event.type == Gdk.EventType.BUTTON_PRESS ||
+ event.type == Gdk.EventType.BUTTON_RELEASE)
+ {
+ m.popup(null, null, null, event.button.button, event.button.time);
+ }
+ else
+ {
+ m.popup(null, null, null, 0, Gdk.CURRENT_TIME);
+ }
+
+ return true;
+ }
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]