aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2012-01-15 12:14:11 +0000
committerChristian Grothoff <christian@grothoff.org>2012-01-15 12:14:11 +0000
commit3561b55611f169a8165601db05f89829f4e06676 (patch)
tree3171531635396f6e751b4fcc8ca19a2c84fe16f3
parentd7c1bdf4fdd6cbf2d74f7503f29b36242deb1444 (diff)
downloadgnunet-gtk-3561b55611f169a8165601db05f89829f4e06676.tar.gz
gnunet-gtk-3561b55611f169a8165601db05f89829f4e06676.zip
-LRN: use filemetascanner
-rw-r--r--src/fs/gnunet-fs-gtk-main_window_file_publish.c97
1 files changed, 53 insertions, 44 deletions
diff --git a/src/fs/gnunet-fs-gtk-main_window_file_publish.c b/src/fs/gnunet-fs-gtk-main_window_file_publish.c
index bfe71873..750384cc 100644
--- a/src/fs/gnunet-fs-gtk-main_window_file_publish.c
+++ b/src/fs/gnunet-fs-gtk-main_window_file_publish.c
@@ -1203,6 +1203,55 @@ directory_scan_cb (void *cls, struct GNUNET_FS_DirScanner *ds,
1203} 1203}
1204 1204
1205void 1205void
1206scan_file_or_directory (struct MainPublishingDialogContext *ctx, gchar *filename,
1207 struct GNUNET_FS_BlockOptions *bo, int do_index)
1208{
1209 struct AddDirClientContext *adcc;
1210 GtkTextIter iter;
1211
1212 adcc = GNUNET_malloc (sizeof (struct AddDirClientContext));
1213 adcc->ctx = ctx;
1214 GNUNET_CONTAINER_DLL_insert_tail (ctx->adddir_head, ctx->adddir_tail, adcc);
1215 adcc->ds = GNUNET_FS_directory_scan_start (filename,
1216 GNUNET_NO, NULL, directory_scan_cb, adcc);
1217 adcc->directory_scan_bo = *bo;
1218 adcc->directory_scan_do_index = do_index;
1219
1220 adcc->progress_dialog_builder = GNUNET_GTK_get_new_builder (
1221 "gnunet_fs_gtk_progress_dialog.glade", adcc);
1222 adcc->progress_dialog = GTK_WIDGET (gtk_builder_get_object (
1223 adcc->progress_dialog_builder,
1224 "GNUNET_FS_GTK_progress_dialog"));
1225 adcc->progress_dialog_bar = GTK_PROGRESS_BAR (gtk_builder_get_object (
1226 adcc->progress_dialog_builder,
1227 "GNUNET_FS_GTK_progress_dialog_progressbar"));
1228 adcc->progress_dialog_ok = GTK_BUTTON (gtk_builder_get_object (
1229 adcc->progress_dialog_builder,
1230 "GNUNET_FS_GTK_progress_dialog_ok_button"));
1231 adcc->progress_dialog_cancel = GTK_BUTTON (gtk_builder_get_object (
1232 adcc->progress_dialog_builder,
1233 "GNUNET_FS_GTK_progress_dialog_cancel_button"));
1234 adcc->progress_dialog_textview = GTK_TEXT_VIEW (
1235 gtk_builder_get_object (adcc->progress_dialog_builder,
1236 "GNUNET_FS_GTK_progress_dialog_textview"));
1237 adcc->progress_dialog_textbuffer = GTK_TEXT_BUFFER (
1238 gtk_builder_get_object (adcc->progress_dialog_builder,
1239 "GNUNET_FS_GTK_progress_dialog_textbuffer"));
1240 gtk_widget_set_sensitive (GTK_WIDGET (adcc->progress_dialog_ok), FALSE);
1241
1242 gtk_text_buffer_get_end_iter (adcc->progress_dialog_textbuffer,
1243 &iter);
1244 adcc->progress_dialog_textmark = gtk_text_buffer_create_mark (
1245 adcc->progress_dialog_textbuffer, "scroll",
1246 &iter, FALSE);
1247
1248 gtk_window_set_transient_for (GTK_WINDOW (adcc->progress_dialog), adcc->ctx->master_pubdialog);
1249 gtk_window_present (GTK_WINDOW (adcc->progress_dialog));
1250
1251 update_selectivity (ctx);
1252}
1253
1254void
1206GNUNET_GTK_publish_directory_dialog_response_cb (GtkDialog * dialog, 1255GNUNET_GTK_publish_directory_dialog_response_cb (GtkDialog * dialog,
1207 gint response_id, 1256 gint response_id,
1208 struct MainPublishingDialogContext *ctx) 1257 struct MainPublishingDialogContext *ctx)
@@ -1212,8 +1261,6 @@ GNUNET_GTK_publish_directory_dialog_response_cb (GtkDialog * dialog,
1212 GtkSpinButton *sb; 1261 GtkSpinButton *sb;
1213 struct GNUNET_FS_BlockOptions bo; 1262 struct GNUNET_FS_BlockOptions bo;
1214 GtkWidget *ad; 1263 GtkWidget *ad;
1215 GtkTextIter iter;
1216 struct AddDirClientContext *adcc;
1217 1264
1218 if (g_signal_handler_is_connected (G_OBJECT (dialog), ctx->open_directory_handler_id)) 1265 if (g_signal_handler_is_connected (G_OBJECT (dialog), ctx->open_directory_handler_id))
1219 g_signal_handler_disconnect (G_OBJECT (dialog), ctx->open_directory_handler_id); 1266 g_signal_handler_disconnect (G_OBJECT (dialog), ctx->open_directory_handler_id);
@@ -1248,47 +1295,8 @@ GNUNET_GTK_publish_directory_dialog_response_cb (GtkDialog * dialog,
1248 (ctx->open_directory_builder, 1295 (ctx->open_directory_builder,
1249 "GNUNET_GTK_publish_directory_dialog_do_index_checkbutton"))); 1296 "GNUNET_GTK_publish_directory_dialog_do_index_checkbutton")));
1250 1297
1251 adcc = GNUNET_malloc (sizeof (struct AddDirClientContext)); 1298 scan_file_or_directory (ctx, filename, &bo, do_index);
1252 adcc->ctx = ctx;
1253 GNUNET_CONTAINER_DLL_insert_tail (ctx->adddir_head, ctx->adddir_tail, adcc);
1254 adcc->ds = GNUNET_FS_directory_scan_start (filename,
1255 GNUNET_NO, NULL, directory_scan_cb, adcc);
1256 adcc->directory_scan_bo = bo;
1257 adcc->directory_scan_do_index = do_index;
1258
1259 adcc->progress_dialog_builder = GNUNET_GTK_get_new_builder (
1260 "gnunet_fs_gtk_progress_dialog.glade", adcc);
1261 adcc->progress_dialog = GTK_WIDGET (gtk_builder_get_object (
1262 adcc->progress_dialog_builder,
1263 "GNUNET_FS_GTK_progress_dialog"));
1264 adcc->progress_dialog_bar = GTK_PROGRESS_BAR (gtk_builder_get_object (
1265 adcc->progress_dialog_builder,
1266 "GNUNET_FS_GTK_progress_dialog_progressbar"));
1267 adcc->progress_dialog_ok = GTK_BUTTON (gtk_builder_get_object (
1268 adcc->progress_dialog_builder,
1269 "GNUNET_FS_GTK_progress_dialog_ok_button"));
1270 adcc->progress_dialog_cancel = GTK_BUTTON (gtk_builder_get_object (
1271 adcc->progress_dialog_builder,
1272 "GNUNET_FS_GTK_progress_dialog_cancel_button"));
1273 adcc->progress_dialog_textview = GTK_TEXT_VIEW (
1274 gtk_builder_get_object (adcc->progress_dialog_builder,
1275 "GNUNET_FS_GTK_progress_dialog_textview"));
1276 adcc->progress_dialog_textbuffer = GTK_TEXT_BUFFER (
1277 gtk_builder_get_object (adcc->progress_dialog_builder,
1278 "GNUNET_FS_GTK_progress_dialog_textbuffer"));
1279 gtk_widget_set_sensitive (GTK_WIDGET (adcc->progress_dialog_ok), FALSE);
1280
1281 gtk_text_buffer_get_end_iter (adcc->progress_dialog_textbuffer,
1282 &iter);
1283 adcc->progress_dialog_textmark = gtk_text_buffer_create_mark (
1284 adcc->progress_dialog_textbuffer, "scroll",
1285 &iter, FALSE);
1286
1287 gtk_window_set_transient_for (GTK_WINDOW (adcc->progress_dialog), adcc->ctx->master_pubdialog);
1288 gtk_window_present (GTK_WINDOW (adcc->progress_dialog));
1289
1290 g_free (filename); 1299 g_free (filename);
1291 update_selectivity (ctx);
1292 } 1300 }
1293 gtk_widget_destroy (ad); 1301 gtk_widget_destroy (ad);
1294 g_object_unref (G_OBJECT (ctx->open_directory_builder)); 1302 g_object_unref (G_OBJECT (ctx->open_directory_builder));
@@ -1711,9 +1719,10 @@ GNUNET_GTK_publish_file_dialog_response_cb (GtkDialog * dialog,
1711 "GNUNET_GTK_publish_file_dialog_do_index_checkbutton"))); 1719 "GNUNET_GTK_publish_file_dialog_do_index_checkbutton")));
1712 1720
1713 filename = GNUNET_GTK_filechooser_get_filename_utf8 (GTK_FILE_CHOOSER (ad)); 1721 filename = GNUNET_GTK_filechooser_get_filename_utf8 (GTK_FILE_CHOOSER (ad));
1714 add_file_at_iter (ctx, filename, &bo, do_index, NULL); 1722
1723 scan_file_or_directory (ctx, filename, &bo, do_index);
1724
1715 g_free (filename); 1725 g_free (filename);
1716 update_selectivity (ctx);
1717 } 1726 }
1718 else 1727 else
1719 { 1728 {