gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r18900 - gnunet-gtk/src/fs


From: gnunet
Subject: [GNUnet-SVN] r18900 - gnunet-gtk/src/fs
Date: Sun, 1 Jan 2012 23:37:47 +0100

Author: grothoff
Date: 2012-01-01 23:37:47 +0100 (Sun, 01 Jan 2012)
New Revision: 18900

Modified:
   gnunet-gtk/src/fs/gnunet-fs-gtk-event_handler.c
Log:
fixing #2053 and undoing parts of 18880 (diagnostic assertions no longer needed 
/ potentially harmful) -- if URI is NULL, do not display download context menu 
and ignore double-clicks

Modified: gnunet-gtk/src/fs/gnunet-fs-gtk-event_handler.c
===================================================================
--- gnunet-gtk/src/fs/gnunet-fs-gtk-event_handler.c     2012-01-01 22:29:14 UTC 
(rev 18899)
+++ gnunet-gtk/src/fs/gnunet-fs-gtk-event_handler.c     2012-01-01 22:37:47 UTC 
(rev 18900)
@@ -618,7 +618,6 @@
   GtkTreeIter child;
   GtkTreeModel *model;
 
-  GNUNET_assert (NULL != de->uri);
   rr_old = de->rr;
   tab = GNUNET_GTK_add_to_uri_tab (&iter, &de->sr, de->meta, de->uri);
   de->sr->download = de;
@@ -786,11 +785,18 @@
     return;
   }
   gtk_tree_model_get (tm, &iter, 0, &meta, 1, &uri, 9, &sr, 10, &mime, -1);
+  if (NULL == uri)
+  {
+    /* user clicked on directory that was opened (not downloaded!), so we
+       have no URI and downloading makes no sense. Ignore! */
+    if (NULL != mime)
+      g_free (mime);
+    return;
+  }
   if (!(GNUNET_FS_uri_test_chk (uri) || GNUNET_FS_uri_test_loc (uri)))
   {
     /* can only download chk/loc URIs, ignore */
     g_free (mime);
-    GNUNET_free (sdc);
     return;
   }
 
@@ -998,6 +1004,7 @@
   GtkTreeModel *tm;
   GtkTreeIter iter;
   struct SearchResult *sr;
+  struct GNUNET_FS_Uri *uri;
 
   tv = GTK_TREE_VIEW (widget);
   if (event->type == GDK_BUTTON_PRESS)
@@ -1027,7 +1034,7 @@
         current_context_search_tab = NULL;
         return FALSE;
       }
-      gtk_tree_model_get (tm, &iter, 9, &sr, -1);
+      gtk_tree_model_get (tm, &iter, 1, &uri, 9, &sr, -1);
       current_context_row_reference = gtk_tree_row_reference_new (tm, path);
       gtk_tree_path_free (path);
 
@@ -1044,23 +1051,27 @@
           "Creating a menu for SR=%p, DE=%p\n", sr, sr->download);
       if (sr->download == NULL)
       {
-        child = gtk_menu_item_new_with_label (_("_Download"));
-        g_signal_connect (child, "activate",
-                          G_CALLBACK (start_download_ctx_menu), NULL);
-        gtk_label_set_use_underline (GTK_LABEL
-                                     (gtk_bin_get_child (GTK_BIN (child))),
-                                     TRUE);
-        gtk_widget_show (child);
-        gtk_menu_shell_append (GTK_MENU_SHELL (menu), child);
-
-        child = gtk_menu_item_new_with_label (_("Download _recursively"));
-        g_signal_connect (child, "activate",
-                          G_CALLBACK (start_download_recursively_ctx_menu), 
NULL);
-        gtk_label_set_use_underline (GTK_LABEL
-                                     (gtk_bin_get_child (GTK_BIN (child))),
-                                     TRUE);
-        gtk_widget_show (child);
-        gtk_menu_shell_append (GTK_MENU_SHELL (menu), child);
+       if (NULL != uri)
+       {
+         /* only display download menus if there is a URI */
+         child = gtk_menu_item_new_with_label (_("_Download"));
+         g_signal_connect (child, "activate",
+                           G_CALLBACK (start_download_ctx_menu), NULL);
+         gtk_label_set_use_underline (GTK_LABEL
+                                      (gtk_bin_get_child (GTK_BIN (child))),
+                                      TRUE);
+         gtk_widget_show (child);
+         gtk_menu_shell_append (GTK_MENU_SHELL (menu), child);
+         
+         child = gtk_menu_item_new_with_label (_("Download _recursively"));
+         g_signal_connect (child, "activate",
+                           G_CALLBACK (start_download_recursively_ctx_menu), 
NULL);
+         gtk_label_set_use_underline (GTK_LABEL
+                                      (gtk_bin_get_child (GTK_BIN (child))),
+                                      TRUE);
+         gtk_widget_show (child);
+         gtk_menu_shell_append (GTK_MENU_SHELL (menu), child);
+       }
       }
       else
       {
@@ -1515,8 +1526,7 @@
   GtkTreeStore *ts;
   uint64_t fsize;
 
-  GNUNET_assert (NULL != uri);
-  if ((!GNUNET_FS_uri_test_loc (uri)) &&
+  if ((uri != NULL) && (!GNUNET_FS_uri_test_loc (uri)) &&
       (!GNUNET_FS_uri_test_chk (uri)))
   {
     fsize = 0;
@@ -1648,7 +1658,6 @@
   struct SearchResult *sr;
   GtkTreeIter iter;
 
-  GNUNET_assert (NULL != uri);
   sr = GNUNET_GTK_add_search_result (tab, &iter,
                                      (parent != NULL) ? parent->rr : NULL, uri,
                                      meta, result, applicability_rank);
@@ -1676,7 +1685,6 @@
   GtkNotebook *notebook;
   gint page;
 
-  GNUNET_assert (NULL != uri);
   if (uri_tab == NULL)
   {
     uri_tab = setup_search (NULL, NULL);
@@ -2129,7 +2137,6 @@
                                info->value.search.specifics.resume.message);
     return ret;
   case GNUNET_FS_STATUS_SEARCH_RESUME_RESULT:
-    GNUNET_assert (NULL != info->value.search.specifics.resume_result.uri);
     ret =
         process_search_result (info->value.search.cctx, 
info->value.search.pctx,
                                info->value.search.specifics.resume_result.uri,
@@ -2151,7 +2158,6 @@
     close_search_tab (info->value.search.cctx);
     return NULL;
   case GNUNET_FS_STATUS_SEARCH_RESULT:
-    GNUNET_assert (NULL != info->value.search.specifics.result.uri);
     return process_search_result (info->value.search.cctx,
                                   info->value.search.pctx,
                                   info->value.search.specifics.result.uri,




reply via email to

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