[gitg: 6/6] Add diff highlight preference



commit a8eda0f3122f184ef290cc16a1612e6a390b5281
Author: Jesse van den Kieboom <jessevdk gnome org>
Date:   Sun Jan 3 20:46:23 2016 +0100

    Add diff highlight preference

 data/org.gnome.gitg.gschema.xml.in.in            |    8 +
 gitg/Makefile.am                                 |    1 -
 gitg/commit/gitg-commit.vala                     |   14 +-
 gitg/preferences/gitg-preferences-dialog.vala    |    1 -
 gitg/preferences/gitg-preferences-diff.vala      |  104 ------------
 gitg/preferences/gitg-preferences-interface.vala |    8 +
 gitg/resources/gitg-resources.xml.in             |    1 -
 gitg/resources/ui/gitg-preferences-diff.ui       |  192 ----------------------
 gitg/resources/ui/gitg-preferences-interface.ui  |   44 +++++
 libgitg/gitg-diff-view.vala                      |    3 +
 plugins/diff/gitg-diff.vala                      |   23 ++--
 po/POTFILES.in                                   |    2 -
 po/POTFILES.skip                                 |    1 -
 13 files changed, 82 insertions(+), 320 deletions(-)
---
diff --git a/data/org.gnome.gitg.gschema.xml.in.in b/data/org.gnome.gitg.gschema.xml.in.in
index 03ee81c..bf5e751 100644
--- a/data/org.gnome.gitg.gschema.xml.in.in
+++ b/data/org.gnome.gitg.gschema.xml.in.in
@@ -60,6 +60,14 @@
         Automatically update when external changes to .git are detected
       </_description>
     </key>
+    <key name="enable-diff-highlighting" type="b">
+      <default>true</default>
+      <_summary>Enable Diff Highlighting</_summary>
+      <_description>
+         Setting that determines whether to enable syntax highlighting in diff
+         views.
+      </_description>
+    </key>
   </schema>
   <schema gettext-domain="@GETTEXT_PACKAGE@" id="org.gnome.gitg.preferences.history" 
path="/org/gnome/gitg/preferences/history/">
     <key name="collapse-inactive-lanes" type="i">
diff --git a/gitg/Makefile.am b/gitg/Makefile.am
index e57c41a..cba3577 100644
--- a/gitg/Makefile.am
+++ b/gitg/Makefile.am
@@ -98,7 +98,6 @@ gitg_gitg_VALASOURCES =                                               \
        gitg/history/gitg-history.vala                          \
        gitg/preferences/gitg-preferences-commit.vala           \
        gitg/preferences/gitg-preferences-dialog.vala           \
-       gitg/preferences/gitg-preferences-diff.vala             \
        gitg/preferences/gitg-preferences-history.vala          \
        gitg/preferences/gitg-preferences-interface.vala        \
        libgitg-ext/libgitg-ext-1.0.vapi                        \
diff --git a/gitg/commit/gitg-commit.vala b/gitg/commit/gitg-commit.vala
index 156bd71..10f9632 100644
--- a/gitg/commit/gitg-commit.vala
+++ b/gitg/commit/gitg-commit.vala
@@ -1908,22 +1908,24 @@ namespace GitgCommit
                        settings.bind("context-lines",
                                      d_main.diff_view,
                                      "context-lines",
-                                     SettingsBindFlags.GET |
-                                     SettingsBindFlags.SET);
+                                     SettingsBindFlags.GET | SettingsBindFlags.SET);
 
                        settings.bind("tab-width",
                                      d_main.diff_view,
                                      "tab-width",
-                                     SettingsBindFlags.GET |
-                                     SettingsBindFlags.SET);
+                                     SettingsBindFlags.GET | SettingsBindFlags.SET);
 
                        settings = new Settings("org.gnome.gitg.preferences.interface");
 
                        settings.bind("use-gravatar",
                                      d_main.diff_view,
                                      "use-gravatar",
-                                     SettingsBindFlags.GET |
-                                     SettingsBindFlags.SET);
+                                     SettingsBindFlags.GET | SettingsBindFlags.SET);
+
+                       settings.bind("enable-diff-highlighting",
+                                     d_main.diff_view,
+                                     "highlight",
+                                     SettingsBindFlags.GET | SettingsBindFlags.SET);
 
                        d_main.diff_view.bind_property("has-selection",
                                                       d_main.button_stage,
diff --git a/gitg/preferences/gitg-preferences-dialog.vala b/gitg/preferences/gitg-preferences-dialog.vala
index 84a47ed..c013b9f 100644
--- a/gitg/preferences/gitg-preferences-dialog.vala
+++ b/gitg/preferences/gitg-preferences-dialog.vala
@@ -67,7 +67,6 @@ class PreferencesDialog : Gtk.Dialog, Gtk.Buildable
                add_page(new PreferencesInterface(), pages);
                add_page(new PreferencesHistory(), pages);
                add_page(new PreferencesCommit(), pages);
-               add_page(new PreferencesDiff(), pages);
 
                ext.foreach((s, info, e) => {
                        add_page(e as GitgExt.Preferences, pages);
diff --git a/gitg/preferences/gitg-preferences-interface.vala 
b/gitg/preferences/gitg-preferences-interface.vala
index 6456050..aea3b69 100644
--- a/gitg/preferences/gitg-preferences-interface.vala
+++ b/gitg/preferences/gitg-preferences-interface.vala
@@ -40,6 +40,9 @@ public class PreferencesInterface : Gtk.Grid, GitgExt.Preferences
        [GtkChild (name = "monitoring_enabled" )]
        private Gtk.CheckButton d_monitoring_enabled;
 
+       [GtkChild (name = "diff_highlighting_enabled")]
+       private Gtk.CheckButton d_diff_highlighting_enabled;
+
        construct
        {
                d_settings = new Settings("org.gnome.gitg.preferences.interface");
@@ -74,6 +77,11 @@ public class PreferencesInterface : Gtk.Grid, GitgExt.Preferences
                                d_monitoring_enabled,
                                "active",
                                SettingsBindFlags.GET | SettingsBindFlags.SET);
+
+               d_settings.bind("enable-diff-highlighting",
+                               d_diff_highlighting_enabled,
+                               "active",
+                               SettingsBindFlags.GET | SettingsBindFlags.SET);
        }
 
        public override void dispose()
diff --git a/gitg/resources/gitg-resources.xml.in b/gitg/resources/gitg-resources.xml.in
index 3d1fb5e..3ba23df 100644
--- a/gitg/resources/gitg-resources.xml.in
+++ b/gitg/resources/gitg-resources.xml.in
@@ -5,7 +5,6 @@
     <file compressed="true" preprocess="xml-stripblanks">ui/gitg-menus.ui</file>
     <file compressed="true" preprocess="xml-stripblanks">ui/gitg-preferences-history.ui</file>
     <file compressed="true" preprocess="xml-stripblanks">ui/gitg-preferences-commit.ui</file>
-    <file compressed="true" preprocess="xml-stripblanks">ui/gitg-preferences-diff.ui</file>
     <file compressed="true" preprocess="xml-stripblanks">ui/gitg-preferences-interface.ui</file>
     <file compressed="true" preprocess="xml-stripblanks">ui/gitg-preferences.ui</file>
     <file compressed="true" preprocess="xml-stripblanks">ui/gitg-clone-dialog.ui</file>
diff --git a/gitg/resources/ui/gitg-preferences-interface.ui b/gitg/resources/ui/gitg-preferences-interface.ui
index 821dc95..34ea7f7 100644
--- a/gitg/resources/ui/gitg-preferences-interface.ui
+++ b/gitg/resources/ui/gitg-preferences-interface.ui
@@ -204,6 +204,50 @@
             <property name="top_attach">7</property>
           </packing>
         </child>
+        <child>
+          <object class="GtkLabel" id="label6">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="halign">start</property>
+            <property name="label" translatable="yes">Diff</property>
+            <property name="margin_top">12</property>
+            <attributes>
+              <attribute name="weight" value="bold"/>
+            </attributes>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">8</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkGrid" id="grid6">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="margin_start">12</property>
+            <property name="hexpand">True</property>
+            <property name="row_spacing">6</property>
+            <child>
+              <object class="GtkCheckButton" id="diff_highlighting_enabled">
+                <property name="label" translatable="yes">Enable syntax highlighting of source code in diff 
views</property>
+                <property name="use_action_appearance">False</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">False</property>
+                <property name="halign">start</property>
+                <property name="draw_indicator">True</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">0</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">9</property>
+          </packing>
+        </child>
       </object>
       <packing>
         <property name="left_attach">0</property>
diff --git a/libgitg/gitg-diff-view.vala b/libgitg/gitg-diff-view.vala
index b7ae386..0584e5f 100644
--- a/libgitg/gitg-diff-view.vala
+++ b/libgitg/gitg-diff-view.vala
@@ -308,6 +308,7 @@ public class Gitg.DiffView : Gtk.Grid
        private void update_diff(Ggit.Diff diff, bool preserve_expanded, Cancellable? cancellable)
        {
                var files = new Gee.ArrayList<Gitg.DiffViewFile>();
+
                Gitg.DiffViewFile? current_file = null;
                Ggit.DiffHunk? current_hunk = null;
                Gee.ArrayList<Ggit.DiffLine>? current_lines = null;
@@ -350,6 +351,8 @@ public class Gitg.DiffView : Gtk.Grid
                                        add_file();
 
                                        current_file = new Gitg.DiffViewFile(repository, delta, 
new_is_workdir, handle_selection);
+                                       this.bind_property("highlight", current_file, "highlight", 
BindingFlags.SYNC_CREATE);
+
                                        return 0;
                                },
 
diff --git a/plugins/diff/gitg-diff.vala b/plugins/diff/gitg-diff.vala
index a1fedec..494242a 100644
--- a/plugins/diff/gitg-diff.vala
+++ b/plugins/diff/gitg-diff.vala
@@ -46,40 +46,39 @@ namespace GitgDiff
                        settings.bind("ignore-whitespace",
                                      d_diff,
                                      "ignore-whitespace",
-                                     SettingsBindFlags.GET |
-                                     SettingsBindFlags.SET);
+                                     SettingsBindFlags.GET | SettingsBindFlags.SET);
 
                        settings.bind("changes-inline",
                                      d_diff,
                                      "changes-inline",
-                                     SettingsBindFlags.GET |
-                                     SettingsBindFlags.SET);
+                                     SettingsBindFlags.GET | SettingsBindFlags.SET);
 
                        settings.bind("context-lines",
                                      d_diff,
                                      "context-lines",
-                                     SettingsBindFlags.GET |
-                                     SettingsBindFlags.SET);
+                                     SettingsBindFlags.GET | SettingsBindFlags.SET);
 
                        settings.bind("tab-width",
                                      d_diff,
                                      "tab-width",
-                                     SettingsBindFlags.GET |
-                                     SettingsBindFlags.SET);
+                                     SettingsBindFlags.GET | SettingsBindFlags.SET);
 
                        settings.bind("wrap",
                                      d_diff,
                                      "wrap-lines",
-                                     SettingsBindFlags.GET |
-                                     SettingsBindFlags.SET);
+                                     SettingsBindFlags.GET | SettingsBindFlags.SET);
 
                        settings = new Settings("org.gnome.gitg.preferences.interface");
 
                        settings.bind("use-gravatar",
                                      d_diff,
                                      "use-gravatar",
-                                     SettingsBindFlags.GET |
-                                     SettingsBindFlags.SET);
+                                     SettingsBindFlags.GET | SettingsBindFlags.SET);
+
+                       settings.bind("enable-diff-highlighting",
+                                     d_diff,
+                                     "highlight",
+                                     SettingsBindFlags.GET | SettingsBindFlags.SET);
 
                        d_whenMapped = new Gitg.WhenMapped(d_diff);
 
diff --git a/po/POTFILES.in b/po/POTFILES.in
index bfb1ed6..1db2072 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -29,7 +29,6 @@ gitg/history/gitg-history-command-line.vala
 gitg/history/gitg-history-refs-list.vala
 gitg/history/gitg-history.vala
 gitg/preferences/gitg-preferences-commit.vala
-gitg/preferences/gitg-preferences-diff.vala
 gitg/preferences/gitg-preferences-history.vala
 gitg/preferences/gitg-preferences-interface.vala
 libgitg/gitg-date.vala
@@ -52,7 +51,6 @@ plugins/files/gitg-files.vala
 [type: gettext/glade]gitg/resources/ui/gitg-history-paned.ui
 [type: gettext/glade]gitg/resources/ui/gitg-menus.ui
 [type: gettext/glade]gitg/resources/ui/gitg-preferences-commit.ui
-[type: gettext/glade]gitg/resources/ui/gitg-preferences-diff.ui
 [type: gettext/glade]gitg/resources/ui/gitg-preferences-history.ui
 [type: gettext/glade]gitg/resources/ui/gitg-preferences-interface.ui
 [type: gettext/glade]gitg/resources/ui/gitg-preferences.ui
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
index 1a7de8c..9807321 100644
--- a/po/POTFILES.skip
+++ b/po/POTFILES.skip
@@ -28,7 +28,6 @@ gitg/history/gitg-history.c
 gitg/history/gitg-history-command-line.c
 gitg/history/gitg-history-refs-list.c
 gitg/preferences/gitg-preferences-commit.c
-gitg/preferences/gitg-preferences-diff.c
 gitg/preferences/gitg-preferences-history.c
 gitg/preferences/gitg-preferences-interface.c
 libgitg/gitg-authentication-dialog.c


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