summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorStefano Facchini <stefano.facchini@gmail.com>2020-06-17 14:22:34 +0200
committerStefano Facchini <stefano.facchini@gmail.com>2020-06-30 16:01:22 +0200
commit7f944dc3137628d249e6f3ad49a7059cc58804de (patch)
treec3d2117bd0603aae7a496f4bd32e5ae21cbfdcf9 /src
parent28ac2d5b41b5e4681230ee41990682e756d4ce58 (diff)
downloadbaobab-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.vala59
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;
}
});
}