aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2012-02-02 18:20:57 +0000
committerChristian Grothoff <christian@grothoff.org>2012-02-02 18:20:57 +0000
commitcb59fc9a28dd75dcf326b632bcd97fb10551c4f4 (patch)
tree551effa25272f3e9bec3905038eea1b31de3e282
parent42a20c910fc1e6ba7fc85107033c8ded71d65d77 (diff)
downloadgnunet-gtk-cb59fc9a28dd75dcf326b632bcd97fb10551c4f4.tar.gz
gnunet-gtk-cb59fc9a28dd75dcf326b632bcd97fb10551c4f4.zip
-renaming and code simplification
-rw-r--r--src/fs/Makefile.am4
-rw-r--r--src/fs/gnunet-fs-gtk_advertise-pseudonym.c6
-rw-r--r--src/fs/gnunet-fs-gtk_open-directory.c (renamed from src/fs/gnunet-fs-gtk-main_window_open_directory.c)78
3 files changed, 60 insertions, 28 deletions
diff --git a/src/fs/Makefile.am b/src/fs/Makefile.am
index 95226157..2e19b9b6 100644
--- a/src/fs/Makefile.am
+++ b/src/fs/Makefile.am
@@ -21,11 +21,11 @@ gnunet_fs_gtk_SOURCES = \
21 gnunet-fs-gtk_main-window-meta-data-context-menu.c \ 21 gnunet-fs-gtk_main-window-meta-data-context-menu.c \
22 gnunet-fs-gtk_main-window-search.c \ 22 gnunet-fs-gtk_main-window-search.c \
23 gnunet-fs-gtk_main-window-view-toggles.c \ 23 gnunet-fs-gtk_main-window-view-toggles.c \
24 gnunet-fs-gtk_open-directory.c \
24 gnunet-fs-gtk_publish-dialog.c \ 25 gnunet-fs-gtk_publish-dialog.c \
25 gnunet-fs-gtk_publish-edit-dialog.c gnunet-fs-gtk_publish-edit-dialog.h \ 26 gnunet-fs-gtk_publish-edit-dialog.c gnunet-fs-gtk_publish-edit-dialog.h \
26 gnunet-fs-gtk-main_window_file_download.c \ 27 gnunet-fs-gtk-main_window_file_download.c \
27 gnunet-fs-gtk-main_window_namespace.c \ 28 gnunet-fs-gtk-main_window_namespace.c
28 gnunet-fs-gtk-main_window_open_directory.c
29gnunet_fs_gtk_LDADD = \ 29gnunet_fs_gtk_LDADD = \
30 $(top_builddir)/src/lib/libgnunetgtk.la \ 30 $(top_builddir)/src/lib/libgnunetgtk.la \
31 @GTK_LIBS@ \ 31 @GTK_LIBS@ \
diff --git a/src/fs/gnunet-fs-gtk_advertise-pseudonym.c b/src/fs/gnunet-fs-gtk_advertise-pseudonym.c
index 09debe9b..07562f38 100644
--- a/src/fs/gnunet-fs-gtk_advertise-pseudonym.c
+++ b/src/fs/gnunet-fs-gtk_advertise-pseudonym.c
@@ -306,7 +306,11 @@ GNUNET_GTK_main_menu_file_advertise_pseudonym_activate_cb (GtkWidget * dummy,
306 GtkBuilder *builder; 306 GtkBuilder *builder;
307 307
308 builder = GNUNET_GTK_get_new_builder ("gnunet_fs_gtk_select_pseudonym_dialog.glade", NULL); 308 builder = GNUNET_GTK_get_new_builder ("gnunet_fs_gtk_select_pseudonym_dialog.glade", NULL);
309 309 if (NULL == builder)
310 {
311 GNUNET_break (0);
312 return;
313 }
310 ad = GTK_WIDGET (gtk_builder_get_object 314 ad = GTK_WIDGET (gtk_builder_get_object
311 (builder, "GNUNET_GTK_select_pseudonym_dialog")); 315 (builder, "GNUNET_GTK_select_pseudonym_dialog"));
312 ls = GTK_LIST_STORE (gtk_builder_get_object 316 ls = GTK_LIST_STORE (gtk_builder_get_object
diff --git a/src/fs/gnunet-fs-gtk-main_window_open_directory.c b/src/fs/gnunet-fs-gtk_open-directory.c
index cee0ff17..33ca2003 100644
--- a/src/fs/gnunet-fs-gtk-main_window_open_directory.c
+++ b/src/fs/gnunet-fs-gtk_open-directory.c
@@ -19,25 +19,44 @@
19*/ 19*/
20 20
21/** 21/**
22 * @file src/fs/gnunet-fs-gtk-main_window_open_directory.c 22 * @file src/fs/gnunet-fs-gtk_open-directory.c
23 * @author Christian Grothoff 23 * @author Christian Grothoff
24 */ 24 */
25#include "gnunet-fs-gtk_common.h" 25#include "gnunet-fs-gtk_common.h"
26#include "gnunet-fs-gtk_event-handler.h" 26#include "gnunet-fs-gtk_event-handler.h"
27 27
28
29/**
30 * Closure for 'add_child' function.
31 */
28struct AddChildContext 32struct AddChildContext
29{ 33{
34 /**
35 * Name of the directory file.
36 */
30 const char *filename; 37 const char *filename;
38
39 /**
40 * Tree store where we will add entries.
41 */
31 GtkTreeStore *ts; 42 GtkTreeStore *ts;
43
44 /**
45 * Tab we've opened for the directory.
46 */
32 struct SearchTab *tab; 47 struct SearchTab *tab;
33 struct SearchResult *par; 48
49 /**
50 * Row reference to the directorie's parent entry.
51 */
34 GtkTreeRowReference *prr; 52 GtkTreeRowReference *prr;
35 GtkTreeIter iter; 53
36}; 54};
37 55
38 56
39/** 57/**
40 * Function used to process entries in a directory. 58 * Function used to process entries in a directory. Adds each
59 * entry to our tab.
41 * 60 *
42 * @param cls closure, our 'struct AddChildContext*' 61 * @param cls closure, our 'struct AddChildContext*'
43 * @param filename name of the file in the directory 62 * @param filename name of the file in the directory
@@ -57,57 +76,63 @@ add_child (void *cls, const char *filename, const struct GNUNET_FS_Uri *uri,
57 const void *data) 76 const void *data)
58{ 77{
59 struct AddChildContext *acc = cls; 78 struct AddChildContext *acc = cls;
60 struct GNUNET_CONTAINER_MetaData *dmeta;
61 GtkTreePath *tp;
62 GtkTreeIter iter; 79 GtkTreeIter iter;
63 80
64 if (uri == NULL) 81 if (NULL == uri)
65 { 82 {
66 /* directory meta data itself */ 83 /* directory meta data itself, create parent entry */
84 struct GNUNET_CONTAINER_MetaData *dmeta;
85 GtkTreePath *tp;
86
67 dmeta = GNUNET_CONTAINER_meta_data_duplicate (meta); 87 dmeta = GNUNET_CONTAINER_meta_data_duplicate (meta);
68 GNUNET_CONTAINER_meta_data_insert (dmeta, "<user>", 88 GNUNET_CONTAINER_meta_data_insert (dmeta, "<user>",
69 EXTRACTOR_METATYPE_FILENAME, 89 EXTRACTOR_METATYPE_FILENAME,
70 EXTRACTOR_METAFORMAT_UTF8, "text/plain", 90 EXTRACTOR_METAFORMAT_UTF8, "text/plain",
71 acc->filename, 91 acc->filename,
72 strlen (acc->filename) + 1); 92 strlen (acc->filename) + 1);
73 acc->tab = GNUNET_GTK_add_to_uri_tab (&acc->iter, &acc->par, dmeta, NULL); 93 acc->tab = GNUNET_GTK_add_to_uri_tab (&iter, NULL, dmeta, NULL);
74 tp = gtk_tree_model_get_path (GTK_TREE_MODEL (acc->tab->ts), &acc->iter); 94 tp = gtk_tree_model_get_path (GTK_TREE_MODEL (acc->tab->ts), &iter);
75 acc->prr = gtk_tree_row_reference_new (GTK_TREE_MODEL (acc->tab->ts), tp); 95 acc->prr = gtk_tree_row_reference_new (GTK_TREE_MODEL (acc->tab->ts), tp);
76 gtk_tree_path_free (tp); 96 gtk_tree_path_free (tp);
77 acc->ts = acc->tab->ts; 97 acc->ts = acc->tab->ts;
78 GNUNET_CONTAINER_meta_data_destroy (dmeta); 98 GNUNET_CONTAINER_meta_data_destroy (dmeta);
79 return; 99 return;
80 } 100 }
81 if (acc->ts == NULL) 101 if (NULL == acc->ts)
102 {
103 GNUNET_break (0);
82 return; 104 return;
105 }
83 GNUNET_assert (NULL != 106 GNUNET_assert (NULL !=
84 GNUNET_GTK_add_search_result (acc->tab, &iter, acc->prr, uri, 107 GNUNET_GTK_add_search_result (acc->tab, &iter, acc->prr, uri,
85 meta, NULL, 0)); 108 meta, NULL, 0));
86} 109}
87 110
111
112/**
113 * Function called from the open-directory dialog upon completion.
114 *
115 * @param dialog the pseudonym selection dialog
116 * @param response_id response code from the dialog
117 * @param user_data the builder of the dialog
118 */
88void 119void
89GNUNET_GTK_open_directory_dialog_response_cb (GtkDialog * dialog, 120GNUNET_GTK_open_directory_dialog_response_cb (GtkDialog * dialog,
90 gint response_id, 121 gint response_id,
91 gpointer user_data) 122 gpointer user_data)
92{ 123{
93 GtkBuilder *builder; 124 GtkBuilder *builder = GTK_BUILDER (user_data);
94 GtkWidget *ad;
95 char *filename; 125 char *filename;
96 struct AddChildContext acc; 126 struct AddChildContext acc;
97 127
98 builder = GTK_BUILDER (user_data); 128 if (-5 != response_id)
99 ad = GTK_WIDGET (gtk_builder_get_object
100 (builder, "GNUNET_GTK_open_directory_dialog"));
101
102 if (response_id != -5)
103 { 129 {
104 gtk_widget_destroy (ad); 130 gtk_widget_destroy (GTK_WIDGET (dialog));
105 g_object_unref (G_OBJECT (builder)); 131 g_object_unref (G_OBJECT (builder));
106 return; 132 return;
107 } 133 }
108 134 filename = GNUNET_GTK_filechooser_get_filename_utf8 (GTK_FILE_CHOOSER (dialog));
109 filename = GNUNET_GTK_filechooser_get_filename_utf8 (GTK_FILE_CHOOSER (ad)); 135 gtk_widget_destroy (GTK_WIDGET (dialog));
110 gtk_widget_destroy (ad);
111 g_object_unref (G_OBJECT (builder)); 136 g_object_unref (G_OBJECT (builder));
112 acc.filename = filename; 137 acc.filename = filename;
113 acc.ts = NULL; 138 acc.ts = NULL;
@@ -115,9 +140,13 @@ GNUNET_GTK_open_directory_dialog_response_cb (GtkDialog * dialog,
115 g_free (filename); 140 g_free (filename);
116} 141}
117 142
143
118/** 144/**
119 * User selected "Open directory" in menu. Display dialog, open 145 * User selected "Open directory" in menu. Display dialog, open
120 * file and then display a new tab with its contents. 146 * file and then display a new tab with its contents.
147 *
148 * @param dummy the menu entry
149 * @param user_data the main dialog builder, unused
121 */ 150 */
122void 151void
123GNUNET_GTK_main_menu_file_open_gnunet_directory_activate_cb (GtkWidget * dummy, 152GNUNET_GTK_main_menu_file_open_gnunet_directory_activate_cb (GtkWidget * dummy,
@@ -128,10 +157,9 @@ GNUNET_GTK_main_menu_file_open_gnunet_directory_activate_cb (GtkWidget * dummy,
128 GtkWidget *toplevel; 157 GtkWidget *toplevel;
129 GtkFileFilter *ff; 158 GtkFileFilter *ff;
130 159
131
132 builder = 160 builder =
133 GNUNET_GTK_get_new_builder ("gnunet_fs_gtk_open_directory_dialog.glade", NULL); 161 GNUNET_GTK_get_new_builder ("gnunet_fs_gtk_open_directory_dialog.glade", NULL);
134 if (builder == NULL) 162 if (NULL == builder)
135 { 163 {
136 GNUNET_break (0); 164 GNUNET_break (0);
137 return; 165 return;
@@ -149,4 +177,4 @@ GNUNET_GTK_main_menu_file_open_gnunet_directory_activate_cb (GtkWidget * dummy,
149 gtk_window_present (GTK_WINDOW (ad)); 177 gtk_window_present (GTK_WINDOW (ad));
150} 178}
151 179
152/* end of gnunet-fs-gtk-main_window_open_directory.c */ 180/* end of gnunet-fs-gtk_open-directory.c */