[gnome-builder] project-tree: re-expand tree to selected item after rebuild
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] project-tree: re-expand tree to selected item after rebuild
- Date: Sat, 11 Apr 2015 21:12:57 +0000 (UTC)
commit 3a086f8e2fe34d5846064a1c34eb53201405377d
Author: Christian Hergert <christian hergert me>
Date: Sat Apr 11 14:12:36 2015 -0700
project-tree: re-expand tree to selected item after rebuild
If we can discover the previously selected item after a tree rebuild, we
should be nice and reselect it (expanding as necessary).
src/project-tree/gb-project-tree-actions.c | 25 ++++++++++++++++++++-----
1 files changed, 20 insertions(+), 5 deletions(-)
---
diff --git a/src/project-tree/gb-project-tree-actions.c b/src/project-tree/gb-project-tree-actions.c
index ef4decd..2f2ad2d 100644
--- a/src/project-tree/gb-project-tree-actions.c
+++ b/src/project-tree/gb-project-tree-actions.c
@@ -63,16 +63,31 @@ gb_project_tree_actions_refresh (GSimpleAction *action,
gpointer user_data)
{
GbProjectTree *self = user_data;
+ GbTreeNode *selected;
+ GObject *item = NULL;
g_assert (GB_IS_PROJECT_TREE (self));
+ if ((selected = gb_tree_get_selected (GB_TREE (self))))
+ {
+ item = gb_tree_node_get_item (selected);
+ if (item != NULL)
+ g_object_ref (item);
+ }
+
gb_tree_rebuild (GB_TREE (self));
- /*
- * TODO:
- *
- * Try to expand back to our current position
- */
+ if (item != NULL)
+ {
+ selected = gb_tree_find_item (GB_TREE (self), item);
+ if (selected != NULL)
+ {
+ gb_tree_node_expand (selected, TRUE);
+ gb_tree_node_select (selected);
+ gb_tree_scroll_to_node (GB_TREE (self), selected);
+ }
+ g_object_unref (item);
+ }
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]