diff options
author | Stefano Facchini <stefano.facchini@gmail.com> | 2020-06-17 14:22:34 +0200 |
---|---|---|
committer | Stefano Facchini <stefano.facchini@gmail.com> | 2020-06-30 16:01:22 +0200 |
commit | 7f944dc3137628d249e6f3ad49a7059cc58804de (patch) | |
tree | c3d2117bd0603aae7a496f4bd32e5ae21cbfdcf9 /src | |
parent | 28ac2d5b41b5e4681230ee41990682e756d4ce58 (diff) | |
download | baobab-7f944dc3137628d249e6f3ad49a7059cc58804de.tar.gz |
Add a FolderDisplay widget
Just a stub, lacks a ton of styling.
Diffstat (limited to 'src')
-rw-r--r-- | src/baobab-window.vala | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/baobab-window.vala b/src/baobab-window.vala index 4e0541e..d4ffb1f 100644 --- a/src/baobab-window.vala +++ b/src/baobab-window.vala @@ -22,6 +22,60 @@ namespace Baobab { + [GtkTemplate (ui = "/org/gnome/baobab/ui/baobab-folder-display.ui")] + public class FolderDisplay : Gtk.Grid { + [GtkChild] + private Gtk.Label folder_name; + [GtkChild] + private Gtk.Label folder_size; + [GtkChild] + private Gtk.Label folder_elements; + [GtkChild] + private Gtk.Label folder_time; + + Location location_; + public Location location { + set { + location_ = value; + //folder_name.label = location_.name; + } + + get { + return location_; + } + } + + public new Gtk.TreePath path { + set { + print("current_path=%s\n", value.to_string()); + Gtk.TreeIter iter; + location.scanner.get_iter (out iter, value); + + string name; + string display_name; + uint64 size; + int elements; + uint64 time; + + location.scanner.get (iter, + Scanner.Columns.NAME, out name, + Scanner.Columns.DISPLAY_NAME, out display_name, + Scanner.Columns.SIZE, out size, + Scanner.Columns.ELEMENTS, out elements, + Scanner.Columns.TIME_MODIFIED, out time); + + if (value.get_depth () == 1) { + folder_name.label = location.name; + } else { + folder_name.label = display_name != null ? display_name : name; + } + folder_size.label = format_size (size); + folder_elements.label = "%d items".printf (elements); + folder_time.label = new DateTime.from_unix_local ((int64) time).format ("%F"); + } + } + } + [GtkTemplate (ui = "/org/gnome/baobab/ui/baobab-main-window.ui")] public class Window : Gtk.ApplicationWindow { [GtkChild] @@ -51,6 +105,8 @@ namespace Baobab { [GtkChild] private LocationList location_list; [GtkChild] + private FolderDisplay folder_display; + [GtkChild] private Gtk.TreeView treeview; [GtkChild] private Gtk.Menu treeview_popup_menu; @@ -226,6 +282,8 @@ namespace Baobab { active_location = location; + folder_display.location = location; + // Update the timestamp for GtkRecentManager location_list.add_location (location); @@ -424,6 +482,7 @@ namespace Baobab { var path = active_location.scanner.get_path (iter); rings_chart.root = path; treemap_chart.root = path; + folder_display.path = path; } }); } |