[gitg] files: put the tree view on the right depending of the layout



commit 919cf1dcb1f2f85ba47d54099735b277921b25ed
Author: Ignacio Casal Quinteiro <icq gnome org>
Date:   Wed Feb 20 16:41:04 2013 +0100

    files: put the tree view on the right depending of the layout

 plugins/files/gitg-files.vala |   34 +++++++++++++++++++++++++++++++++-
 1 files changed, 33 insertions(+), 1 deletions(-)
---
diff --git a/plugins/files/gitg-files.vala b/plugins/files/gitg-files.vala
index 2e09137..b077c50 100644
--- a/plugins/files/gitg-files.vala
+++ b/plugins/files/gitg-files.vala
@@ -30,9 +30,11 @@ namespace GitgFiles
                private TreeStore d_model;
                private Gtk.Paned d_paned;
                private GtkSource.View d_source;
+               private Settings d_interfacesettings;
                private Settings d_fontsettings;
                private Settings d_stylesettings;
 
+               private Gtk.ScrolledWindow d_scrolled_files;
                private Gtk.ScrolledWindow d_scrolled;
 
                private Gtk.Viewport d_imagevp;
@@ -41,6 +43,7 @@ namespace GitgFiles
                construct
                {
                        d_model = new TreeStore();
+                       d_interfacesettings = new Settings("org.gnome.gitg.preferences.interface");
 
                        application.notify["current_view"].connect((a, v) => {
                                notify_property("available");
@@ -111,10 +114,29 @@ namespace GitgFiles
                        }
                }
 
+               private void update_packing()
+               {
+                       var layout = d_interfacesettings.get_enum("orientation");
+                       d_paned.remove(d_scrolled);
+                       d_paned.remove(d_scrolled_files);
+
+                       if (layout == Gtk.Orientation.HORIZONTAL)
+                       {
+                               d_paned.pack1(d_scrolled, true, true);
+                               d_paned.pack2(d_scrolled_files, false, true);
+                       }
+                       else
+                       {
+                               d_paned.pack2(d_scrolled, true, true);
+                               d_paned.pack1(d_scrolled_files, false, true);
+                       }
+               }
+
                private void build_ui()
                {
                        var ret = GitgExt.UI.from_builder("files/view-files.ui",
                                                          "paned_files",
+                                                         "scrolled_window_files",
                                                          "tree_view_files",
                                                          "source_view_file",
                                                          "scrolled_window_file");
@@ -124,6 +146,7 @@ namespace GitgFiles
 
                        tv.get_selection().changed.connect(selection_changed);
 
+                       d_scrolled_files = ret["scrolled_window_files"] as Gtk.ScrolledWindow;
                        d_source = ret["source_view_file"] as GtkSource.View;
                        d_paned = ret["paned_files"] as Gtk.Paned;
                        d_scrolled = ret["scrolled_window_file"] as Gtk.ScrolledWindow;
@@ -140,6 +163,8 @@ namespace GitgFiles
                                d_fontsettings.changed["monospace-font-name"].connect((s, k) => {
                                        update_font();
                                });
+
+                               update_font();
                        }
 
                        d_stylesettings = new Settings("org.gnome.gedit.preferences.editor");
@@ -153,7 +178,14 @@ namespace GitgFiles
                                update_style();
                        }
 
-                       update_font();
+                       if (d_interfacesettings != null)
+                       {
+                               d_interfacesettings.changed["orientation"].connect((s, k) => {
+                                       update_packing();
+                               });
+
+                               update_packing();
+                       }
                }
 
                public Gtk.Widget? widget


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