OSDN Git Service

LinGui: allow display of picture settings before a scan has been done
authorjstebbins <jstebbins@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Tue, 6 Oct 2009 15:46:35 +0000 (15:46 +0000)
committerjstebbins <jstebbins@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Tue, 6 Oct 2009 15:46:35 +0000 (15:46 +0000)
preview window is still blocked, but picture settings can be viewed and
modified for the purpose of setting up a preset.

git-svn-id: svn://localhost/HandBrake/trunk@2871 b64f7644-9d1e-0410-96f1-a4d463321fa5

gtk/src/callbacks.c
gtk/src/ghb.ui
gtk/src/internal_defaults.xml
gtk/src/preview.c
gtk/src/preview.h
gtk/src/settings.c
gtk/src/widgetdeps.c

index 27c8793..4cd6447 100644 (file)
@@ -1450,6 +1450,7 @@ title_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
        {
                set_destination(ud);
        }
+       ghb_preview_set_visible(ud);
 }
 
 G_MODULE_EXPORT void
index 43ed3c5..eabbd70 100644 (file)
@@ -4728,7 +4728,7 @@ Requires subme >= 6 and trellis >= 1.</property>
             <property name="shadow_type">GTK_SHADOW_IN</property>
             <child>
               <object class="GtkTextView" id="activity_view">
-                <property name="width_request">400</property>
+                <property name="width_request">500</property>
                 <property name="height_request">500</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
index 9102582..991f56b 100644 (file)
                <integer>0</integer>
                <key>show_crop</key>
                <false />
+               <key>hide_settings</key>
+               <false />
+               <key>show_picture</key>
+               <false />
                <key>single_title</key>
                <integer>1</integer>
                <key>start_chapter</key>
index 9fd92bf..7968678 100644 (file)
@@ -831,25 +831,38 @@ set_visible(GtkWidget *widget, gboolean visible)
        }
 }
 
-G_MODULE_EXPORT void
-preview_button_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
+void
+ghb_preview_set_visible(signal_user_data_t *ud)
 {
        gint titleindex;
+       GtkWidget *widget;
+       gboolean settings_active;
 
-       g_debug("preview_button_clicked_cb()");
+       settings_active = ghb_settings_get_boolean(ud->settings, "show_picture");
+       widget = GHB_WIDGET (ud->builder, "preview_window");
        titleindex = ghb_settings_combo_int(ud->settings, "title");
-       if (titleindex >= 0)
+       if (settings_active && titleindex >= 0)
        {
                gint x, y;
-               GtkWidget *widget = GHB_WIDGET (ud->builder, "preview_window");
                x = ghb_settings_get_int(ud->settings, "preview_x");
                y = ghb_settings_get_int(ud->settings, "preview_y");
                if (x >= 0 && y >= 0)
                        gtk_window_move(GTK_WINDOW(widget), x, y);
-               set_visible(widget, gtk_toggle_button_get_active(
-                                                       GTK_TOGGLE_BUTTON(xwidget)));
+               set_visible(widget, 
+                                       ghb_settings_get_boolean(ud->settings, "show_preview"));
+       }
+       else
+       {
+               set_visible(widget, FALSE);
        }
+}
+
+G_MODULE_EXPORT void
+preview_button_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
+{
+       g_debug("preview_button_clicked_cb()");
        ghb_widget_to_setting (ud->settings, xwidget);
+       ghb_preview_set_visible(ud);
        ghb_check_dependency(ud, xwidget, NULL);
        const gchar *name = gtk_widget_get_name(xwidget);
        ghb_pref_save(ud->settings, name);
@@ -858,33 +871,23 @@ preview_button_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
 G_MODULE_EXPORT void
 picture_settings_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
 {
-       GtkWidget *widget, *toggle;
+       GtkWidget *widget;
        gboolean active, hide_settings;
        gint x, y;
 
        g_debug("picture_settings_clicked_cb()");
-       toggle = GHB_WIDGET (ud->builder, "hide_settings");
-       hide_settings = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle));
+       ghb_widget_to_setting (ud->settings, xwidget);
+
+       hide_settings = ghb_settings_get_boolean(ud->settings, "hide_settings");
 
+       active = ghb_settings_get_boolean(ud->settings, "show_picture");
        widget = GHB_WIDGET (ud->builder, "settings_window");
-       active = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(xwidget));
        x = ghb_settings_get_int(ud->settings, "settings_x");
        y = ghb_settings_get_int(ud->settings, "settings_y");
        if (x >= 0 && y >= 0)
                gtk_window_move(GTK_WINDOW(widget), x, y);
        set_visible(widget, active && !hide_settings);
-       if (ghb_settings_get_boolean(ud->settings, "show_preview"))
-       {
-               widget = GHB_WIDGET (ud->builder, "preview_window");
-               x = ghb_settings_get_int(ud->settings, "preview_x");
-               y = ghb_settings_get_int(ud->settings, "preview_y");
-               if (x >= 0 && y >= 0)
-                       gtk_window_move(GTK_WINDOW(widget), x, y);
-               set_visible(widget, active);
-               // The window may be hidden behind the main window, raise it
-               if (active)
-                       gtk_window_present(GTK_WINDOW(widget));
-       }
+       ghb_preview_set_visible(ud);
 }
 
 G_MODULE_EXPORT void
@@ -949,8 +952,10 @@ picture_settings_alt2_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
        GtkWidget *window;
 
        g_debug("picture_settings_alt2_clicked_cb()");
+       ghb_widget_to_setting (ud->settings, xwidget);
+       active = ghb_settings_get_boolean(ud->settings, "hide_settings");
+
        toggle = GHB_WIDGET (ud->builder, "hide_settings");
-       active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle));
        window = GHB_WIDGET(ud->builder, "settings_window");
        if (!active)
        {
index b30d1a9..f89e4f3 100644 (file)
@@ -27,5 +27,6 @@ void ghb_live_encode_done(signal_user_data_t *ud, gboolean success);
 void ghb_preview_cleanup(signal_user_data_t *ud);
 void ghb_live_reset(signal_user_data_t *ud);
 void ghb_par_scale(signal_user_data_t *ud, gint *width, gint *height, gint par_n, gint par_d);
+void ghb_preview_set_visible(signal_user_data_t *ud);
 
 #endif // _GHB_PREVIEW_H_
index 20cdb38..3e3de4b 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");
index 929ddb2..a9c3726 100644 (file)
@@ -18,8 +18,6 @@ static dependency_t dep_map[] =
 {
        {"title", "queue_add", "none", TRUE, FALSE},
        {"title", "queue_add_menu", "none", TRUE, FALSE},
-       {"title", "show_picture", "none", TRUE, FALSE},
-       {"title", "show_preview_menu", "none", TRUE, FALSE},
        {"title", "preview_frame", "none", TRUE, FALSE},
        {"title", "picture_label", "none", TRUE, FALSE},
        {"title", "picture_tab", "none", TRUE, FALSE},