[gitg/xiaoguang/split-view] Improve the construction of DiffViewFile objects
- From: Alberto Fanjul <albfan src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gitg/xiaoguang/split-view] Improve the construction of DiffViewFile objects
- Date: Tue, 26 Nov 2019 17:10:01 +0000 (UTC)
commit 5d30673161cdd4f3827ac5c1040ae648c158d959
Author: Gaurav Agrawal <agrawalgaurav1999 gmail com>
Date: Sun Aug 18 01:45:22 2019 +0530
Improve the construction of DiffViewFile objects
libgitg/gitg-diff-view-file.vala | 87 ++++++++++++++++++++++------------------
1 file changed, 49 insertions(+), 38 deletions(-)
---
diff --git a/libgitg/gitg-diff-view-file.vala b/libgitg/gitg-diff-view-file.vala
index cee1a328..fb0d7982 100644
--- a/libgitg/gitg-diff-view-file.vala
+++ b/libgitg/gitg-diff-view-file.vala
@@ -57,6 +57,11 @@ class Gitg.DiffViewFile : Gtk.Grid
private DiffViewFileRenderer? d_renderer_left;
private DiffViewFileRenderer? d_renderer_right;
+ public enum Mode {
+ TEXT,
+ BINARY,
+ IMAGE
+ }
public DiffViewFileRenderer? renderer
{
owned get
@@ -224,11 +229,9 @@ class Gitg.DiffViewFile : Gtk.Grid
public Ggit.DiffDelta? delta { get; construct set; }
public Repository? repository { get; construct set; }
-
- public DiffViewFile(Repository? repository, Ggit.DiffDelta delta)
- {
- Object(repository: repository, delta: delta);
- }
+ public Mode mode { get; construct set; }
+ public bool handle_selection { get; construct set; }
+ public DiffViewFileInfo info { get; construct set;}
construct
{
@@ -239,51 +242,59 @@ class Gitg.DiffViewFile : Gtk.Grid
d_scrolledwindow.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.NEVER);
d_scrolledwindow_left.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.NEVER);
d_scrolledwindow_right.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.NEVER);
+ switch (mode) {
+ case Mode.TEXT:
+ this.renderer = new DiffViewFileRendererText(info, handle_selection,
DiffViewFileRendererText.Style.ONE);
+ this.renderer.show();
+
+ this.renderer.bind_property("added", d_diff_stat_file, "added");
+ this.renderer.bind_property("removed", d_diff_stat_file, "removed");
+
+ this.renderer_left = new DiffViewFileRendererText(info, handle_selection,
DiffViewFileRendererText.Style.OLD);
+ this.renderer_left.show();
+
+ this.renderer_left.bind_property("added", d_diff_stat_file, "added");
+ this.renderer_left.bind_property("removed", d_diff_stat_file, "removed");
+
+ this.renderer_right = new DiffViewFileRendererText(info, handle_selection,
DiffViewFileRendererText.Style.NEW);
+ this.renderer_right.show();
+ this.renderer_right.bind_property("added", d_diff_stat_file, "added");
+ this.renderer_right.bind_property("removed", d_diff_stat_file, "removed");
+ break;
+ case Mode.BINARY :
+ this.renderer = new DiffViewFileRendererBinary();
+ this.renderer.show();
+ unif_button.hide();
+ split_button.hide();
+ d_diff_stat_file.hide();
+ break;
+ case Mode.IMAGE :
+ this.renderer = new DiffViewFileRendererImage(repository, delta);
+ this.renderer.show();
+ unif_button.hide();
+ split_button.hide();
+ d_diff_stat_file.hide();
+ break;
+ default :
+ assert_not_reached();
+ break;
+
+ }
}
public DiffViewFile.text(DiffViewFileInfo info, bool handle_selection)
{
- this(info.repository, info.delta);
-
- this.renderer = new DiffViewFileRendererText(info, handle_selection,
DiffViewFileRendererText.Style.ONE);
- this.renderer.show();
-
- this.renderer.bind_property("added", d_diff_stat_file, "added");
- this.renderer.bind_property("removed", d_diff_stat_file, "removed");
-
- this.renderer_left = new DiffViewFileRendererText(info, handle_selection,
DiffViewFileRendererText.Style.OLD);
- this.renderer_left.show();
-
- this.renderer_left.bind_property("added", d_diff_stat_file, "added");
- this.renderer_left.bind_property("removed", d_diff_stat_file, "removed");
-
- this.renderer_right = new DiffViewFileRendererText(info, handle_selection,
DiffViewFileRendererText.Style.NEW);
- this.renderer_right.show();
-
- this.renderer_right.bind_property("added", d_diff_stat_file, "added");
- this.renderer_right.bind_property("removed", d_diff_stat_file, "removed");
+ Object(repository: info.repository, info: info, delta: info.delta, handle_selection:
handle_selection, mode: Mode.TEXT);
}
public DiffViewFile.binary(Repository? repository, Ggit.DiffDelta delta)
{
- this(repository, delta);
-
- this.renderer = new DiffViewFileRendererBinary();
- this.renderer.show();
- unif_button.hide();
- split_button.hide();
- d_diff_stat_file.hide();
+ Object(repository: repository, delta: delta, mode: Mode.BINARY);
}
public DiffViewFile.image(Repository? repository, Ggit.DiffDelta delta)
{
- this(repository, delta);
-
- this.renderer = new DiffViewFileRendererImage(repository, delta);
- this.renderer.show();
- unif_button.hide();
- split_button.hide();
- d_diff_stat_file.hide();
+ Object(repository: repository, delta: delta, mode: Mode.IMAGE);
}
protected override void constructed()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]