summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorStefano Facchini <stefano.facchini@gmail.com>2020-06-20 23:14:57 +0200
committerStefano Facchini <stefano.facchini@gmail.com>2020-06-30 16:01:23 +0200
commit48cda55733519d2d09a751d22a28015d0379ed55 (patch)
treeac25d93e5dd0de595c6f26ebe5f4310ddef32d92 /src
parentcdd7b8aa26f0c00e5bf7a52b1dfce84c6332b553 (diff)
downloadbaobab-48cda55733519d2d09a751d22a28015d0379ed55.tar.gz
Bring sorting back
Diffstat (limited to 'src')
-rw-r--r--src/baobab-window.vala33
1 files changed, 25 insertions, 8 deletions
diff --git a/src/baobab-window.vala b/src/baobab-window.vala
index 41ab8a3..d46e8fe 100644
--- a/src/baobab-window.vala
+++ b/src/baobab-window.vala
@@ -391,17 +391,34 @@ namespace Baobab {
}
bool get_selected_iter (out Gtk.TreeIter iter) {
- Gtk.TreeIter filter_iter;
+ Gtk.TreeIter wrapper_iter;
var selection = treeview.get_selection ();
- var result = selection.get_selected (null, out filter_iter);
+ var result = selection.get_selected (null, out wrapper_iter);
- var filter = (Gtk.TreeModelFilter) treeview.model;
- filter.convert_iter_to_child_iter (out iter, filter_iter);
+ convert_iter_to_child_iter (out iter, wrapper_iter);
return result;
}
+ void convert_iter_to_child_iter (out Gtk.TreeIter child_iter, Gtk.TreeIter iter) {
+ Gtk.TreeIter filter_iter;
+
+ var sort = (Gtk.TreeModelSort) treeview.model;
+ sort.convert_iter_to_child_iter (out filter_iter, iter);
+
+ var filter = (Gtk.TreeModelFilter) sort.model;
+ filter.convert_iter_to_child_iter (out child_iter, filter_iter);
+ }
+
+ Gtk.TreePath convert_path_to_child_path (Gtk.TreePath path) {
+ var sort = (Gtk.TreeModelSort) treeview.model;
+ var filter_path = sort.convert_path_to_child_path (path);
+
+ var filter = (Gtk.TreeModelFilter) sort.model;
+ return filter.convert_path_to_child_path (filter_path);
+ }
+
void setup_treeview () {
treeview.button_press_event.connect ((event) => {
if (event.triggers_context_menu ()) {
@@ -440,9 +457,8 @@ namespace Baobab {
}
});
- treeview.row_activated.connect ((filter_path, column) => {
- var filter = (Gtk.TreeModelFilter) treeview.model;
- var path = filter.convert_path_to_child_path (filter_path);
+ treeview.row_activated.connect ((wrapper_path, column) => {
+ var path = convert_path_to_child_path (wrapper_path);
reroot_treeview (path, true);
});
}
@@ -459,7 +475,8 @@ namespace Baobab {
folder_display.path = path;
pathbar.path = path;
- treeview.model = new Gtk.TreeModelFilter (active_location.scanner, path);
+ var filter = new Gtk.TreeModelFilter (active_location.scanner, path);
+ treeview.model = new Gtk.TreeModelSort.with_model (filter);
if (select_first) {
treeview.set_cursor (new Gtk.TreePath.first (), null, false);