gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r19606 - gnunet-gtk/src/fs
Date: Wed, 1 Feb 2012 18:29:05 +0100

Author: grothoff
Date: 2012-02-01 18:29:05 +0100 (Wed, 01 Feb 2012)
New Revision: 19606

Added:
   gnunet-gtk/src/fs/gnunet-fs-gtk-main_window_search.c
Modified:
   gnunet-gtk/src/fs/Makefile.am
   gnunet-gtk/src/fs/gnunet-fs-gtk-main_window_namespace.c
Log:
-moving code around

Modified: gnunet-gtk/src/fs/Makefile.am
===================================================================
--- gnunet-gtk/src/fs/Makefile.am       2012-02-01 17:27:02 UTC (rev 19605)
+++ gnunet-gtk/src/fs/Makefile.am       2012-02-01 17:29:05 UTC (rev 19606)
@@ -18,12 +18,13 @@
   gnunet-fs-gtk-anonymity_spin_buttons.c 
gnunet-fs-gtk-anonymity_spin_buttons.h \
   gnunet-fs-gtk-main_window_meta_data_context_menu.c \
   gnunet-fs-gtk.c gnunet-fs-gtk.h \
+  gnunet-fs-gtk-main_window_adv_pseudonym.c \
   gnunet-fs-gtk-main_window_create_pseudonym.c \
   gnunet-fs-gtk-main_window_file_download.c \
   gnunet-fs-gtk-main_window_file_publish.c \
   gnunet-fs-gtk-main_window_namespace.c \
+  gnunet-fs-gtk-main_window_search.c \
   gnunet-fs-gtk-main_window_open_directory.c \
-  gnunet-fs-gtk-main_window_adv_pseudonym.c \
   gnunet-fs-gtk-main_window_view_toggles.c 
 gnunet_fs_gtk_LDADD = \
   $(top_builddir)/src/lib/libgnunetgtk.la \

Modified: gnunet-gtk/src/fs/gnunet-fs-gtk-main_window_namespace.c
===================================================================
--- gnunet-gtk/src/fs/gnunet-fs-gtk-main_window_namespace.c     2012-02-01 
17:27:02 UTC (rev 19605)
+++ gnunet-gtk/src/fs/gnunet-fs-gtk-main_window_namespace.c     2012-02-01 
17:29:05 UTC (rev 19606)
@@ -134,32 +134,7 @@
 }
 
 
-static gboolean
-GNUNET_GTK_get_tree_string (GtkTreeView * treeview, GtkTreePath * treepath,
-                            guint column, gchar ** value)
-{
-  gboolean ok;
-  GtkTreeModel *model;
 
-  model = gtk_tree_view_get_model (treeview);
-  if (!model)
-    return FALSE;
-
-  GtkTreeIter iter;
-
-  ok = gtk_tree_model_get_iter (model, &iter, treepath);
-  if (!ok)
-    return FALSE;
-
-  *value = NULL;
-  gtk_tree_model_get (model, &iter, column, value, -1);
-  if (*value == NULL)
-    return FALSE;
-  return TRUE;
-}
-
-
-
 gboolean
 get_selected_namespace_treepath_iter_model_widget (GtkBuilder * builder,
                                                    GtkTreePath ** p_treepath,

Added: gnunet-gtk/src/fs/gnunet-fs-gtk-main_window_search.c
===================================================================
--- gnunet-gtk/src/fs/gnunet-fs-gtk-main_window_search.c                        
        (rev 0)
+++ gnunet-gtk/src/fs/gnunet-fs-gtk-main_window_search.c        2012-02-01 
17:29:05 UTC (rev 19606)
@@ -0,0 +1,137 @@
+/*
+     This file is part of GNUnet
+     (C) 2011, 2012 Christian Grothoff (and other contributing authors)
+
+     GNUnet is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published
+     by the Free Software Foundation; either version 2, or (at your
+     option) any later version.
+
+     GNUnet is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+
+     You should have received a copy of the GNU General Public License
+     along with GNUnet; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+     Boston, MA 02111-1307, USA.
+*/
+
+/**
+ * @file src/fs/gnunet-fs-gtk-main_window_search.c
+ * @author Christian Grothoff
+ * @brief event handlers for the search function in the main window
+ */
+#include "gnunet-fs-gtk-common.h"
+#include <gdk/gdk.h>
+
+
+
+void
+main_window_search_button_clicked_cb (GtkButton * button, gpointer user_data)
+{
+  GtkBuilder *builder;
+  GtkTreePath *namespace_treepath = NULL;
+  GtkTreeModel *namespace_model = NULL;
+  GtkComboBox *mime_combo;
+  GtkTreeModel *mime_model;
+  GtkEntry *query_entry;
+  guint anonymity_level;
+  GtkTreeRowReference *ref = NULL;
+  GtkTreeIter iter;
+  GtkToggleButton *toggle_button;
+  const char *entry_keywords;
+  gchar *keywords;
+  gchar *mime_keyword;
+
+  GNUNET_HashCode *nsid = NULL;
+  struct GNUNET_FS_Uri *uri;
+  char *emsg;
+
+  builder = GTK_BUILDER (user_data);
+
+  toggle_button =
+      GTK_TOGGLE_BUTTON (gtk_builder_get_object
+                         (builder,
+                          "main_window_search_namespace_dropdown_button"));
+
+  if (!GNUNET_GTK_get_selected_anonymity_level
+      (builder, "main_window_search_anonymity_combobox", &anonymity_level))
+    return;
+
+  mime_combo =
+      GTK_COMBO_BOX (GNUNET_FS_GTK_get_main_window_object
+                     ("main_window_search_mime_combobox"));
+  mime_model = gtk_combo_box_get_model (mime_combo);
+  mime_keyword = NULL;
+  if (mime_model && gtk_combo_box_get_active_iter (mime_combo, &iter))
+    gtk_tree_model_get (mime_model, &iter, 0, &mime_keyword, -1);
+  if (strcmp (mime_keyword, " ") == 0)
+  {
+    g_free (mime_keyword);
+    mime_keyword = NULL;
+  }
+
+  ref = g_object_get_data (G_OBJECT (toggle_button), "selected-row-reference");
+  if (ref)
+  {
+    namespace_model = gtk_tree_row_reference_get_model (ref);
+    namespace_treepath = gtk_tree_row_reference_get_path (ref);
+    if ((NULL != namespace_treepath) &&
+        (TRUE ==
+         gtk_tree_model_get_iter (namespace_model, &iter, namespace_treepath)))
+      gtk_tree_model_get (namespace_model, &iter, 1, &nsid, -1);
+  }
+  query_entry =
+      GTK_ENTRY (gtk_builder_get_object (builder, "main_window_search_entry"));
+  entry_keywords = gtk_entry_get_text (query_entry);
+  keywords =
+      g_strdup_printf ("%s %s%s", entry_keywords, mime_keyword ? "+" : "",
+                       mime_keyword ? mime_keyword : "");
+  g_free (mime_keyword);
+  if (nsid != NULL)
+  {
+    uri = GNUNET_FS_uri_sks_create_from_nsid (nsid, keywords);
+    GNUNET_assert (uri != NULL);
+  }
+  else
+  {
+    emsg = NULL;
+    uri = GNUNET_FS_uri_ksk_create (keywords, &emsg);
+    if (uri == NULL)
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, _("Invalid keyword string `%s': 
%s"),
+                  keywords, emsg);
+      GNUNET_free_non_null (emsg);
+      return;
+    }
+  }
+  GNUNET_FS_search_start (GNUNET_FS_GTK_get_fs_handle (), uri, anonymity_level,
+                          GNUNET_FS_SEARCH_OPTION_NONE, NULL);
+
+  g_free (keywords);
+  GNUNET_FS_uri_destroy (uri);
+}
+
+
+gboolean
+main_window_search_entry_key_press_event_cb (GtkWidget * widget,
+                                             GdkEventKey * event,
+                                             gpointer user_data)
+{
+  GtkBuilder *builder;
+
+  builder = GTK_BUILDER (user_data);
+
+  if (event->keyval == GDK_KEY_Return)
+  {
+    GtkWidget *find = GTK_WIDGET (gtk_builder_get_object (builder,
+                                                          
"main_window_search_button"));
+
+    main_window_search_button_clicked_cb (GTK_BUTTON (find), user_data);
+    return TRUE;
+  }
+  return FALSE;
+}
+




reply via email to

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