diff options
author | Stefano Facchini <stefano.facchini@gmail.com> | 2020-06-20 11:42:25 +0200 |
---|---|---|
committer | Stefano Facchini <stefano.facchini@gmail.com> | 2020-06-30 16:01:23 +0200 |
commit | 8b61be0d7bea77e8e6fb45803406d3d88444b0b1 (patch) | |
tree | 4194d50ca294bd922fa8397bde39610d2a6ae501 /src | |
parent | ec3678da8d3bebb59e4a81f2414081b6e03634b4 (diff) | |
download | baobab-8b61be0d7bea77e8e6fb45803406d3d88444b0b1.tar.gz |
Go up one level when FolderDisplay is clicked
Diffstat (limited to 'src')
-rw-r--r-- | src/baobab-folder-display.vala | 14 | ||||
-rw-r--r-- | src/baobab-window.vala | 9 |
2 files changed, 22 insertions, 1 deletions
diff --git a/src/baobab-folder-display.vala b/src/baobab-folder-display.vala index 1e3c6a1..bfa7c89 100644 --- a/src/baobab-folder-display.vala +++ b/src/baobab-folder-display.vala @@ -20,7 +20,7 @@ namespace Baobab { [GtkTemplate (ui = "/org/gnome/baobab/ui/baobab-folder-display.ui")] - public class FolderDisplay : Gtk.Grid { + public class FolderDisplay : Gtk.Button { static construct { set_css_name ("folder-display"); } @@ -36,6 +36,12 @@ namespace Baobab { [GtkChild] private Gtk.Label folder_time; + construct { + clicked.connect (() => { activated ();}); + } + + public signal void activated (); + Location location_; public Location location { set { @@ -52,8 +58,11 @@ namespace Baobab { } } + Gtk.TreePath path_; public new Gtk.TreePath path { set { + path_ = value; + Gtk.TreeIter iter; location.scanner.get_iter (out iter, value); @@ -80,6 +89,9 @@ namespace Baobab { folder_elements.label = format_items (elements); folder_time.label = format_time_approximate (time); } + get { + return path_; + } } void set_name_from_location () { diff --git a/src/baobab-window.vala b/src/baobab-window.vala index 1c87492..41ab8a3 100644 --- a/src/baobab-window.vala +++ b/src/baobab-window.vala @@ -141,6 +141,7 @@ namespace Baobab { rings_chart.item_activated.connect (on_chart_item_activated); treemap_chart.item_activated.connect (on_chart_item_activated); pathbar.item_activated.connect (on_pathbar_item_activated); + folder_display.activated.connect (on_folder_display_activated); // Setup drag-n-drop drag_data_received.connect (on_drag_data_received); @@ -314,6 +315,14 @@ namespace Baobab { reroot_treeview (path); } + void on_folder_display_activated () { + var path = folder_display.path; + if (path.get_depth () > 1) { + path.up (); + reroot_treeview (path); + } + } + void on_drag_data_received (Gtk.Widget widget, Gdk.DragContext context, int x, int y, Gtk.SelectionData selection_data, uint target_type, uint time) { File dir = null; |