summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorStefano Facchini <stefano.facchini@gmail.com>2020-06-20 11:42:25 +0200
committerStefano Facchini <stefano.facchini@gmail.com>2020-06-30 16:01:23 +0200
commit8b61be0d7bea77e8e6fb45803406d3d88444b0b1 (patch)
tree4194d50ca294bd922fa8397bde39610d2a6ae501 /src
parentec3678da8d3bebb59e4a81f2414081b6e03634b4 (diff)
downloadbaobab-8b61be0d7bea77e8e6fb45803406d3d88444b0b1.tar.gz
Go up one level when FolderDisplay is clicked
Diffstat (limited to 'src')
-rw-r--r--src/baobab-folder-display.vala14
-rw-r--r--src/baobab-window.vala9
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;