[gitg] Add setting for diff tab width
- From: Jesse van den Kieboom <jessevdk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gitg] Add setting for diff tab width
- Date: Thu, 10 Jul 2014 14:27:56 +0000 (UTC)
commit a2f9b535d1fa1e14270f0eb497aa50f88ce365bb
Author: Jesse van den Kieboom <jessevdk gnome org>
Date: Thu Jul 10 16:27:39 2014 +0200
Add setting for diff tab width
data/org.gnome.gitg.gschema.xml.in.in | 3 +
libgitg/gitg-diff-view-options.vala | 18 +++++
libgitg/gitg-diff-view.vala | 17 +++++-
libgitg/resources/diff-view-options.ui | 110 ++++++++++++++++++-------------
plugins/diff/gitg-diff.vala | 6 ++
5 files changed, 107 insertions(+), 47 deletions(-)
---
diff --git a/data/org.gnome.gitg.gschema.xml.in.in b/data/org.gnome.gitg.gschema.xml.in.in
index 7b2388a..e947162 100644
--- a/data/org.gnome.gitg.gschema.xml.in.in
+++ b/data/org.gnome.gitg.gschema.xml.in.in
@@ -136,6 +136,9 @@
<key name="context-lines" type="i">
<default>3</default>
</key>
+ <key name="tab-width" type="i">
+ <default>4</default>
+ </key>
</schema>
<schema id="org.gnome.gitg.state" path="/org/gnome/gitg/state/">
<child name="window" schema="org.gnome.gitg.state.window"/>
diff --git a/libgitg/gitg-diff-view-options.vala b/libgitg/gitg-diff-view-options.vala
index d8ff280..9b6b821 100644
--- a/libgitg/gitg-diff-view-options.vala
+++ b/libgitg/gitg-diff-view-options.vala
@@ -32,6 +32,9 @@ public class DiffViewOptions : Gtk.Grid
[GtkChild (name = "adjustment_context")]
private Gtk.Adjustment d_adjustment_context;
+ [GtkChild (name = "adjustment_tab_width")]
+ private Gtk.Adjustment d_adjustment_tab_width;
+
[GtkChild (name = "button_developer_tools")]
private Gtk.Button d_button_developer_tools;
@@ -41,6 +44,7 @@ public class DiffViewOptions : Gtk.Grid
public bool changes_inline { get; set; }
public bool ignore_whitespace { get; set; }
public int context_lines { get; set; }
+ public int tab_width { get; set; }
public DiffView view { get; construct set; }
@@ -85,6 +89,12 @@ public class DiffViewOptions : Gtk.Grid
BindingFlags.BIDIRECTIONAL |
BindingFlags.SYNC_CREATE);
+ view.bind_property("tab-width",
+ this,
+ "tab-width",
+ BindingFlags.BIDIRECTIONAL |
+ BindingFlags.SYNC_CREATE);
+
bind_property("changes-inline",
d_switch_changes_inline,
"active",
@@ -105,6 +115,14 @@ public class DiffViewOptions : Gtk.Grid
transform_int_to_double,
transform_double_to_int);
+ bind_property("tab-width",
+ d_adjustment_tab_width,
+ "value",
+ BindingFlags.BIDIRECTIONAL |
+ BindingFlags.SYNC_CREATE,
+ transform_int_to_double,
+ transform_double_to_int);
+
var dbg = (Environment.get_variable("GITG_GTK_DIFF_VIEW_DEBUG") != null);
d_separator_developer_tools.visible = dbg;
diff --git a/libgitg/gitg-diff-view.vala b/libgitg/gitg-diff-view.vala
index d5b0e6a..6127407 100644
--- a/libgitg/gitg-diff-view.vala
+++ b/libgitg/gitg-diff-view.vala
@@ -102,7 +102,22 @@ namespace Gitg
public bool wrap { get; set; default = true; }
public bool staged { get; set; default = false; }
public bool unstaged { get; set; default = false; }
- public int tab_width { get; set; default = 4; }
+
+ int d_tab_width;
+
+ public int tab_width
+ {
+ get { return d_tab_width; }
+ construct set
+ {
+ if (d_tab_width != value)
+ {
+ d_tab_width = value;
+ update();
+ }
+ }
+ default = 4;
+ }
private bool flag_get(Ggit.DiffOption f)
{
diff --git a/libgitg/resources/diff-view-options.ui b/libgitg/resources/diff-view-options.ui
index b63d9ac..0291293 100644
--- a/libgitg/resources/diff-view-options.ui
+++ b/libgitg/resources/diff-view-options.ui
@@ -8,6 +8,13 @@
<property name="step_increment">1</property>
<property name="page_increment">3</property>
</object>
+ <object class="GtkAdjustment" id="adjustment_tab_width">
+ <property name="lower">1</property>
+ <property name="upper">16</property>
+ <property name="value">4</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">4</property>
+ </object>
<template class="GitgDiffViewOptions" parent="GtkGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -29,8 +36,8 @@
<object class="GtkLabel" id="label_ignore_whitespace">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="hexpand">True</property>
<property name="halign">start</property>
+ <property name="hexpand">True</property>
<property name="label" translatable="yes">Ignore whitespace changes</property>
</object>
<packing>
@@ -54,8 +61,8 @@
<object class="GtkLabel" id="label_changes_inline">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="hexpand">True</property>
<property name="halign">start</property>
+ <property name="hexpand">True</property>
<property name="label" translatable="yes">Show changes inline</property>
</object>
<packing>
@@ -75,55 +82,23 @@
</packing>
</child>
<child>
- <object class="GtkBox" id="box_context">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="spacing">12</property>
- <child>
- <object class="GtkLabel" id="label_context">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">Context</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkScale" id="scale_context">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="adjustment">adjustment_context</property>
- <property name="round_digits">0</property>
- <property name="digits">0</property>
- <property name="value_pos">right</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
+ <object class="GtkButton" id="button_developer_tools">
+ <property name="label" translatable="yes">Developer tools</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="relief">none</property>
+ <signal name="clicked" handler="on_button_developer_tools_clicked" swapped="no"/>
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="top_attach">6</property>
<property name="width">2</property>
</packing>
</child>
<child>
- <object class="GtkButton" id="button_developer_tools">
- <property name="label" translatable="yes">Developer tools</property>
- <property name="visible">False</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="relief">none</property>
- <signal name="clicked" handler="on_button_developer_tools_clicked" swapped="no"/>
+ <object class="GtkSeparator" id="separator_developer_tools">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
</object>
<packing>
<property name="left_attach">0</property>
@@ -132,14 +107,57 @@
</packing>
</child>
<child>
- <object class="GtkSeparator" id="separator_developer_tools">
+ <object class="GtkLabel" id="label_context1">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Tab width</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">4</property>
- <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="spin_button_tab_width">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">adjustment_tab_width</property>
+ <property name="snap_to_ticks">True</property>
+ <property name="numeric">True</property>
+ <property name="value">4</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label_context">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes">Context</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="spin_button_context">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="input_purpose">digits</property>
+ <property name="adjustment">adjustment_context</property>
+ <property name="snap_to_ticks">True</property>
+ <property name="numeric">True</property>
+ <property name="value">3</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">3</property>
</packing>
</child>
</template>
diff --git a/plugins/diff/gitg-diff.vala b/plugins/diff/gitg-diff.vala
index c66cf74..68a0b57 100644
--- a/plugins/diff/gitg-diff.vala
+++ b/plugins/diff/gitg-diff.vala
@@ -58,6 +58,12 @@ namespace GitgDiff
SettingsBindFlags.GET |
SettingsBindFlags.SET);
+ settings.bind("tab-width",
+ d_diff,
+ "tab-width",
+ SettingsBindFlags.GET |
+ SettingsBindFlags.SET);
+
d_diff.show();
d_sw.add(d_diff);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]