diff options
Diffstat (limited to 'src/plugins/fs/download.c')
-rw-r--r-- | src/plugins/fs/download.c | 39 |
1 files changed, 20 insertions, 19 deletions
diff --git a/src/plugins/fs/download.c b/src/plugins/fs/download.c index bdae8406..9d8d446f 100644 --- a/src/plugins/fs/download.c +++ b/src/plugins/fs/download.c | |||
@@ -60,9 +60,8 @@ addFilesToDirectory(const ECRS_FileInfo * fi, | |||
60 | &iter, | 60 | &iter, |
61 | path); | 61 | path); |
62 | gtk_tree_path_free(path); | 62 | gtk_tree_path_free(path); |
63 | /* check for existing entry -- this function | 63 | /* check for existing entry -- this function maybe called multiple |
64 | maybe called multiple times for the same | 64 | times for the same directory entry */ |
65 | directory entry */ | ||
66 | for (i=gtk_tree_model_iter_n_children(model, | 65 | for (i=gtk_tree_model_iter_n_children(model, |
67 | &iter)-1;i>=0;i--) { | 66 | &iter)-1;i>=0;i--) { |
68 | if (TRUE == gtk_tree_model_iter_nth_child(model, | 67 | if (TRUE == gtk_tree_model_iter_nth_child(model, |
@@ -214,6 +213,7 @@ fs_download_started(struct FSUI_DownloadList * fsui_dl, | |||
214 | path); | 213 | path); |
215 | gtk_tree_path_free(path); | 214 | gtk_tree_path_free(path); |
216 | list->searchList = sl_parent; | 215 | list->searchList = sl_parent; |
216 | list->searchViewRowReference = NULL; | ||
217 | if (sl_parent != NULL) { | 217 | if (sl_parent != NULL) { |
218 | if (dl_parent != NULL) { | 218 | if (dl_parent != NULL) { |
219 | GtkTreeIter piter; | 219 | GtkTreeIter piter; |
@@ -256,11 +256,12 @@ fs_download_started(struct FSUI_DownloadList * fsui_dl, | |||
256 | } | 256 | } |
257 | } while (TRUE == gtk_tree_model_iter_next(GTK_TREE_MODEL(sl_parent->tree), | 257 | } while (TRUE == gtk_tree_model_iter_next(GTK_TREE_MODEL(sl_parent->tree), |
258 | &iter)); | 258 | &iter)); |
259 | } else { | ||
260 | GE_BREAK(ectx, 0); | ||
259 | } | 261 | } |
260 | if (valid == FALSE) { | 262 | if (valid == FALSE) { |
261 | /* did not find matching entry in search list | 263 | /* did not find matching entry in search list -- bug! Continue |
262 | -- bug! Continue without adding to to | 264 | without adding to to search list! */ |
263 | search list! */ | ||
264 | GE_BREAK(ectx, 0); | 265 | GE_BREAK(ectx, 0); |
265 | list->searchList = NULL; | 266 | list->searchList = NULL; |
266 | } | 267 | } |
@@ -290,6 +291,7 @@ void fs_download_update(DownloadList * list, | |||
290 | GtkTreeIter iter; | 291 | GtkTreeIter iter; |
291 | GtkTreePath * path; | 292 | GtkTreePath * path; |
292 | unsigned int val; | 293 | unsigned int val; |
294 | struct ECRS_MetaData * meta; | ||
293 | 295 | ||
294 | path = gtk_tree_row_reference_get_path(list->summaryViewRowReference); | 296 | path = gtk_tree_row_reference_get_path(list->summaryViewRowReference); |
295 | gtk_tree_model_get_iter(GTK_TREE_MODEL(download_summary), | 297 | gtk_tree_model_get_iter(GTK_TREE_MODEL(download_summary), |
@@ -307,8 +309,6 @@ void fs_download_update(DownloadList * list, | |||
307 | if ( (list->is_directory == YES) && | 309 | if ( (list->is_directory == YES) && |
308 | (list->searchList != NULL) && | 310 | (list->searchList != NULL) && |
309 | (list->searchViewRowReference != NULL) ) { | 311 | (list->searchViewRowReference != NULL) ) { |
310 | struct ECRS_MetaData * meta; | ||
311 | |||
312 | meta = NULL; | 312 | meta = NULL; |
313 | ECRS_listDirectory(ectx, | 313 | ECRS_listDirectory(ectx, |
314 | data, | 314 | data, |
@@ -560,7 +560,6 @@ initiateDownload(GtkTreeModel * model, | |||
560 | } | 560 | } |
561 | gtk_tree_path_free(dirTreePath); | 561 | gtk_tree_path_free(dirTreePath); |
562 | 562 | ||
563 | |||
564 | /* construct completed/directory/real-filename */ | 563 | /* construct completed/directory/real-filename */ |
565 | idc_final_download_destination = MALLOC(strlen(final_download_dir) + 2 + | 564 | idc_final_download_destination = MALLOC(strlen(final_download_dir) + 2 + |
566 | strlen(idc_name) + strlen(GNUNET_DIRECTORY_EXT) + | 565 | strlen(idc_name) + strlen(GNUNET_DIRECTORY_EXT) + |
@@ -574,7 +573,8 @@ initiateDownload(GtkTreeModel * model, | |||
574 | dirPath); | 573 | dirPath); |
575 | disk_directory_create(ectx, | 574 | disk_directory_create(ectx, |
576 | idc_final_download_destination); | 575 | idc_final_download_destination); |
577 | strcat(idc_final_download_destination, idc_name); | 576 | strcat(idc_final_download_destination, |
577 | idc_name); | ||
578 | if ( (idc_final_download_destination[strlen(idc_final_download_destination) - 1] == '/') || | 578 | if ( (idc_final_download_destination[strlen(idc_final_download_destination) - 1] == '/') || |
579 | (idc_final_download_destination[strlen(idc_final_download_destination) - 1] == '\\') ) | 579 | (idc_final_download_destination[strlen(idc_final_download_destination) - 1] == '\\') ) |
580 | idc_final_download_destination[strlen(idc_final_download_destination) - 1] = '\0'; | 580 | idc_final_download_destination[strlen(idc_final_download_destination) - 1] = '\0'; |
@@ -585,13 +585,14 @@ initiateDownload(GtkTreeModel * model, | |||
585 | (0 != strcmp(&idc_final_download_destination[strlen(idc_final_download_destination) | 585 | (0 != strcmp(&idc_final_download_destination[strlen(idc_final_download_destination) |
586 | - strlen(GNUNET_DIRECTORY_EXT)], | 586 | - strlen(GNUNET_DIRECTORY_EXT)], |
587 | GNUNET_DIRECTORY_EXT)) ) ) | 587 | GNUNET_DIRECTORY_EXT)) ) ) |
588 | strcat(idc_final_download_destination, GNUNET_DIRECTORY_EXT); | 588 | strcat(idc_final_download_destination, |
589 | GNUNET_DIRECTORY_EXT); | ||
589 | 590 | ||
590 | /* FIXME: check that there is no pending download | 591 | /* FIXME: check that there is no pending download for idc_name! */ |
591 | for idc_name! */ | ||
592 | if (OK == check_pending(idc_name, | 592 | if (OK == check_pending(idc_name, |
593 | NULL)) { | 593 | NULL)) { |
594 | addLogEntry(_("Downloading `%s'"), idc_name); | 594 | addLogEntry(_("Downloading `%s'"), |
595 | idc_name); | ||
595 | FSUI_startDownload(ctx, | 596 | FSUI_startDownload(ctx, |
596 | getSpinButtonValue(searchContext->searchXML, | 597 | getSpinButtonValue(searchContext->searchXML, |
597 | "downloadAnonymitySpinButton"), | 598 | "downloadAnonymitySpinButton"), |
@@ -602,7 +603,8 @@ initiateDownload(GtkTreeModel * model, | |||
602 | searchContext->fsui_list, | 603 | searchContext->fsui_list, |
603 | (parentContext != NULL) ? parentContext->fsui_list : NULL); | 604 | (parentContext != NULL) ? parentContext->fsui_list : NULL); |
604 | } else { | 605 | } else { |
605 | addLogEntry(_("ERROR: already downloading `%s'"), idc_name); | 606 | addLogEntry(_("ERROR: already downloading `%s'"), |
607 | idc_name); | ||
606 | } | 608 | } |
607 | FREE(uri_name); | 609 | FREE(uri_name); |
608 | FREE(dirPath); | 610 | FREE(dirPath); |
@@ -634,7 +636,6 @@ void on_downloadButton_clicked_fs(GtkWidget * treeview, | |||
634 | * | 636 | * |
635 | * TODO: | 637 | * TODO: |
636 | * - support for recursive downloads | 638 | * - support for recursive downloads |
637 | * - support for showing directories (if downloaded like this) | ||
638 | * - support for user-specified filename | 639 | * - support for user-specified filename |
639 | */ | 640 | */ |
640 | void on_statusDownloadURIEntry_editing_done_fs(GtkWidget * entry, | 641 | void on_statusDownloadURIEntry_editing_done_fs(GtkWidget * entry, |
@@ -682,7 +683,8 @@ void on_statusDownloadURIEntry_editing_done_fs(GtkWidget * entry, | |||
682 | strcat(idc_final_download_destination, DIR_SEPARATOR_STR); | 683 | strcat(idc_final_download_destination, DIR_SEPARATOR_STR); |
683 | strcat(idc_final_download_destination, dname); | 684 | strcat(idc_final_download_destination, dname); |
684 | 685 | ||
685 | addLogEntry(_("Downloading `%s'"), uris); | 686 | addLogEntry(_("Downloading `%s'"), |
687 | uris); | ||
686 | idc_meta = ECRS_createMetaData(); | 688 | idc_meta = ECRS_createMetaData(); |
687 | FSUI_startDownload(ctx, | 689 | FSUI_startDownload(ctx, |
688 | getSpinButtonValue(getMainXML(), | 690 | getSpinButtonValue(getMainXML(), |
@@ -710,7 +712,7 @@ static void * fsui_callback(void * cls) { | |||
710 | return NULL; | 712 | return NULL; |
711 | } | 713 | } |
712 | 714 | ||
713 | static gboolean | 715 | static void |
714 | clearCompletedDownloadCallback(GtkTreeModel * model, | 716 | clearCompletedDownloadCallback(GtkTreeModel * model, |
715 | GtkTreePath * path, | 717 | GtkTreePath * path, |
716 | GtkTreeIter * iter, | 718 | GtkTreeIter * iter, |
@@ -730,7 +732,6 @@ clearCompletedDownloadCallback(GtkTreeModel * model, | |||
730 | run_with_save_calls(&fsui_callback, | 732 | run_with_save_calls(&fsui_callback, |
731 | &fcbc); | 733 | &fcbc); |
732 | } | 734 | } |
733 | return FALSE; | ||
734 | } | 735 | } |
735 | 736 | ||
736 | void on_clearCompletedDownloadsButton_clicked_fs(void * unused, | 737 | void on_clearCompletedDownloadsButton_clicked_fs(void * unused, |