X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=gtk%2Fsrc%2Fsettings.c;h=f95b6a627fc809120c160a50b1129600ec325021;hb=44946a6f8be82a70e65ca534541183a26fdb804b;hp=41dd26ba25bc3040e354602fdc02b15e5eec2855;hpb=e2cd98f3e71232b518b7165705d25d965ab9d9f3;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/gtk/src/settings.c b/gtk/src/settings.c index 41dd26ba..f95b6a62 100644 --- a/gtk/src/settings.c +++ b/gtk/src/settings.c @@ -322,6 +322,13 @@ ghb_widget_value(GtkWidget *widget) value = ghb_int_value_new(dval); } } + else if (type == GTK_TYPE_SCALE_BUTTON) + { + gdouble dval; + + dval = gtk_scale_button_get_value(GTK_SCALE_BUTTON(widget)); + value = ghb_double_value_new(dval); + } else if (type == GTK_TYPE_TEXT_VIEW) { GtkTextBuffer *buffer; @@ -342,9 +349,13 @@ ghb_widget_value(GtkWidget *widget) } else if (type == GTK_TYPE_FILE_CHOOSER_BUTTON) { - const gchar *str; + gchar *str; str = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(widget)); + if (str == NULL) + str = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(widget)); value = ghb_string_value_new(str); + if (str != NULL) + g_free(str); } else { @@ -588,6 +599,11 @@ update_widget(GtkWidget *widget, const GValue *value) g_debug("hscale"); gtk_range_set_value(GTK_RANGE(widget), dval); } + else if (type == GTK_TYPE_SCALE_BUTTON) + { + g_debug("scale_button"); + gtk_scale_button_set_value(GTK_SCALE_BUTTON(widget), dval); + } else if (type == GTK_TYPE_TEXT_VIEW) { g_debug("textview (%s)", str); @@ -608,10 +624,27 @@ update_widget(GtkWidget *widget, const GValue *value) { gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(widget), str); } - else + else if (act == GTK_FILE_CHOOSER_ACTION_SAVE) { gtk_file_chooser_set_filename (GTK_FILE_CHOOSER(widget), str); } + else + { + if (!g_file_test(str, G_FILE_TEST_IS_DIR)) + { + gchar *dirname; + + dirname = g_path_get_dirname(str); + gtk_file_chooser_set_current_folder( + GTK_FILE_CHOOSER(widget), dirname); + g_free(dirname); + } + else + { + gtk_file_chooser_set_current_folder( + GTK_FILE_CHOOSER(widget), str); + } + } } else {