OSDN Git Service

LinGui: When translating legacy presets, vquality 0 means RF 0, not 0%
[handbrake-jp/handbrake-jp-git.git] / gtk / src / settings.c
index f95b6a6..4bafd9b 100644 (file)
@@ -238,6 +238,13 @@ ghb_widget_value(GtkWidget *widget)
                bval = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
                value = ghb_boolean_value_new(bval);
        }
+       else if (type == GTK_TYPE_TOGGLE_TOOL_BUTTON)
+       {
+               g_debug("\ttoggle_tool_button");
+               gboolean bval;
+               bval = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(widget));
+               value = ghb_boolean_value_new(bval);
+       }
        else if (type == GTK_TYPE_TOGGLE_BUTTON)
        {
                g_debug("\ttoggle_button");
@@ -480,6 +487,11 @@ update_widget(GtkWidget *widget, const GValue *value)
                g_debug("check button");
                gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), ival);
        }
+       else if (type == GTK_TYPE_TOGGLE_TOOL_BUTTON)
+       {
+               g_debug("toggle button");
+               gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(widget), ival);
+       }
        else if (type == GTK_TYPE_TOGGLE_BUTTON)
        {
                g_debug("toggle button");
@@ -613,13 +625,18 @@ update_widget(GtkWidget *widget, const GValue *value)
        }
        else if (type == GTK_TYPE_LABEL)
        {
-               gtk_label_set_text (GTK_LABEL(widget), str);
+               gtk_label_set_markup (GTK_LABEL(widget), str);
        }
        else if (type == GTK_TYPE_FILE_CHOOSER_BUTTON)
        {
                GtkFileChooserAction act;
                act = gtk_file_chooser_get_action(GTK_FILE_CHOOSER(widget));
-               if (act == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER ||
+               if (str[0] == 0)
+               {
+                       // Do nothing
+                       ;
+               }
+               else if (act == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER ||
                        act == GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER)
                {
                        gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(widget), str);
@@ -630,7 +647,16 @@ update_widget(GtkWidget *widget, const GValue *value)
                }
                else
                {
-                       if (!g_file_test(str, G_FILE_TEST_IS_DIR))
+                       if (g_file_test(str, G_FILE_TEST_IS_DIR))
+                       {
+                               gtk_file_chooser_set_current_folder(
+                                       GTK_FILE_CHOOSER(widget), str);
+                       }
+                       else if (g_file_test(str, G_FILE_TEST_EXISTS))
+                       {
+                               gtk_file_chooser_set_filename (GTK_FILE_CHOOSER(widget), str);
+                       }
+                       else
                        {
                                gchar *dirname;
 
@@ -639,11 +665,6 @@ update_widget(GtkWidget *widget, const GValue *value)
                                        GTK_FILE_CHOOSER(widget), dirname);
                                g_free(dirname);
                        }
-                       else
-                       {
-                               gtk_file_chooser_set_current_folder(
-                                       GTK_FILE_CHOOSER(widget), str);
-                       }
                }
        }
        else