[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r24924 - gnunet-gtk/src/fs
From: |
gnunet |
Subject: |
[GNUnet-SVN] r24924 - gnunet-gtk/src/fs |
Date: |
Tue, 13 Nov 2012 07:01:08 +0100 |
Author: LRN
Date: 2012-11-13 07:01:07 +0100 (Tue, 13 Nov 2012)
New Revision: 24924
Modified:
gnunet-gtk/src/fs/gnunet-fs-gtk_common.c
gnunet-gtk/src/fs/gnunet-fs-gtk_common.h
gnunet-gtk/src/fs/gnunet-fs-gtk_event-handler.c
Log:
Select next item in the list after starting the download
Modified: gnunet-gtk/src/fs/gnunet-fs-gtk_common.c
===================================================================
--- gnunet-gtk/src/fs/gnunet-fs-gtk_common.c 2012-11-13 02:31:25 UTC (rev
24923)
+++ gnunet-gtk/src/fs/gnunet-fs-gtk_common.c 2012-11-13 06:01:07 UTC (rev
24924)
@@ -545,5 +545,34 @@
return result;
}
+gboolean
+GNUNET_GTK_tree_model_get_next_flat_iter (GtkTreeModel *model, GtkTreeIter
*iter, gboolean allow_children, GtkTreeIter *next_iter)
+{
+ GtkTreeIter current_iter = *iter;
+ while (TRUE)
+ {
+ GtkTreeIter tmp_iter;
+ tmp_iter = current_iter;
+ if (gtk_tree_model_iter_next (model, &tmp_iter))
+ {
+ *next_iter = tmp_iter;
+ return TRUE;
+ }
+ if (allow_children)
+ {
+ if (gtk_tree_model_iter_children (model, &tmp_iter, ¤t_iter))
+ {
+ *next_iter = tmp_iter;
+ return TRUE;
+ }
+ }
+ allow_children = FALSE;
+ if (!gtk_tree_model_iter_parent (model, &tmp_iter, ¤t_iter))
+ return FALSE;
+ current_iter = tmp_iter;
+ }
+ return FALSE;
+}
+
/* end of gnunet-fs-gtk-common.c */
Modified: gnunet-gtk/src/fs/gnunet-fs-gtk_common.h
===================================================================
--- gnunet-gtk/src/fs/gnunet-fs-gtk_common.h 2012-11-13 02:31:25 UTC (rev
24923)
+++ gnunet-gtk/src/fs/gnunet-fs-gtk_common.h 2012-11-13 06:01:07 UTC (rev
24924)
@@ -194,5 +194,26 @@
GtkTreeRowReference *
GNUNET_GTK_get_reference_from_iter (GtkTreeModel *model, GtkTreeIter *iter);
+/**
+ * Fills "next_iter" with iterator for an item that comes next in the tree
+ * after "iter".
+ * Next item is, in order of precedence:
+ * 1) First child of "iter", if "iter" has children and "allow_children"
+ * is enabled.
+ * 2) Next sibling of "iter", unless "iter" is the last sibling.
+ * If none of those are present, function recursively checks parents of
+ * "iter" until it finds next item or runs out of parents.
+ *
+ * @param model a model to reference
+ * @param iter an iter that points to current row in the model
+ * @param allow_children whether child of "iter" is considered to be next.
+ * @param next_iter will be filled with the next row in the model on success
+ * @return TRUE if next_iter is set to a valid iter,
+ * FALSE if ran out of parents
+ */
+gboolean
+GNUNET_GTK_tree_model_get_next_flat_iter (GtkTreeModel *model,
+ GtkTreeIter *iter, gboolean allow_children, GtkTreeIter *next_iter);
+
#endif
/* end of gnunet-fs-gtk-common.h */
Modified: gnunet-gtk/src/fs/gnunet-fs-gtk_event-handler.c
===================================================================
--- gnunet-gtk/src/fs/gnunet-fs-gtk_event-handler.c 2012-11-13 02:31:25 UTC
(rev 24923)
+++ gnunet-gtk/src/fs/gnunet-fs-gtk_event-handler.c 2012-11-13 06:01:07 UTC
(rev 24924)
@@ -964,8 +964,8 @@
gchar *downloaddir;
struct DownloadEntry *de;
guint anonymity;
-
gboolean recursive;
+ GtkTreeIter next_item;
tv = GTK_TREE_VIEW (gtk_builder_get_object (st->builder,
"_search_result_frame"));
sel = gtk_tree_view_get_selection (tv);
@@ -1017,6 +1017,10 @@
gtk_tree_path_free (path);
g_free (downloaddir);
+
+ if (GNUNET_GTK_tree_model_get_next_flat_iter (model, &iter, !recursive,
&next_item))
+ gtk_tree_selection_select_iter (sel, &next_item);
+ GNUNET_FS_GTK_search_treeview_cursor_changed (tv, st);
}
/**
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r24924 - gnunet-gtk/src/fs,
gnunet <=