gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r6898 - gnunet-gtk/src/plugins/fs


From: gnunet
Subject: [GNUnet-SVN] r6898 - gnunet-gtk/src/plugins/fs
Date: Mon, 26 May 2008 18:32:22 -0600 (MDT)

Author: grothoff
Date: 2008-05-26 18:32:22 -0600 (Mon, 26 May 2008)
New Revision: 6898

Modified:
   gnunet-gtk/src/plugins/fs/fs.c
   gnunet-gtk/src/plugins/fs/fs.h
   gnunet-gtk/src/plugins/fs/search.c
   gnunet-gtk/src/plugins/fs/search.h
Log:
adding search result rankings to model

Modified: gnunet-gtk/src/plugins/fs/fs.c
===================================================================
--- gnunet-gtk/src/plugins/fs/fs.c      2008-05-27 00:01:20 UTC (rev 6897)
+++ gnunet-gtk/src/plugins/fs/fs.c      2008-05-27 00:32:22 UTC (rev 6898)
@@ -122,6 +122,7 @@
 {
   const GNUNET_FSUI_Event *event = cls;
   void *ret;
+  unsigned int i;
 
   ret = NULL;
   switch (event->type)
@@ -157,6 +158,12 @@
                                event->data.SearchResumed.fisSize,
                                event->data.SearchResumed.fis,
                                event->data.SearchResumed.state);
+      for (i=0;i<event->data.SearchResumed.fisSize;i++)
+       fs_search_update(ret,
+                        &event->data.SearchResumed.fis[i],
+                        event->data.SearchResumed.availability_rank[i],
+                        event->data.SearchResumed.availability_certainty[i],
+                        event->data.SearchResumed.applicability_rank[i]);
       break;
     case GNUNET_FSUI_search_stopped:
       fs_search_stopped (event->data.SearchStopped.sc.cctx);
@@ -165,6 +172,7 @@
       fs_search_update (event->data.SearchUpdate.sc.cctx,
                        &event->data.SearchUpdate.fi,
                        event->data.SearchUpdate.availability_rank,
+                       event->data.SearchUpdate.availability_certainty,
                        event->data.SearchUpdate.applicability_rank);
       break;
       /* download events */

Modified: gnunet-gtk/src/plugins/fs/fs.h
===================================================================
--- gnunet-gtk/src/plugins/fs/fs.h      2008-05-27 00:01:20 UTC (rev 6897)
+++ gnunet-gtk/src/plugins/fs/fs.h      2008-05-27 00:32:22 UTC (rev 6898)
@@ -64,6 +64,9 @@
   SEARCH_INTERNAL,
   SEARCH_INTERNAL_PARENT,
   SEARCH_STATUS,
+  SEARCH_AVAILABILITY_RANK,
+  SEARCH_AVAILABILITY_CERTAINTY,
+  SEARCH_APPLICABILITY_RANK,
   SEARCH_NUM,
 };
 

Modified: gnunet-gtk/src/plugins/fs/search.c
===================================================================
--- gnunet-gtk/src/plugins/fs/search.c  2008-05-27 00:01:20 UTC (rev 6897)
+++ gnunet-gtk/src/plugins/fs/search.c  2008-05-27 00:32:22 UTC (rev 6898)
@@ -172,7 +172,7 @@
       (GNUNET_YES == GNUNET_GC_get_configuration_value_yesno (cfg,
                                                               "GNUNET-GTK",
                                                               "DISABLE-OWN",
-                                                              GNUNET_YES)))
+                                                              GNUNET_NO)))
     return;
   model = GTK_TREE_STORE (gtk_tree_view_get_model (searchContext->treeview));
   /* Check that the entry does not already exist (for resume!) */
@@ -205,9 +205,39 @@
 void fs_search_update (SearchList * searchContext,
                       const GNUNET_ECRS_FileInfo * info,
                       int availability_rank,
+                      unsigned int availability_certainty,
                       unsigned int applicability_rank)
 {
-  /* FIXME */
+  GtkTreeStore *model;
+  GtkTreeIter iter;
+  struct GNUNET_ECRS_URI *have;
+
+  model = GTK_TREE_STORE (gtk_tree_view_get_model (searchContext->treeview));
+  /* find existing entry */
+  if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (model), &iter))
+    {
+      do
+        {
+          have = NULL;
+          gtk_tree_model_get (GTK_TREE_MODEL (model),
+                              &iter, SEARCH_URI, &have, -1);
+          if ( (have != NULL) && 
+              (GNUNET_ECRS_uri_test_equal (have, info->uri)) )
+           {
+             /* gotcha! */
+             gtk_tree_store_set(searchContext->tree,
+                                &iter,
+                                SEARCH_AVAILABILITY_RANK, availability_rank,
+                                SEARCH_AVAILABILITY_CERTAINTY, 
availability_certainty,
+                                SEARCH_APPLICABILITY_RANK, applicability_rank,
+                                -1);
+             return; /* done! */
+           }
+        }
+      while (gtk_tree_model_iter_next (GTK_TREE_MODEL (model), &iter));
+    }
+  /* not found!? */
+  GNUNET_GE_BREAK(NULL, 0);
 }
 
 
@@ -466,7 +496,8 @@
   g_signal_connect_swapped (list->treeview,
                             "button-press-event",
                             G_CALLBACK (search_click_handler), list);
-  list->tree = gtk_tree_store_new (SEARCH_NUM, G_TYPE_STRING,   /* name */
+  list->tree = gtk_tree_store_new (SEARCH_NUM,
+                                  G_TYPE_STRING,       /* name */
                                    G_TYPE_UINT64,       /* size */
                                    G_TYPE_STRING,       /* human-readable size 
*/
                                    G_TYPE_STRING,       /* mime-type */
@@ -478,7 +509,11 @@
                                    G_TYPE_STRING,       /* fg-color */
                                    G_TYPE_POINTER,      /* internal: search 
list */
                                    G_TYPE_POINTER,      /* internal: download 
parent list */
-                                   G_TYPE_STRING);      /* status */
+                                   G_TYPE_STRING,       /* status */
+                                  G_TYPE_INT,          /* availability rank */
+                                  G_TYPE_UINT,         /* availability 
certainty */
+                                  G_TYPE_UINT          /* applicability rank */
+                                  );     
 
   gtk_tree_view_set_model (list->treeview, GTK_TREE_MODEL (list->tree));
   gtk_tree_selection_set_mode (gtk_tree_view_get_selection (list->treeview),

Modified: gnunet-gtk/src/plugins/fs/search.h
===================================================================
--- gnunet-gtk/src/plugins/fs/search.h  2008-05-27 00:01:20 UTC (rev 6897)
+++ gnunet-gtk/src/plugins/fs/search.h  2008-05-27 00:32:22 UTC (rev 6898)
@@ -64,6 +64,7 @@
 void fs_search_update (SearchList * searchContext,
                       const GNUNET_ECRS_FileInfo * info,
                       int availability_rank,
+                      unsigned int availability_certainty,
                       unsigned int applicability_rank);
 
 /**





reply via email to

[Prev in Thread] Current Thread [Next in Thread]