OSDN Git Service

LinGui:
authorjstebbins <jstebbins@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Sat, 2 May 2009 23:58:23 +0000 (23:58 +0000)
committerjstebbins <jstebbins@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Sat, 2 May 2009 23:58:23 +0000 (23:58 +0000)
poll for dvd volume labels after the ui is fully displayed
truncate leading and trailing spaces in volume labels
sanitize volume label after making a copy instead of stepping
on dvdreads private copy.

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

gtk/src/callbacks.c
gtk/src/callbacks.h
gtk/src/hb-backend.c
gtk/src/main.c
gtk/src/presets.c
gtk/src/queuehandler.c
gtk/src/queuehandler.h

index 00229f1..541d886 100644 (file)
@@ -291,9 +291,10 @@ on_quit1_activate(GtkMenuItem *quit, signal_user_data_t *ud)
 }
 
 gboolean
-uppers_and_unders(const gchar *str)
+uppers_and_unders(gchar *str)
 {
        if (str == NULL) return FALSE;
+       str = g_strchomp(g_strchug(str));
        while (*str)
        {
                if (*str == ' ')
@@ -709,7 +710,7 @@ source_dialog_extra_widgets(
        gtk_combo_box_append_text (combo, "Not Selected");
        while (link != NULL)
        {
-               gchar *name = get_dvd_volume_name(link->data);
+               gchar *name = get_dvd_device_name(link->data);
                gtk_combo_box_append_text(combo, name);
                g_free(name);
                g_object_unref(link->data);
@@ -2775,7 +2776,7 @@ hbfd_feature_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
        gtk_action_set_visible(action, hbfd);
 }
 
-void
+gboolean
 ghb_file_menu_add_dvd(signal_user_data_t *ud)
 {
        GList *link, *drives;
@@ -2833,6 +2834,7 @@ ghb_file_menu_add_dvd(signal_user_data_t *ud)
                }
                g_list_free(drives);
        }
+       return FALSE;
 }
 
 gboolean ghb_is_cd(GDrive *gd);
index f438ba5..5b2816c 100644 (file)
@@ -40,13 +40,12 @@ void warn_log_handler(
 void debug_log_handler(
        const gchar *domain, GLogLevelFlags flags, const gchar *msg, gpointer ud);
 void ghb_hbfd(signal_user_data_t *ud, gboolean hbfd);
-void ghb_file_menu_add_dvd(signal_user_data_t *ud);
+gboolean ghb_file_menu_add_dvd(signal_user_data_t *ud);
 void ghb_hal_init(void);
 gboolean ghb_message_dialog(
        GtkMessageType type, const gchar *message, 
        const gchar *no, const gchar *yes);
 void ghb_init_dep_map(void);
-gboolean ghb_reload_queue(signal_user_data_t *ud);
 gboolean ghb_cancel_encode(const gchar *extra_msg);
 GValue* ghb_start_next_job(signal_user_data_t *ud, gboolean find_first);
 void ghb_check_dependency(signal_user_data_t *ud, GtkWidget *widget);
index 10a5630..05a0aea 100644 (file)
@@ -4138,10 +4138,11 @@ ghb_dvd_volname(const gchar *device)
 {
        gchar *name;
        name = hb_dvd_name((gchar*)device);
-       if (name != NULL)
+       if (name != NULL && name[0] != 0)
        {
+               name = g_strdup(name);
                sanitize_volname(name);
-               return g_strdup(name);
+               return name;
        }
-       return name;
+       return NULL;
 }
index d4a1e87..505142b 100644 (file)
@@ -54,6 +54,7 @@
 #include "values.h"
 #include "icons.h"
 #include "callbacks.h"
+#include "queuehandler.h"
 #include "x264handler.h"
 #include "settings.h"
 #include "resources.h"
@@ -641,7 +642,6 @@ main (int argc, char *argv[])
        buffer = gtk_text_view_get_buffer (textview);
        g_signal_connect(buffer, "changed", (GCallback)x264_entry_changed_cb, ud);
 
-       ghb_file_menu_add_dvd(ud);
        ghb_combo_init(ud->builder);
 
        g_debug("ud %p\n", ud);
@@ -712,6 +712,10 @@ main (int argc, char *argv[])
        }
        // Start timer for monitoring libhb status, 500ms
        g_timeout_add (500, ghb_timer_cb, (gpointer)ud);
+
+       // Add dvd devices to File menu
+       g_idle_add((GSourceFunc)ghb_file_menu_add_dvd, ud);
+
        // Everything should be go-to-go.  Lets rock!
 
        gtk_main ();
index aef862f..25a5e96 100644 (file)
@@ -3074,7 +3074,7 @@ presets_drag_motion_cb(
        GtkWidget *widget;
 
        widget = gtk_drag_get_source_widget(ctx);
-       if (widget == NULL || widget != tv)
+       if (widget == NULL || widget != GTK_WIDGET(tv))
                return TRUE;
 
        // Get the type of the object being dragged
index a6c9f46..1ac36ca 100644 (file)
@@ -781,7 +781,7 @@ queue_drag_motion_cb(
        GtkWidget *widget;
 
        widget = gtk_drag_get_source_widget(ctx);
-       if (widget == NULL || widget != tv)
+       if (widget == NULL || widget != GTK_WIDGET(tv))
                return TRUE;
 
        // This bit checks to see if the source is allowed to be
index c817331..bf1677b 100644 (file)
@@ -29,5 +29,6 @@
 #include "settings.h"
 
 void ghb_queue_buttons_grey(signal_user_data_t *ud, gboolean working);
+gboolean ghb_reload_queue(signal_user_data_t *ud);
 
 #endif // _QUEUEHANDLER_H_