diff --git a/frontends/gtk-old/src/callbacks.c b/frontends/gtk-old/src/callbacks.c index 7864d3ce7..957b014b2 100644 --- a/frontends/gtk-old/src/callbacks.c +++ b/frontends/gtk-old/src/callbacks.c @@ -33,6 +33,22 @@ void idle() { gtk_main_iteration(); } + +void icon_resize(GtkWidget *window) { + + GtkWidget *icon_list = (GtkWidget*)lookup_widget(gp_gtk_main_window, "icons"); + int x, y; + + gdk_window_get_size(gp_gtk_main_window->window, &x, &y); + + if (abs(gp_gtk_old_width-x)>60) { + gtk_icon_list_freeze(GTK_ICON_LIST(icon_list)); + gtk_icon_list_thaw(GTK_ICON_LIST(icon_list)); + gp_gtk_old_width = x; + } + +} + int camera_set() { GtkWidget *camera_tree, *message, *message_label, *camera_label, *icon_list; @@ -624,7 +640,6 @@ void camera_index_common(int thumbnails) { camera_select(); return; } - if (gp_camera_abilities_by_name(buf, &a)==GP_ERROR) { gp_message ("Could not retrieve the camera's abilities"); return; @@ -703,12 +718,79 @@ void camera_download_both() { } -void camera_delete_selected() { - debug_print("camera delete selected"); +void camera_delete_common(int all) { + + GtkWidget *icon_list; + GtkIconListItem *item; + CameraAbilities a; + char buf[1024]; + int x, count=0; if (!gp_gtk_camera_init) if (camera_set()==GP_ERROR) {return;} + if (gp_confirm("Are you sure you want to DELETE the photos?")==0) + return; + + if (gp_setting_get("camera", buf)==GP_ERROR) { + gp_message ("ERROR: please choose your camera model again"); + camera_select(); + return; + } + if (gp_camera_abilities_by_name(buf, &a)==GP_ERROR) { + gp_message ("Could not retrieve the camera's abilities"); + return; + } + +/* Not working? */ + if (!a.file_delete) { + gp_message ("This camera does not support deleting photos."); + return; + } + + if ((count = gp_file_count())==GP_ERROR) { + gp_message ("Could not retrieve the number of pictures"); + return; + } + + if (all) { + for (x=0; xstate == GTK_STATE_SELECTED) { + if (gp_file_delete(0)==GP_ERROR) { + sprintf(buf, "Could not delete photo #%04i. Stopping.", x); + gp_message(buf); + return; + } + gtk_icon_list_remove(GTK_ICON_LIST(icon_list), item); + x--; + count--; + } + } + + for (x=0; xchild), - _("Download _Index")); - gtk_widget_add_accelerator (download_index1, "activate_item", camera1_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (download_index1); - gtk_object_set_data_full (GTK_OBJECT (main_window), "download_index1", download_index1, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (download_index1); - gtk_container_add (GTK_CONTAINER (camera1_menu), download_index1); - - download_index1_menu = gtk_menu_new (); - gtk_widget_ref (download_index1_menu); - gtk_object_set_data_full (GTK_OBJECT (main_window), "download_index1_menu", download_index1_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (download_index1), download_index1_menu); - download_index1_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (download_index1_menu)); - - thumbnails1 = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (thumbnails1)->child), - _("_Thumbnails")); - gtk_widget_add_accelerator (thumbnails1, "activate_item", download_index1_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (thumbnails1); - gtk_object_set_data_full (GTK_OBJECT (main_window), "thumbnails1", thumbnails1, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (thumbnails1); - gtk_container_add (GTK_CONTAINER (download_index1_menu), thumbnails1); - gtk_widget_add_accelerator (thumbnails1, "activate", accel_group, - GDK_i, GDK_MOD1_MASK, - GTK_ACCEL_VISIBLE); - - no_thumbnails1 = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (no_thumbnails1)->child), - _("_No Thumbnails")); - gtk_widget_add_accelerator (no_thumbnails1, "activate_item", download_index1_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (no_thumbnails1); - gtk_object_set_data_full (GTK_OBJECT (main_window), "no_thumbnails1", no_thumbnails1, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (no_thumbnails1); - gtk_container_add (GTK_CONTAINER (download_index1_menu), no_thumbnails1); - gtk_widget_add_accelerator (no_thumbnails1, "activate", accel_group, - GDK_e, GDK_MOD1_MASK, - GTK_ACCEL_VISIBLE); - download_selected1 = gtk_menu_item_new_with_label (""); tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (download_selected1)->child), _("Download _Selected")); @@ -1104,12 +1069,6 @@ create_main_window (void) gtk_signal_connect (GTK_OBJECT (select2), "activate", GTK_SIGNAL_FUNC (on_select_camera_activate), NULL); - gtk_signal_connect (GTK_OBJECT (thumbnails1), "activate", - GTK_SIGNAL_FUNC (on_index_thumbnails_activate), - NULL); - gtk_signal_connect (GTK_OBJECT (no_thumbnails1), "activate", - GTK_SIGNAL_FUNC (on_index_no_thumbnails_activate), - NULL); gtk_signal_connect (GTK_OBJECT (thumbnails2), "activate", GTK_SIGNAL_FUNC (on_download_thumbnails_activate), NULL); @@ -1217,7 +1176,7 @@ create_message_window_long (void) GtkWidget* create_confirm_window (void) { - /* widget labels: "yes" "no" */ + /* widget labels: "message" "yes" "no" */ GtkWidget *confirm_window; GtkWidget *vbox4; @@ -1244,7 +1203,7 @@ create_confirm_window (void) confirm_label = gtk_label_new (_("Are you sure?")); gtk_widget_ref (confirm_label); - gtk_object_set_data_full (GTK_OBJECT (confirm_window), "confirm_label", confirm_label, + gtk_object_set_data_full (GTK_OBJECT (confirm_window), "message", confirm_label, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (confirm_label); gtk_box_pack_start (GTK_BOX (vbox4), confirm_label, TRUE, TRUE, 0); @@ -1254,7 +1213,6 @@ create_confirm_window (void) gtk_object_set_data_full (GTK_OBJECT (confirm_window), "hsep", hsep, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hsep); - gtk_box_pack_end (GTK_BOX (vbox4), hsep, FALSE, FALSE, 0); hbox2 = gtk_hbox_new (TRUE, 5); gtk_widget_ref (hbox2); @@ -1262,6 +1220,7 @@ create_confirm_window (void) (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox2); gtk_box_pack_end (GTK_BOX (vbox4), hbox2, FALSE, TRUE, 0); + gtk_box_pack_end (GTK_BOX (vbox4), hsep, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox2), 5); button19 = gtk_button_new_with_label (_("Yes")); diff --git a/frontends/gtk-old/src/main.c b/frontends/gtk-old/src/main.c index 865857aa8..001b98cbe 100644 --- a/frontends/gtk-old/src/main.c +++ b/frontends/gtk-old/src/main.c @@ -18,11 +18,13 @@ #include "interface.h" #include "support.h" +/* The Globals */ GtkWidget *gp_gtk_main_window; GtkWidget *gp_gtk_progress_window; int gp_gtk_debug; char gp_gtk_camera_model[1024]; int gp_gtk_camera_init=0; +int gp_gtk_old_width; int main (int argc, char *argv[]) @@ -54,6 +56,8 @@ main (int argc, char *argv[]) gp_gtk_progress_window = create_progress_window(); gp_gtk_main_window = create_main_window (); gtk_widget_show (gp_gtk_main_window); + gtk_signal_connect(GTK_OBJECT(gp_gtk_main_window), "check_resize", + GTK_SIGNAL_FUNC(icon_resize), NULL); /* Retrieve the last width/height of the window */ if (gp_setting_get("width", buf)==GP_OK) { @@ -64,6 +68,9 @@ main (int argc, char *argv[]) } } + gdk_window_get_size(gp_gtk_main_window->window, &x, &y); + gp_gtk_old_width = x; + /* Retrieve the last camera used */ if (gp_setting_get("camera", buf)==GP_OK) { /* Set the camera model label */