diff options
-rw-r--r-- | gtk/src/callbacks.c | 167 | ||||
-rw-r--r-- | gtk/src/callbacks.h | 5 | ||||
-rw-r--r-- | gtk/src/ghb.ui | 185 | ||||
-rw-r--r-- | gtk/src/hb-backend.c | 4 | ||||
-rw-r--r-- | gtk/src/internal_defaults.xml | 4 | ||||
-rw-r--r-- | gtk/src/main.c | 2 | ||||
-rw-r--r-- | gtk/src/queuehandler.c | 2 | ||||
-rw-r--r-- | gtk/src/resource_data.h | 284 | ||||
-rw-r--r-- | gtk/src/resources.plist | 189 |
9 files changed, 770 insertions, 72 deletions
diff --git a/gtk/src/callbacks.c b/gtk/src/callbacks.c index 1898271af..acb434e7e 100644 --- a/gtk/src/callbacks.c +++ b/gtk/src/callbacks.c @@ -467,18 +467,18 @@ update_source_label(signal_user_data_t *ud, const gchar *source) return TRUE; } -static GtkWidget *dvd_device_combo = NULL; - void -chooser_file_selected_cb(GtkFileChooser *dialog, GtkComboBox *combo) +chooser_file_selected_cb(GtkFileChooser *dialog, signal_user_data_t *ud) { const gchar *name = gtk_file_chooser_get_filename (dialog); GtkTreeModel *store; GtkTreeIter iter; const gchar *device; gboolean foundit = FALSE; + GtkComboBox *combo; if (name == NULL) return; + combo = GTK_COMBO_BOX(GHB_WIDGET(ud->builder, "source_device")); store = gtk_combo_box_get_model(combo); if (gtk_tree_model_get_iter_first(store, &iter)) { @@ -499,28 +499,39 @@ chooser_file_selected_cb(GtkFileChooser *dialog, GtkComboBox *combo) } void -dvd_device_changed_cb(GtkComboBox *combo, GtkWidget *dialog) +dvd_device_changed_cb(GtkComboBox *combo, signal_user_data_t *ud) { - gint ii = gtk_combo_box_get_active (combo); - if (ii != 0) + GtkWidget *dialog; + gint ii; + + ii = gtk_combo_box_get_active (combo); + if (ii > 0) { - const gchar *device = gtk_combo_box_get_active_text (combo); - const gchar *name = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(dialog)); + const gchar *device, *name; + + dialog = GHB_WIDGET(ud->builder, "source_dialog"); + device = gtk_combo_box_get_active_text (combo); + name = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(dialog)); if (name == NULL || strcmp(name, device) != 0) gtk_file_chooser_select_filename (GTK_FILE_CHOOSER(dialog), device); } } void -source_type_changed_cb(GtkToggleButton *toggle, GtkFileChooser *chooser) +source_type_changed_cb(GtkToggleButton *toggle, signal_user_data_t *ud) { gchar *folder; + GtkFileChooser *chooser; + GtkWidget *dvd_device_combo; g_debug("source_type_changed_cb ()"); + chooser = GTK_FILE_CHOOSER(GHB_WIDGET(ud->builder, "source_dialog")); + dvd_device_combo = GHB_WIDGET(ud->builder, "source_device"); folder = gtk_file_chooser_get_current_folder (chooser); if (gtk_toggle_button_get_active (toggle)) { - gtk_file_chooser_set_action (chooser, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER); + gtk_file_chooser_set_action (chooser, + GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER); gtk_widget_set_sensitive (dvd_device_combo, FALSE); gtk_combo_box_set_active (GTK_COMBO_BOX(dvd_device_combo), 0); } @@ -536,61 +547,44 @@ source_type_changed_cb(GtkToggleButton *toggle, GtkFileChooser *chooser) } } -static GtkWidget* -source_dialog_extra_widgets(GtkWidget *dialog, gboolean checkbutton_active) +static void +source_dialog_extra_widgets( + signal_user_data_t *ud, + GtkWidget *dialog, + gboolean checkbutton_active) { - GtkBox *vbox; - GtkWidget *checkbutton; - - vbox = GTK_BOX(gtk_vbox_new (FALSE, 2)); - checkbutton = gtk_check_button_new_with_label ("Open VIDEO_TS folder"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(checkbutton), checkbutton_active); - gtk_box_pack_start (vbox, checkbutton, FALSE, FALSE, 1); - gtk_widget_show(checkbutton); - - GtkWidget *combo; - GtkBox *hbox; + GtkToggleButton *checkbutton; + GtkComboBox *combo; GList *drives, *link; - GtkWidget *label, *blank; + + checkbutton = GTK_TOGGLE_BUTTON( + GHB_WIDGET(ud->builder, "source_folder_flag")); + gtk_toggle_button_set_active(checkbutton, checkbutton_active); + combo = GTK_COMBO_BOX(GHB_WIDGET(ud->builder, "source_device")); + gtk_list_store_clear(GTK_LIST_STORE( + gtk_combo_box_get_model(combo))); - hbox = GTK_BOX(gtk_hbox_new (FALSE, 2)); - combo = gtk_combo_box_new_text(); - label = gtk_label_new("Detected DVD devices:"); - blank = gtk_label_new(""); link = drives = dvd_device_list(); - gtk_combo_box_append_text (GTK_COMBO_BOX(combo), "Not Selected"); + gtk_combo_box_append_text (combo, "Not Selected"); while (link != NULL) { gchar *name = (gchar*)link->data; - gtk_combo_box_append_text (GTK_COMBO_BOX(combo), name); + gtk_combo_box_append_text(combo, name); g_free(name); link = link->next; } g_list_free(drives); - gtk_combo_box_set_active (GTK_COMBO_BOX(combo), 0); - gtk_box_pack_start (vbox, GTK_WIDGET(hbox), FALSE, FALSE, 1); - gtk_widget_show(GTK_WIDGET(hbox)); - gtk_box_pack_start (hbox, label, FALSE, FALSE, 1); - gtk_widget_show(label); - gtk_box_pack_start (hbox, combo, FALSE, FALSE, 2); - gtk_widget_show(combo); - gtk_box_pack_start (hbox, blank, TRUE, TRUE, 1); - gtk_widget_show(blank); - - // Ugly hackish global alert - dvd_device_combo = combo; - g_signal_connect(combo, "changed", (GCallback)dvd_device_changed_cb, dialog); - g_signal_connect(dialog, "selection-changed", (GCallback)chooser_file_selected_cb, combo); - - g_signal_connect(checkbutton, "toggled", (GCallback)source_type_changed_cb, dialog); - return GTK_WIDGET(vbox); } extern GValue *ghb_queue_edit_settings; static gchar *last_scan_file = NULL; void -ghb_do_scan(signal_user_data_t *ud, const gchar *filename, gboolean force) +ghb_do_scan( + signal_user_data_t *ud, + const gchar *filename, + gint titlenum, + gboolean force) { if (!force && last_scan_file != NULL && strcmp(last_scan_file, filename) == 0) @@ -629,7 +623,7 @@ ghb_do_scan(signal_user_data_t *ud, const gchar *filename, gboolean force) prune_logs(ud); gint preview_count; preview_count = ghb_settings_get_int(ud->settings, "preview_count"); - ghb_backend_scan(path, 0, preview_count); + ghb_backend_scan(path, titlenum, preview_count); g_free(path); } else @@ -639,11 +633,24 @@ ghb_do_scan(signal_user_data_t *ud, const gchar *filename, gboolean force) } } -void -source_button_clicked_cb(GtkButton *button, signal_user_data_t *ud) +static gboolean +update_source_name(gpointer data) +{ + signal_user_data_t *ud = (signal_user_data_t*)data; + GtkWidget *dialog; + gchar *sourcename; + + sourcename = ghb_settings_get_string(ud->settings, "source"); + dialog = GHB_WIDGET(ud->builder, "source_dialog"); + gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), sourcename); + g_free(sourcename); + return FALSE; +} + +static void +do_source_dialog(GtkButton *button, gboolean single, signal_user_data_t *ud) { GtkWidget *dialog; - GtkWidget *widget; gchar *sourcename; gint response; GtkFileChooserAction action; @@ -661,15 +668,20 @@ source_button_clicked_cb(GtkButton *button, signal_user_data_t *ud) { action = GTK_FILE_CHOOSER_ACTION_OPEN; } - dialog = gtk_file_chooser_dialog_new ("Select Source", - NULL, - action, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, - NULL); - widget = source_dialog_extra_widgets(dialog, checkbutton_active); - gtk_file_chooser_set_extra_widget (GTK_FILE_CHOOSER(dialog), widget); - gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), sourcename); + GtkWidget *widget; + widget = GHB_WIDGET(ud->builder, "single_title_box"); + if (single) + gtk_widget_show(widget); + else + gtk_widget_hide(widget); + dialog = GHB_WIDGET(ud->builder, "source_dialog"); + source_dialog_extra_widgets(ud, dialog, checkbutton_active); + gtk_file_chooser_set_action(GTK_FILE_CHOOSER(dialog), action); + // Updating the filename in the file chooser dialog doesn't seem + // to work unless the dialog is running for some reason. + // So handle it in an "idle" event. + //gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), sourcename); + g_idle_add((GSourceFunc)update_source_name, ud); response = gtk_dialog_run(GTK_DIALOG (dialog)); gtk_widget_hide(dialog); if (response == GTK_RESPONSE_ACCEPT) @@ -679,10 +691,17 @@ source_button_clicked_cb(GtkButton *button, signal_user_data_t *ud) filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); if (filename != NULL) { - ghb_do_scan(ud, filename, TRUE); + gint titlenum; + + if (single) + titlenum = ghb_settings_get_int(ud->settings, "single_title"); + else + titlenum = 0; + ghb_do_scan(ud, filename, titlenum, TRUE); if (strcmp(sourcename, filename) != 0) { - ghb_settings_set_string (ud->settings, "default_source", filename); + ghb_settings_set_string (ud->settings, + "default_source", filename); ghb_pref_save (ud->settings, "default_source"); ghb_dvd_set_current (filename, ud); } @@ -690,7 +709,18 @@ source_button_clicked_cb(GtkButton *button, signal_user_data_t *ud) } } g_free(sourcename); - gtk_widget_destroy(dialog); +} + +void +source_button_clicked_cb(GtkButton *button, signal_user_data_t *ud) +{ + do_source_dialog(button, FALSE, ud); +} + +void +single_title_source_cb(GtkButton *button, signal_user_data_t *ud) +{ + do_source_dialog(button, TRUE, ud); } void @@ -701,7 +731,7 @@ dvd_source_activate_cb(GtkAction *action, signal_user_data_t *ud) sourcename = ghb_settings_get_string(ud->settings, "source"); filename = gtk_action_get_name(action); - ghb_do_scan(ud, filename, TRUE); + ghb_do_scan(ud, filename, 0, TRUE); if (strcmp(sourcename, filename) != 0) { ghb_settings_set_string (ud->settings, "default_source", filename); @@ -2337,6 +2367,13 @@ debug_log_handler(const gchar *domain, GLogLevelFlags flags, const gchar *msg, g } void +warn_log_handler(const gchar *domain, GLogLevelFlags flags, const gchar *msg, gpointer data) +{ + printf("mywarning\n"); + printf("%s: %s\n", domain, msg); +} + +void ghb_hbfd(signal_user_data_t *ud, gboolean hbfd) { GtkWidget *widget; diff --git a/gtk/src/callbacks.h b/gtk/src/callbacks.h index 1e7ad2f86..2c17e50e2 100644 --- a/gtk/src/callbacks.h +++ b/gtk/src/callbacks.h @@ -31,6 +31,8 @@ void ghb_check_all_depencencies(signal_user_data_t *ud); gboolean ghb_timer_cb(gpointer data); gboolean ghb_log_cb(GIOChannel *source, GIOCondition cond, gpointer data); +void warn_log_handler( + const gchar *domain, GLogLevelFlags flags, const gchar *msg, gpointer ud); void debug_log_handler( const gchar *domain, GLogLevelFlags flags, const gchar *msg, gpointer ud); void ghb_hbfd(signal_user_data_t *ud, gboolean hbfd); @@ -44,7 +46,8 @@ 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); -void ghb_do_scan(signal_user_data_t *ud, const gchar *filename, gboolean force); +void ghb_do_scan( signal_user_data_t *ud, const gchar *filename, + gint titlenum, gboolean force); void ghb_log(gchar *log, ...); gpointer ghb_check_update(signal_user_data_t *ud); void ghb_uninhibit_gpm(void); diff --git a/gtk/src/ghb.ui b/gtk/src/ghb.ui index ea7ff7634..7cc27df59 100644 --- a/gtk/src/ghb.ui +++ b/gtk/src/ghb.ui @@ -185,6 +185,14 @@ <property name="page_size">0</property> <property name="value">0</property> </object> + <object class="GtkAdjustment" id="adjustment24"> + <property name="upper">100</property> + <property name="lower">1</property> + <property name="page_increment">1</property> + <property name="step_increment">1</property> + <property name="page_size">0</property> + <property name="value">1</property> + </object> <object class="GtkAdjustment" id="preview_progress_adj"> <property name="upper">100</property> <property name="lower">0</property> @@ -218,6 +226,14 @@ </object> </child> <child> + <object class="GtkAction" id="source_single"> + <property name="icon-name">gtk-open</property> + <property name="name">source_single</property> + <property name="label">Single _Title</property> + <signal handler="single_title_source_cb" name="activate"/> + </object> + </child> + <child> <object class="GtkAction" id="destination1"> <property name="stock_id">gtk-save-as</property> <property name="name">destination1</property> @@ -354,6 +370,7 @@ <menubar name="menubar1"> <menu action="menuitem1"> <menuitem action="source1"/> + <menuitem action="source_single"/> <menuitem action="destination1"/> <separator/> <menuitem action="preferences"/> @@ -380,6 +397,12 @@ </menubar> </ui> </object> + <object class="GtkListStore" id="device_list"> + <columns> + <!-- column-name device --> + <column type="gchararray"/> + </columns> + </object> <object class="GtkWindow" id="hb_window"> <property name="visible">True</property> <property name="title" translatable="yes">HandBrake</property> @@ -5385,4 +5408,166 @@ libxvidcore authors: <action-widget response="0">update_remind</action-widget> </action-widgets> </object> + <object class="GtkFileChooserDialog" id="source_dialog"> + <property name="border_width">5</property> + <property name="modal">True</property> + <property name="type_hint">dialog</property> + <property name="skip_taskbar_hint">True</property> + <property name="skip_pager_hint">True</property> + <property name="has_separator">False</property> + <signal handler="chooser_file_selected_cb" name="selection-changed"/> + <child internal-child="vbox"> + <object class="GtkVBox" id="dialog-vbox6"> + <property name="visible">True</property> + <property name="spacing">2</property> + <child> + <object class="GtkVBox" id="source_extra"> + <property name="visible">True</property> + <child> + <object class="GtkHBox" id="single_title_box"> + <property name="visible">True</property> + <property name="spacing">4</property> + <child> + <object class="GtkLabel" id="label89"> + <property name="visible">True</property> + <property name="label" translatable="yes">Title Number:</property> + </object> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkAlignment" id="alignment1"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="xscale">0</property> + <child> + <object class="GtkSpinButton" id="single_title"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="adjustment">adjustment24</property> + <signal name="value_changed" handler="setting_widget_changed_cb"/> + </object> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="source_folder_flag"> + <property name="label" translatable="yes">Open VIDEO_TS folder</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="xalign">0</property> + <property name="draw_indicator">True</property> + <signal handler="source_type_changed_cb" name="toggled"/> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox74"> + <property name="visible">True</property> + <property name="spacing">4</property> + <child> + <object class="GtkLabel" id="label90"> + <property name="visible">True</property> + <property name="label" translatable="yes">Detected DVD devices:</property> + </object> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkAlignment" id="alignment2"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="xscale">0</property> + <child> + <object class="GtkComboBox" id="source_device"> + <property name="visible">True</property> + <property name="model">device_list</property> + <signal handler="dvd_device_changed_cb" name="changed"/> + <child> + <object class="GtkCellRendererText" id="cellrenderertext1"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">2</property> + </packing> + </child> + <child internal-child="action_area"> + <object class="GtkHButtonBox" id="dialog-action_area6"> + <property name="visible">True</property> + <property name="layout_style">end</property> + <child> + <object class="GtkButton" id="source_cancel"> + <property name="label" translatable="yes">gtk-cancel</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="can_default">True</property> + <property name="has_default">True</property> + <property name="receives_default">True</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="source_ok"> + <property name="label" translatable="yes">gtk-ok</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="can_default">True</property> + <property name="has_default">True</property> + <property name="receives_default">True</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="pack_type">end</property> + <property name="position">0</property> + </packing> + </child> + </object> + </child> + <action-widgets> + <action-widget response="-6">source_cancel</action-widget> + <action-widget response="-3">source_ok</action-widget> + </action-widgets> + </object> </interface> diff --git a/gtk/src/hb-backend.c b/gtk/src/hb-backend.c index 9f889ad79..518d1b44d 100644 --- a/gtk/src/hb-backend.c +++ b/gtk/src/hb-backend.c @@ -198,8 +198,8 @@ combo_opts_t direct_opts = static options_map_t d_badapt_opts[] = { {"Off", "0", 0, "0"}, - {"Faster", "1", 1, "1"}, - {"More Effecient", "2", 2, "2"}, + {"Fast", "1", 1, "1"}, + {"Optimal", "2", 2, "2"}, }; combo_opts_t badapt_opts = { diff --git a/gtk/src/internal_defaults.xml b/gtk/src/internal_defaults.xml index 1bc553f2d..8aaa284f6 100644 --- a/gtk/src/internal_defaults.xml +++ b/gtk/src/internal_defaults.xml @@ -32,6 +32,8 @@ <integer>0</integer> <key>scale_width</key> <integer>0</integer> + <key>single_title</key> + <integer>1</integer> <key>start_chapter</key> <integer>1</integer> <key>start_frame</key> @@ -123,7 +125,7 @@ <key>update_skip_version</key> <integer>0</integer> <key>VideoQualityGranularity</key> - <string>0.2</string> + <string>1</string> <key>version</key> <string>0.1</string> </dict> diff --git a/gtk/src/main.c b/gtk/src/main.c index 779e8c5d6..72deb03a7 100644 --- a/gtk/src/main.c +++ b/gtk/src/main.c @@ -524,6 +524,8 @@ main (int argc, char *argv[]) ud = g_malloc0(sizeof(signal_user_data_t)); ud->debug = ghb_debug; g_log_set_handler (NULL, G_LOG_LEVEL_DEBUG, debug_log_handler, ud); + g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, warn_log_handler, ud); + //g_log_set_handler ("Gtk", G_LOG_LEVEL_CRITICAL, warn_log_handler, ud); ud->settings = ghb_settings_new(); // Enable events that alert us to media change events watch_volumes (ud); diff --git a/gtk/src/queuehandler.c b/gtk/src/queuehandler.c index bed650262..848364d0e 100644 --- a/gtk/src/queuehandler.c +++ b/gtk/src/queuehandler.c @@ -1193,7 +1193,7 @@ queue_edit_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud) } gchar *source; source = ghb_settings_get_string(ghb_queue_edit_settings, "source"); - ghb_do_scan(ud, source, FALSE); + ghb_do_scan(ud, source, 0, FALSE); g_free(source); } } diff --git a/gtk/src/resource_data.h b/gtk/src/resource_data.h index 4c480cf71..98530766d 100644 --- a/gtk/src/resource_data.h +++ b/gtk/src/resource_data.h @@ -238,6 +238,15 @@ " <property name="page_size">0</property>\n" " <property name="value">0</property>\n" " </object>\n" +" <object class="GtkAdjustment" id="adjustment24"" +";>\n" +" <property name="upper">100</property>\n" +" <property name="lower">1</property>\n" +" <property name="page_increment">1</property>\n" +" <property name="step_increment">1</property>\n" +" <property name="page_size">0</property>\n" +" <property name="value">1</property>\n" +" </object>\n" " <object class="GtkAdjustment" id="preview_progress_" "adj">\n" " <property name="upper">100</property>\n" @@ -285,6 +294,19 @@ " </object>\n" " </child>\n" " <child>\n" +" <object class="GtkAction" id="source_single" +"">\n" +" <property name="icon-name">gtk-open</pro" +"perty>\n" +" <property name="name">source_single</pro" +"perty>\n" +" <property name="label">Single _Title</pr" +"operty>\n" +" <signal handler="single_title_source_cb" name=" +""activate"/>\n" +" </object>\n" +" </child>\n" +" <child>\n" " <object class="GtkAction" id="destination1&" "quot;>\n" " <property name="stock_id">gtk-save-as</p" @@ -501,6 +523,7 @@ " <menubar name="menubar1">\n" " <menu action="menuitem1">\n" " <menuitem action="source1"/>\n" +" <menuitem action="source_single"/>\n" " <menuitem action="destination1"/>\n" " <separator/>\n" " <menuitem action="preferences"/>\n" @@ -527,6 +550,13 @@ " </menubar>\n" " </ui>\n" " </object>\n" +" <object class="GtkListStore" id="device_list"&" +"gt;\n" +" <columns>\n" +" <!-- column-name device -->\n" +" <column type="gchararray"/>\n" +" </columns>\n" +" </object>\n" " <object class="GtkWindow" id="hb_window">\n" " <property name="visible">True</property>\n" " <property name="title" translatable="yes">" @@ -8622,6 +8652,256 @@ "ion-widget>\n" " </action-widgets>\n" " </object>\n" +" <object class="GtkFileChooserDialog" id="source_dia" +"log">\n" +" <property name="border_width">5</property>\n" +" <property name="modal">True</property>\n" +" <property name="type_hint">dialog</property>\n" +" <property name="skip_taskbar_hint">True</propert" +"y>\n" +" <property name="skip_pager_hint">True</property&" +"gt;\n" +" <property name="has_separator">False</property&g" +"t;\n" +" <signal handler="chooser_file_selected_cb" name="" +"selection-changed"/>\n" +" <child internal-child="vbox">\n" +" <object class="GtkVBox" id="dialog-vbox6"&" +"gt;\n" +" <property name="visible">True</property>\n" +" <property name="spacing">2</property>\n" +" <child>\n" +" <object class="GtkVBox" id="source_extra&qu" +"ot;>\n" +" <property name="visible">True</property&" +"gt;\n" +" <child>\n" +" <object class="GtkHBox" id="single_titl" +"e_box">\n" +" <property name="visible">True</prope" +"rty>\n" +" <property name="spacing">4</property" +">\n" +" <child>\n" +" <object class="GtkLabel" id="label8" +"9">\n" +" <property name="visible">True</p" +"roperty>\n" +" <property name="label" translatable=&q" +"uot;yes">Title Number:</property>\n" +" </object>\n" +" <packing>\n" +" <property name="expand">False</p" +"roperty>\n" +" <property name="position">0</pro" +"perty>\n" +" </packing>\n" +" </child>\n" +" <child>\n" +" <object class="GtkAlignment" id="al" +"ignment1">\n" +" <property name="visible">True</p" +"roperty>\n" +" <property name="xalign">0</prope" +"rty>\n" +" <property name="xscale">0</prope" +"rty>\n" +" <child>\n" +" <object class="GtkSpinButton" id=&qu" +"ot;single_title">\n" +" <property name="visible">True&l" +"t;/property>\n" +" <property name="can_focus">True" +"</property>\n" +" <property name="events">GDK_POI" +"NTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK" +" | GDK_BUTTON_RELEASE_MASK</property>\n" +" <property name="adjustment">adj" +"ustment24</property>\n" +" <signal name="value_changed" handl" +"er="setting_widget_changed_cb"/>\n" +" </object>\n" +" </child>\n" +" </object>\n" +" <packing>\n" +" <property name="position">1</pro" +"perty>\n" +" </packing>\n" +" </child>\n" +" </object>\n" +" <packing>\n" +" <property name="position">0</propert" +"y>\n" +" </packing>\n" +" </child>\n" +" <child>\n" +" <object class="GtkCheckButton" id="sour" +"ce_folder_flag">\n" +" <property name="label" translatable="" +"yes">Open VIDEO_TS folder</property>\n" +" <property name="visible">True</prope" +"rty>\n" +" <property name="can_focus">True</pro" +"perty>\n" +" <property name="receives_default">False" +"</property>\n" +" <property name="events">GDK_POINTER_MOT" +"ION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_B" +"UTTON_RELEASE_MASK</property>\n" +" <property name="xalign">0</property&" +"gt;\n" +" <property name="draw_indicator">True<" +";/property>\n" +" <signal handler="source_type_changed_cb" n" +"ame="toggled"/>\n" +" </object>\n" +" <packing>\n" +" <property name="position">1</propert" +"y>\n" +" </packing>\n" +" </child>\n" +" <child>\n" +" <object class="GtkHBox" id="hbox74"" +";>\n" +" <property name="visible">True</prope" +"rty>\n" +" <property name="spacing">4</property" +">\n" +" <child>\n" +" <object class="GtkLabel" id="label9" +"0">\n" +" <property name="visible">True</p" +"roperty>\n" +" <property name="label" translatable=&q" +"uot;yes">Detected DVD devices:</property>\n" +" </object>\n" +" <packing>\n" +" <property name="expand">False</p" +"roperty>\n" +" <property name="position">0</pro" +"perty>\n" +" </packing>\n" +" </child>\n" +" <child>\n" +" <object class="GtkAlignment" id="al" +"ignment2">\n" +" <property name="visible">True</p" +"roperty>\n" +" <property name="xalign">0</prope" +"rty>\n" +" <property name="xscale">0</prope" +"rty>\n" +" <child>\n" +" <object class="GtkComboBox" id="" +";source_device">\n" +" <property name="visible">True&l" +"t;/property>\n" +" <property name="model">device_l" +"ist</property>\n" +" <signal handler="dvd_device_changed_cb&" +"quot; name="changed"/>\n" +" <child>\n" +" <object class="GtkCellRendererText&qu" +"ot; id="cellrenderertext1"/>\n" +" <attributes>\n" +" <attribute name="text">0<" +";/attribute>\n" +" </attributes>\n" +" </child>\n" +" </object>\n" +" </child>\n" +" </object>\n" +" <packing>\n" +" <property name="position">1</pro" +"perty>\n" +" </packing>\n" +" </child>\n" +" </object>\n" +" <packing>\n" +" <property name="position">2</propert" +"y>\n" +" </packing>\n" +" </child>\n" +" </object>\n" +" <packing>\n" +" <property name="expand">False</property&" +"gt;\n" +" <property name="position">2</property>" +";\n" +" </packing>\n" +" </child>\n" +" <child internal-child="action_area">\n" +" <object class="GtkHButtonBox" id="dialog-ac" +"tion_area6">\n" +" <property name="visible">True</property&" +"gt;\n" +" <property name="layout_style">end</prope" +"rty>\n" +" <child>\n" +" <object class="GtkButton" id="source_ca" +"ncel">\n" +" <property name="label" translatable="" +"yes">gtk-cancel</property>\n" +" <property name="visible">True</prope" +"rty>\n" +" <property name="can_focus">True</pro" +"perty>\n" +" <property name="can_default">True</p" +"roperty>\n" +" <property name="has_default">True</p" +"roperty>\n" +" <property name="receives_default">True&" +"lt;/property>\n" +" <property name="use_stock">True</pro" +"perty>\n" +" </object>\n" +" <packing>\n" +" <property name="position">0</propert" +"y>\n" +" </packing>\n" +" </child>\n" +" <child>\n" +" <object class="GtkButton" id="source_ok" +"">\n" +" <property name="label" translatable="" +"yes">gtk-ok</property>\n" +" <property name="visible">True</prope" +"rty>\n" +" <property name="can_focus">True</pro" +"perty>\n" +" <property name="can_default">True</p" +"roperty>\n" +" <property name="has_default">True</p" +"roperty>\n" +" <property name="receives_default">True&" +"lt;/property>\n" +" <property name="use_stock">True</pro" +"perty>\n" +" </object>\n" +" <packing>\n" +" <property name="position">1</propert" +"y>\n" +" </packing>\n" +" </child>\n" +" </object>\n" +" <packing>\n" +" <property name="expand">False</property&" +"gt;\n" +" <property name="pack_type">end</property" +">\n" +" <property name="position">0</property>" +";\n" +" </packing>\n" +" </child>\n" +" </object>\n" +" </child>\n" +" <action-widgets>\n" +" <action-widget response="-6">source_cancel</ac" +"tion-widget>\n" +" <action-widget response="-3">source_ok</action" +"-widget>\n" +" </action-widgets>\n" +" </object>\n" "</interface>\n" "</string>\n" " <key>icons</key>\n" @@ -11147,6 +11427,8 @@ " <integer>0</integer>\n" " <key>scale_width</key>\n" " <integer>0</integer>\n" +" <key>single_title</key>\n" +" <integer>1</integer>\n" " <key>start_chapter</key>\n" " <integer>1</integer>\n" " <key>start_frame</key>\n" @@ -11205,7 +11487,7 @@ " <key>LoggingLevel</key>\n" " <string>1</string>\n" " <key>VideoQualityGranularity</key>\n" -" <string>0.2</string>\n" +" <string>1</string>\n" " <key>allow_tweaks</key>\n" " <false />\n" " <key>chapters_in_destination</key>\n" diff --git a/gtk/src/resources.plist b/gtk/src/resources.plist index 11fa87c5b..d0bc0c2f2 100644 --- a/gtk/src/resources.plist +++ b/gtk/src/resources.plist @@ -190,6 +190,14 @@ <property name="page_size">0</property> <property name="value">0</property> </object> + <object class="GtkAdjustment" id="adjustment24"> + <property name="upper">100</property> + <property name="lower">1</property> + <property name="page_increment">1</property> + <property name="step_increment">1</property> + <property name="page_size">0</property> + <property name="value">1</property> + </object> <object class="GtkAdjustment" id="preview_progress_adj"> <property name="upper">100</property> <property name="lower">0</property> @@ -223,6 +231,14 @@ </object> </child> <child> + <object class="GtkAction" id="source_single"> + <property name="icon-name">gtk-open</property> + <property name="name">source_single</property> + <property name="label">Single _Title</property> + <signal handler="single_title_source_cb" name="activate"/> + </object> + </child> + <child> <object class="GtkAction" id="destination1"> <property name="stock_id">gtk-save-as</property> <property name="name">destination1</property> @@ -359,6 +375,7 @@ <menubar name="menubar1"> <menu action="menuitem1"> <menuitem action="source1"/> + <menuitem action="source_single"/> <menuitem action="destination1"/> <separator/> <menuitem action="preferences"/> @@ -385,6 +402,12 @@ </menubar> </ui> </object> + <object class="GtkListStore" id="device_list"> + <columns> + <!-- column-name device --> + <column type="gchararray"/> + </columns> + </object> <object class="GtkWindow" id="hb_window"> <property name="visible">True</property> <property name="title" translatable="yes">HandBrake</property> @@ -5390,6 +5413,168 @@ libxvidcore authors: <action-widget response="0">update_remind</action-widget> </action-widgets> </object> + <object class="GtkFileChooserDialog" id="source_dialog"> + <property name="border_width">5</property> + <property name="modal">True</property> + <property name="type_hint">dialog</property> + <property name="skip_taskbar_hint">True</property> + <property name="skip_pager_hint">True</property> + <property name="has_separator">False</property> + <signal handler="chooser_file_selected_cb" name="selection-changed"/> + <child internal-child="vbox"> + <object class="GtkVBox" id="dialog-vbox6"> + <property name="visible">True</property> + <property name="spacing">2</property> + <child> + <object class="GtkVBox" id="source_extra"> + <property name="visible">True</property> + <child> + <object class="GtkHBox" id="single_title_box"> + <property name="visible">True</property> + <property name="spacing">4</property> + <child> + <object class="GtkLabel" id="label89"> + <property name="visible">True</property> + <property name="label" translatable="yes">Title Number:</property> + </object> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkAlignment" id="alignment1"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="xscale">0</property> + <child> + <object class="GtkSpinButton" id="single_title"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="adjustment">adjustment24</property> + <signal name="value_changed" handler="setting_widget_changed_cb"/> + </object> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="source_folder_flag"> + <property name="label" translatable="yes">Open VIDEO_TS folder</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="xalign">0</property> + <property name="draw_indicator">True</property> + <signal handler="source_type_changed_cb" name="toggled"/> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox74"> + <property name="visible">True</property> + <property name="spacing">4</property> + <child> + <object class="GtkLabel" id="label90"> + <property name="visible">True</property> + <property name="label" translatable="yes">Detected DVD devices:</property> + </object> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkAlignment" id="alignment2"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="xscale">0</property> + <child> + <object class="GtkComboBox" id="source_device"> + <property name="visible">True</property> + <property name="model">device_list</property> + <signal handler="dvd_device_changed_cb" name="changed"/> + <child> + <object class="GtkCellRendererText" id="cellrenderertext1"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">2</property> + </packing> + </child> + <child internal-child="action_area"> + <object class="GtkHButtonBox" id="dialog-action_area6"> + <property name="visible">True</property> + <property name="layout_style">end</property> + <child> + <object class="GtkButton" id="source_cancel"> + <property name="label" translatable="yes">gtk-cancel</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="can_default">True</property> + <property name="has_default">True</property> + <property name="receives_default">True</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="source_ok"> + <property name="label" translatable="yes">gtk-ok</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="can_default">True</property> + <property name="has_default">True</property> + <property name="receives_default">True</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="pack_type">end</property> + <property name="position">0</property> + </packing> + </child> + </object> + </child> + <action-widgets> + <action-widget response="-6">source_cancel</action-widget> + <action-widget response="-3">source_ok</action-widget> + </action-widgets> + </object> </interface> </string> <key>icons</key> @@ -5534,6 +5719,8 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A <integer>0</integer> <key>scale_width</key> <integer>0</integer> + <key>single_title</key> + <integer>1</integer> <key>start_chapter</key> <integer>1</integer> <key>start_frame</key> @@ -5592,7 +5779,7 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A <key>LoggingLevel</key> <string>1</string> <key>VideoQualityGranularity</key> - <string>0.2</string> + <string>1</string> <key>allow_tweaks</key> <false /> <key>chapters_in_destination</key> |