📄 fe_gtk_site_ops.c
字号:
gtk_widget_ref (label3); gtk_object_set_data_full (GTK_OBJECT (upload_window), "label3", label3, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label3); gtk_table_attach (GTK_TABLE (table1), label3, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_label_set_justify (GTK_LABEL (label3), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label3), 7.45058e-09, 0.5); label6 = gtk_label_new ("To: "); gtk_widget_ref (label6); gtk_object_set_data_full (GTK_OBJECT (upload_window), "label6", label6, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label6); gtk_table_attach (GTK_TABLE (table1), label6, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_label_set_justify (GTK_LABEL (label6), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label6), 7.45058e-09, 0.5); dir_label = gtk_label_new (" "); gtk_widget_ref (dir_label); gtk_object_set_data_full (GTK_OBJECT (upload_window), "dir_label", dir_label, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (dir_label); gtk_table_attach (GTK_TABLE (table1), dir_label, 1, 2, 3, 4, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_label_set_justify (GTK_LABEL (dir_label), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (dir_label), 7.45058e-09, 0.5); hseparator1 = gtk_hseparator_new (); gtk_widget_ref (hseparator1); gtk_object_set_data_full (GTK_OBJECT (upload_window), "hseparator1", hseparator1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hseparator1); gtk_box_pack_start (GTK_BOX (vbox1), hseparator1, TRUE, TRUE, 5); label2 = gtk_label_new ("Current Progress"); gtk_widget_ref (label2); gtk_object_set_data_full (GTK_OBJECT (upload_window), "label2", label2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label2); gtk_box_pack_start (GTK_BOX (vbox1), label2, TRUE, FALSE, 2); gtk_misc_set_alignment (GTK_MISC (label2), 0.5, 1); main_progressbar = gtk_progress_bar_new (); gtk_widget_ref (main_progressbar); gtk_object_set_data_full (GTK_OBJECT (upload_window), "main_progressbar", main_progressbar, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (main_progressbar); gtk_box_pack_start (GTK_BOX (vbox1), main_progressbar, TRUE, FALSE, 0); gtk_progress_set_show_text (GTK_PROGRESS (main_progressbar), TRUE); label1 = gtk_label_new ("Total Progress"); gtk_widget_ref (label1); gtk_object_set_data_full (GTK_OBJECT (upload_window), "label1", label1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1); gtk_box_pack_start (GTK_BOX (vbox1), label1, TRUE, FALSE, 2); gtk_misc_set_alignment (GTK_MISC (label1), 0.5, 1); job_progressbar = gtk_progress_bar_new (); gtk_widget_ref (job_progressbar); gtk_object_set_data_full (GTK_OBJECT (upload_window), "job_progressbar", job_progressbar, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (job_progressbar); gtk_box_pack_start (GTK_BOX (vbox1), job_progressbar, TRUE, FALSE, 0); gtk_progress_set_show_text (GTK_PROGRESS (job_progressbar), TRUE); keep_going_button = gtk_check_button_new_with_label ("Keep going if there is a problem creating directories."); gtk_widget_ref (keep_going_button); gtk_object_set_data_full (GTK_OBJECT (upload_window), "keep_going_button", keep_going_button, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (keep_going_button); gtk_box_pack_start (GTK_BOX (vbox1), keep_going_button, TRUE, TRUE, 0); dialog_action_area1 = GNOME_DIALOG (upload_window)->action_area; gtk_object_set_data (GTK_OBJECT (upload_window), "dialog_action_area1", dialog_action_area1); gtk_widget_show (dialog_action_area1); gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END); gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area1), 8); gnome_dialog_append_button_with_pixmap (GNOME_DIALOG (upload_window), "Upload", GNOME_STOCK_PIXMAP_CONVERT); begin_button = g_list_last (GNOME_DIALOG (upload_window)->buttons)->data; gtk_widget_ref (begin_button); gtk_object_set_data_full (GTK_OBJECT (upload_window), "begin_button", begin_button, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (begin_button); GTK_WIDGET_SET_FLAGS (begin_button, GTK_CAN_DEFAULT); gnome_dialog_append_button_with_pixmap (GNOME_DIALOG (upload_window), "View Errors", GNOME_STOCK_PIXMAP_SEARCH); error_button = g_list_last (GNOME_DIALOG (upload_window)->buttons)->data; gtk_widget_ref (error_button); gtk_object_set_data_full (GTK_OBJECT (upload_window), "error_button", error_button, (GtkDestroyNotify) gtk_widget_unref); gtk_signal_connect_object (GTK_OBJECT (error_button), "clicked", GTK_SIGNAL_FUNC(gtk_widget_show), GTK_OBJECT (error_log_window)); gtk_widget_show (error_button); gtk_widget_set_sensitive (error_button, FALSE); GTK_WIDGET_SET_FLAGS (error_button, GTK_CAN_DEFAULT); gnome_dialog_append_button (GNOME_DIALOG (upload_window), GNOME_STOCK_BUTTON_CLOSE); close_button = g_list_last (GNOME_DIALOG (upload_window)->buttons)->data; gtk_widget_ref (close_button); gtk_object_set_data_full (GTK_OBJECT (upload_window), "close_button", close_button, (GtkDestroyNotify) gtk_widget_unref); gtk_signal_connect_object (GTK_OBJECT(close_button), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(upload_window)); gtk_widget_show (close_button); GTK_WIDGET_SET_FLAGS (close_button, GTK_CAN_DEFAULT); gtk_signal_connect (GTK_OBJECT (begin_button), "clicked", GTK_SIGNAL_FUNC (start_main_update), NULL); gtk_widget_show(upload_window);} int fe_catchup_site (void) { if (selected_site == NULL) { fe_status ("No site has been selected to catch-up."); return 0; } fe_gtk_question ("This will mark ALL files as already updated.\nAre you sure you want to do this?", (GnomeReplyCallback) catchup_selected); return 0;}void catchup_selected (gint button_number, gpointer data) { gchar result[BUFSIZ]; if (button_number == GNOME_YES) { site_catchup (selected_site); sprintf (result, "All files in %s of site %s\nhave been marked as updated.", selected_site->local_root, selected_site->name); fe_status (result); /* On huge sites, this may take ages? Progress bars/locking of ctree * selection may be advisable... */ site_writefiles (selected_site); redraw_main_area(); refresh_selected(); }}int fe_init_site (void) { if (selected_site == NULL) { fe_status ("No site has been selected to initialise."); return 0; } fe_gtk_question ("This will mark all files as *NOT* updated on the remote site.\nAre you sure you want to do this?", (GnomeReplyCallback) initialize_selected); return 0;}void initialize_selected (gint button_number, gpointer data) { gchar result[BUFSIZ]; switch (button_number) { case GNOME_YES: site_initialize (selected_site); sprintf (result, "All files in %s of site '%s'\nhave been marked as *NOT* updated.", selected_site->local_root, selected_site->name); fe_status (result); /* On huge sites, this may take ages? Progress bars/locking of ctree * selection may be advisable... */ site_writefiles (selected_site); redraw_main_area(); refresh_selected(); break; case GNOME_NO: break; }}void save_default (void) { gchar tmp[BUFSIZ]; extern char *rcfile; extern bool rcfile_saved; extern GtkWidget *sitecopy; if (rcfile == NULL) { gnome_app_error (GNOME_APP (sitecopy), "The current rcfile is set to NULL. Sites will not be saved. Contact the maintainer."); return; } if (rcfile_write (rcfile, all_sites) == 0) { sprintf (tmp, "Site definitions saved to %s.", rcfile); fe_status (tmp); } else { gnome_error_dialog ("There was an error writing the site definitions.\n They may not have saved correctly."); } rcfile_saved = true;}void delete_a_site (GtkWidget *button_or_menu, gpointer data) { gchar tmp[BUFSIZ]; if (selected_site == NULL) { gnome_error_dialog ("Cannot perform deletion - no site appears to be selected"); } else { sprintf (tmp, "Are you sure you wish to permanently delete the record of '%s'?", selected_site->name); fe_gtk_question (tmp, (GnomeReplyCallback) (delete_selected)); }}struct site_t *find_prev_site (struct site_t *a_site) { struct site_t *tmp; tmp = all_sites; while ( tmp->next != NULL) { if ( strcmp (tmp->next->name, selected_site->name) == 0 ) { return tmp; } else { tmp = tmp->next; } } return NULL; /* Bad if this ever happens */}void delete_selected (gint button_number) { struct site_t *tmp, *tmp2; extern GtkCTree *the_tree; extern GtkCTreeNode *current_site_node; extern bool rcfile_saved; if (button_number != GNOME_YES) return; if ( (selected_site != NULL) && (all_sites != NULL) ) { if (strcmp (all_sites->name, selected_site->name) == 0) { all_sites = all_sites->next; } else { tmp = find_prev_site (selected_site); if (tmp->next != NULL) { tmp2 = tmp->next; tmp->next = tmp2->next; } } gtk_ctree_remove_node (GTK_CTREE (the_tree), GTK_CTREE_NODE (current_site_node)); selected_site = NULL; current_site_node = NULL; } else { gnome_error_dialog ("I've detected no site is selected, but one should be selected in order to get here. Oh dear."); } clear_main_area(); rcfile_saved = false;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -