X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=gtk%2Fsrc%2Fcallbacks.c;h=c29d4a8ac7f3e736d51aa18f3835c8e45f1e21ef;hb=4b72a63eb61a01275493c4bfb51ba02152d1c5e1;hp=682b90cf6a755cc36473affaf666b924683694f4;hpb=bc4ca95f1c72e6e30b9b5df7e809c1ba1abbd308;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/gtk/src/callbacks.c b/gtk/src/callbacks.c index 682b90cf..c29d4a8a 100644 --- a/gtk/src/callbacks.c +++ b/gtk/src/callbacks.c @@ -29,11 +29,15 @@ #include #include + +#if !defined(_NO_UPDATE_CHECK) #if defined(_OLD_WEBKIT) #include #else #include #endif +#endif + #include #include #else @@ -764,6 +768,8 @@ chooser_file_selected_cb(GtkFileChooser *dialog, signal_user_data_t *ud) gboolean foundit = FALSE; GtkComboBox *combo; + g_debug("chooser_file_selected_cb ()"); + if (name == NULL) return; combo = GTK_COMBO_BOX(GHB_WIDGET(ud->builder, "source_device")); store = gtk_combo_box_get_model(combo); @@ -793,6 +799,7 @@ dvd_device_changed_cb(GtkComboBox *combo, signal_user_data_t *ud) GtkWidget *dialog; gint ii; + g_debug("dvd_device_changed_cb ()"); ii = gtk_combo_box_get_active (combo); if (ii > 0) { @@ -809,52 +816,17 @@ dvd_device_changed_cb(GtkComboBox *combo, signal_user_data_t *ud) } } -G_MODULE_EXPORT void -source_type_changed_cb(GtkToggleButton *toggle, signal_user_data_t *ud) -{ - gchar *folder; - GtkFileChooser *chooser; - GtkWidget *dvd_device_combo; - - g_debug("source_type_changed_cb ()"); - chooser = GTK_FILE_CHOOSER(GHB_WIDGET(ud->builder, "source_dialog")); - dvd_device_combo = GHB_WIDGET(ud->builder, "source_device"); - folder = gtk_file_chooser_get_current_folder (chooser); - if (gtk_toggle_button_get_active (toggle)) - { - gtk_file_chooser_set_action (chooser, - GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER); - gtk_widget_set_sensitive (dvd_device_combo, FALSE); - gtk_combo_box_set_active (GTK_COMBO_BOX(dvd_device_combo), 0); - } - else - { - gtk_file_chooser_set_action (chooser, GTK_FILE_CHOOSER_ACTION_OPEN); - gtk_widget_set_sensitive (dvd_device_combo, TRUE); - } - if (folder != NULL) - { - gtk_file_chooser_set_current_folder(chooser, folder); - g_free(folder); - } -} - static void source_dialog_extra_widgets( signal_user_data_t *ud, - GtkWidget *dialog, - gboolean checkbutton_active) + GtkWidget *dialog) { - GtkToggleButton *checkbutton; GtkComboBox *combo; GList *drives, *link; - checkbutton = GTK_TOGGLE_BUTTON( - GHB_WIDGET(ud->builder, "source_folder_flag")); - gtk_toggle_button_set_active(checkbutton, checkbutton_active); + g_debug("source_dialog_extra_widgets ()"); combo = GTK_COMBO_BOX(GHB_WIDGET(ud->builder, "source_device")); - gtk_list_store_clear(GTK_LIST_STORE( - gtk_combo_box_get_model(combo))); + gtk_list_store_clear(GTK_LIST_STORE(gtk_combo_box_get_model(combo))); link = drives = dvd_device_list(); gtk_combo_box_append_text (combo, "Not Selected"); @@ -867,6 +839,7 @@ source_dialog_extra_widgets( link = link->next; } g_list_free(drives); + gtk_combo_box_set_active (combo, 0); } extern GValue *ghb_queue_edit_settings; @@ -911,7 +884,8 @@ start_scan( gtk_action_set_sensitive(action, FALSE); action = GHB_ACTION(ud->builder, "source_single_action"); gtk_action_set_sensitive(action, FALSE); - ghb_backend_scan(path, titlenum, preview_count); + ghb_backend_scan(path, titlenum, preview_count, + 90000L * ghb_settings_get_int64(ud->settings, "MinTitleDuration")); } void @@ -963,41 +937,15 @@ ghb_do_scan( } } -static gboolean -update_source_name(gpointer data) -{ - signal_user_data_t *ud = (signal_user_data_t*)data; - GtkWidget *dialog; - gchar *sourcename; - - sourcename = ghb_settings_get_string(ud->settings, "scan_source"); - dialog = GHB_WIDGET(ud->builder, "source_dialog"); - gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), sourcename); - g_free(sourcename); - return FALSE; -} - static void do_source_dialog(GtkButton *button, gboolean single, signal_user_data_t *ud) { GtkWidget *dialog; gchar *sourcename; gint response; - GtkFileChooserAction action; - gboolean checkbutton_active; g_debug("source_browse_clicked_cb ()"); sourcename = ghb_settings_get_string(ud->settings, "scan_source"); - checkbutton_active = FALSE; - if (g_file_test(sourcename, G_FILE_TEST_IS_DIR)) - { - action = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER; - checkbutton_active = TRUE; - } - else - { - action = GTK_FILE_CHOOSER_ACTION_OPEN; - } GtkWidget *widget; widget = GHB_WIDGET(ud->builder, "single_title_box"); if (single) @@ -1005,16 +953,11 @@ do_source_dialog(GtkButton *button, gboolean single, signal_user_data_t *ud) else gtk_widget_hide(widget); dialog = GHB_WIDGET(ud->builder, "source_dialog"); - source_dialog_extra_widgets(ud, dialog, checkbutton_active); - gtk_file_chooser_set_action(GTK_FILE_CHOOSER(dialog), action); - // Updating the filename in the file chooser dialog doesn't seem - // to work unless the dialog is running for some reason. - // So handle it in an "idle" event. - //gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), sourcename); - g_idle_add((GSourceFunc)update_source_name, ud); + source_dialog_extra_widgets(ud, dialog); + gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), sourcename); response = gtk_dialog_run(GTK_DIALOG (dialog)); gtk_widget_hide(dialog); - if (response == GTK_RESPONSE_ACCEPT) + if (response == GTK_RESPONSE_NO) { gchar *filename; @@ -1404,6 +1347,7 @@ show_title_info(signal_user_data_t *ud, ghb_title_info_t *tinfo) } } ud->dont_clear_presets = TRUE; + ud->scale_busy = TRUE; update_title_duration(ud); widget = GHB_WIDGET (ud->builder, "source_dimensions"); text = g_strdup_printf ("%d x %d", tinfo->width, tinfo->height); @@ -1454,7 +1398,8 @@ show_title_info(signal_user_data_t *ud, ghb_title_info_t *tinfo) ghb_ui_update(ud, "PictureLeftCrop", ghb_int64_value(tinfo->crop[2])); ghb_ui_update(ud, "PictureRightCrop", ghb_int64_value(tinfo->crop[3])); } - ghb_set_scale (ud, GHB_PIC_KEEP_PAR); + ud->scale_busy = FALSE; + ghb_set_scale (ud, GHB_PIC_KEEP_PAR|GHB_PIC_USE_MAX); gint width, height, crop[4]; crop[0] = ghb_settings_get_int(ud->settings, "PictureTopCrop"); crop[1] = ghb_settings_get_int(ud->settings, "PictureBottomCrop"); @@ -2972,6 +2917,7 @@ ghb_timer_cb(gpointer data) update_preview = FALSE; } +#if !defined(_NO_UPDATE_CHECK) if (!appcast_busy) { gchar *updates; @@ -3002,6 +2948,7 @@ ghb_timer_cb(gpointer data) } } } +#endif return TRUE; } @@ -3171,6 +3118,10 @@ ghb_log(gchar *log, ...) static void browse_url(const gchar *url) { +#if defined(_WIN32) + HINSTANCE r; + r = ShellExecute(NULL, "open", url, NULL, NULL, SW_SHOWNORMAL); +#else gboolean result; char *argv[] = {"xdg-open",NULL,NULL,NULL}; @@ -3196,6 +3147,7 @@ browse_url(const gchar *url) argv[2] = NULL; result = g_spawn_async(NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, NULL); +#endif } void @@ -4664,6 +4616,7 @@ process_appcast(signal_user_data_t *ud) gtk_label_set_text(GTK_LABEL(label), msg); #if !defined(_WIN32) +#if !defined(_NO_UPDATE_CHECK) if (html == NULL) { html = webkit_web_view_new(); @@ -4675,6 +4628,7 @@ process_appcast(signal_user_data_t *ud) } webkit_web_view_open(WEBKIT_WEB_VIEW(html), description); #endif +#endif dialog = GHB_WIDGET(ud->builder, "update_dialog"); response = gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_hide(dialog); @@ -4730,7 +4684,10 @@ ghb_net_recv_cb(GIOChannel *ioc, GIOCondition cond, gpointer data) } if (status == G_IO_STATUS_EOF) { - ud->appcast[ud->appcast_len] = 0; + if ( ud->appcast != NULL ) + { + ud->appcast[ud->appcast_len] = 0; + } ghb_net_close(ioc); process_appcast(ud); return FALSE;