OSDN Git Service

LinGui: allow specifying file to scan on command line
authorjstebbins <jstebbins@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Mon, 1 Nov 2010 18:06:08 +0000 (18:06 +0000)
committerjstebbins <jstebbins@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Mon, 1 Nov 2010 18:06:08 +0000 (18:06 +0000)
The gui will immediately scan this file at startup.
Makes 'Open with' nautilus options behave as expected.

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

gtk/src/callbacks.c
gtk/src/callbacks.h
gtk/src/main.c

index a964cf8..91f4f1f 100644 (file)
@@ -888,6 +888,22 @@ start_scan(
                        90000L * ghb_settings_get_int64(ud->settings, "MinTitleDuration"));
 }
 
+gboolean
+ghb_idle_scan(signal_user_data_t *ud)
+{
+       gchar *path;
+       gint preview_count;
+
+       show_scan_progress(ud);
+       path = ghb_settings_get_string( ud->settings, "scan_source");
+       prune_logs(ud);
+
+       preview_count = ghb_settings_get_int(ud->settings, "preview_count");
+       start_scan(ud, path, 0, preview_count);
+       g_free(path);
+       return FALSE;
+}
+
 void
 ghb_do_scan(
        signal_user_data_t *ud, 
index f873c87..38fafdf 100644 (file)
@@ -66,6 +66,7 @@ gpointer ghb_cache_volnames(signal_user_data_t *ud);
 void ghb_volname_cache_init(void);
 void ghb_update_destination_extension(signal_user_data_t *ud);
 void ghb_update_pending(signal_user_data_t *ud);
+gboolean ghb_idle_scan(signal_user_data_t *ud);
 
 #endif // _CALLBACKS_H_
 
index 4fde5d6..50cc5e4 100644 (file)
@@ -777,6 +777,11 @@ main (int argc, char *argv[])
 #endif
        g_option_context_parse (context, &argc, &argv, &error);
        g_option_context_free(context);
+
+       if (argc > 1 && dvd_device == NULL && argv[1][0] != '-')
+       {
+               dvd_device = argv[1];
+       }
        
        gtk_set_locale ();
        gtk_init (&argc, &argv);
@@ -913,7 +918,8 @@ main (int argc, char *argv[])
        if (dvd_device != NULL)
        {
                // Source overridden from command line option
-               ghb_settings_set_string(ud->settings, "source", dvd_device);
+               ghb_settings_set_string(ud->settings, "scan_source", dvd_device);
+               g_idle_add((GSourceFunc)ghb_idle_scan, ud);
        }
        // Reload and check status of the last saved queue
        g_idle_add((GSourceFunc)ghb_reload_queue, ud);