summaryrefslogtreecommitdiffstats
path: root/gtk/src/presets.c
diff options
context:
space:
mode:
authorjstebbins <[email protected]>2014-02-19 00:06:26 +0000
committerjstebbins <[email protected]>2014-02-19 00:06:26 +0000
commit79b05392677602129f4ec0119ba0782d62e4b7fe (patch)
treebaa5e016ef05927a166191882598000ed6598141 /gtk/src/presets.c
parentdcfe8545b8bf8a9a32be87f847959137c0a251d2 (diff)
LinGui: rework title list
Title list is now linked to a settings list. There is one settings dict per title. The settings list is populated when scan completes. As you change titles, the settings for that title populate the UI. Changes made are saved in the settings and restored if you go to another title and then return. This is preparation for improvements to "Add All to Queue" feature. Settings for each title can be customized before adding to the queue. All titles don't have to use the same preset or settings. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6046 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'gtk/src/presets.c')
-rw-r--r--gtk/src/presets.c702
1 files changed, 291 insertions, 411 deletions
diff --git a/gtk/src/presets.c b/gtk/src/presets.c
index 81d610cba..cced4aaba 100644
--- a/gtk/src/presets.c
+++ b/gtk/src/presets.c
@@ -2,14 +2,14 @@
/*
* presets.c
* Copyright (C) John Stebbins 2008-2013 <stebbins@stebbins>
- *
+ *
* presets.c is free software.
- *
+ *
* You may redistribute it and/or modify it under the terms of the
* GNU General Public License, as published by the Free Software
* Foundation; either version 2 of the License, or (at your option)
* any later version.
- *
+ *
*/
#include <sys/types.h>
#include <sys/stat.h>
@@ -301,7 +301,7 @@ presets_remove_nth(GValue *presets, gint pos)
{
GValue *dict;
gint count;
-
+
if (presets == NULL || pos < 0) return;
count = ghb_array_len(presets);
if (pos >= count) return;
@@ -312,7 +312,7 @@ presets_remove_nth(GValue *presets, gint pos)
gboolean
ghb_presets_remove(
- GValue *presets,
+ GValue *presets,
gint *indices,
gint len)
{
@@ -331,7 +331,7 @@ ghb_presets_remove(
static void
ghb_presets_replace(
- GValue *presets,
+ GValue *presets,
GValue *dict,
gint *indices,
gint len)
@@ -349,7 +349,7 @@ ghb_presets_replace(
static void
ghb_presets_insert(
- GValue *presets,
+ GValue *presets,
GValue *dict,
gint *indices,
gint len)
@@ -370,7 +370,7 @@ presets_find_element(GValue *presets, const gchar *name)
{
GValue *dict;
gint count, ii;
-
+
g_debug("presets_find_element () (%s)", name);
if (presets == NULL || name == NULL) return -1;
count = ghb_array_len(presets);
@@ -392,7 +392,7 @@ single_find_pos(GValue *presets, const gchar *name, gint type)
{
GValue *dict;
gint count, ii, ptype, last;
-
+
if (presets == NULL || name == NULL) return -1;
last = count = ghb_array_len(presets);
for (ii = 0; ii < count; ii++)
@@ -517,7 +517,7 @@ presets_clear_default(GValue *presets)
{
if (preset_is_default(dict))
{
- ghb_dict_insert(dict, g_strdup("Default"),
+ ghb_dict_insert(dict, g_strdup("Default"),
ghb_boolean_value_new(FALSE));
}
}
@@ -541,7 +541,7 @@ presets_customize(GValue *presets)
ptype = ghb_value_int(preset_dict_get_value(dict, "Type"));
if (ptype != PRESETS_CUSTOM)
{
- ghb_dict_insert(dict, g_strdup("Type"),
+ ghb_dict_insert(dict, g_strdup("Type"),
ghb_int64_value_new(PRESETS_CUSTOM));
}
folder = ghb_value_boolean(preset_dict_get_value(dict, "Folder"));
@@ -608,7 +608,7 @@ presets_find_default(GValue *presets, gint *len)
gint*
ghb_preset_indices_from_path(
- GValue *presets,
+ GValue *presets,
const GValue *path,
gint *len)
{
@@ -654,7 +654,7 @@ ghb_preset_indices_from_path(
static gint
ghb_presets_get_type(
- GValue *presets,
+ GValue *presets,
gint *indices,
gint len)
{
@@ -675,7 +675,7 @@ ghb_presets_get_type(
static gboolean
ghb_presets_get_folder(
- GValue *presets,
+ GValue *presets,
gint *indices,
gint len)
{
@@ -698,7 +698,7 @@ void
presets_set_default(gint *indices, gint len)
{
GValue *dict;
-
+
g_debug("presets_set_default ()");
presets_clear_default(presetsPlist);
dict = presets_get_dict(presetsPlist, indices, len);
@@ -713,12 +713,12 @@ static void
presets_set_folder_open(gboolean open, gint *indices, gint len)
{
GValue *dict;
-
+
g_debug("presets_set_folder_open ()");
dict = presets_get_dict(presetsPlist, indices, len);
if (dict)
{
- ghb_dict_insert(dict, g_strdup("FolderOpen"),
+ ghb_dict_insert(dict, g_strdup("FolderOpen"),
ghb_boolean_value_new(open));
}
}
@@ -770,15 +770,15 @@ static void init_settings_from_dict(
static void
init_settings_from_array(
- GValue *dest,
+ GValue *dest,
GValue *internal,
GValue *array)
{
GValue *gval, *val;
gint count, ii;
-
+
count = ghb_array_len(array);
- // The first element of the internal version is always the
+ // The first element of the internal version is always the
// template for the allowed values
gval = ghb_array_get_nth(internal, 0);
for (ii = 0; ii < count; ii++)
@@ -816,7 +816,7 @@ init_settings_from_array(
static void
init_settings_from_dict(
- GValue *dest,
+ GValue *dest,
GValue *internal,
GValue *dict)
{
@@ -854,7 +854,7 @@ init_settings_from_dict(
init_settings_from_array(new_array, gval, val);
else
init_settings_from_array(new_array, gval, gval);
-
+
}
else
{
@@ -883,22 +883,25 @@ static gboolean dict_get_boolean(GValue *dict, const char *key)
void
init_ui_from_dict(
- signal_user_data_t *ud,
+ signal_user_data_t *ud,
GValue *internal,
GValue *dict)
{
GHashTableIter iter;
gchar *key;
GValue *gval, *val;
-
- ghb_dict_iter_init(&iter, internal);
+ GValue *tmp = ghb_value_dup(internal);
+
+ ghb_dict_iter_init(&iter, tmp);
// middle (void*) cast prevents gcc warning "defreferencing type-punned
// pointer will break strict-aliasing rules"
while (g_hash_table_iter_next(
&iter, (gpointer*)(void*)&key, (gpointer*)(void*)&gval))
{
if (!strcmp(key, "x264Option"))
+ {
continue;
+ }
val = NULL;
if (dict)
val = ghb_dict_lookup(dict, key);
@@ -906,6 +909,10 @@ init_ui_from_dict(
val = gval;
ghb_ui_update(ud, key, val);
}
+ ghb_value_free(tmp);
+
+ if (dict == NULL)
+ dict = internal;
if (ghb_value_boolean(preset_dict_get_value(dict, "x264UseAdvancedOptions")))
@@ -916,10 +923,9 @@ init_ui_from_dict(
}
}
-static void
-preset_to_ui(signal_user_data_t *ud, GValue *dict)
+void
+ghb_preset_to_settings(GValue *settings, GValue *preset)
{
- g_debug("preset_to_ui()\n");
// Initialize the ui from presets file.
GValue *internal, *hidden;
@@ -929,43 +935,42 @@ preset_to_ui(signal_user_data_t *ud, GValue *dict)
internal = plist_get_dict(internalPlist, "Presets");
hidden = plist_get_dict(internalPlist, "XlatPresets");
// Setting a ui widget will cause the corresponding setting
- // to be set, but it also triggers a callback that can
+ // to be set, but it also triggers a callback that can
// have the side effect of using other settings values
// that have not yet been set. So set *all* settings first
// then update the ui.
- init_settings_from_dict(ud->settings, internal, dict);
- init_settings_from_dict(ud->settings, hidden, dict);
- init_ui_from_dict(ud, internal, dict);
- init_ui_from_dict(ud, hidden, dict);
+ init_settings_from_dict(settings, internal, preset);
+ init_settings_from_dict(settings, hidden, preset);
- if (dict != NULL)
- {
- GValue *val;
- gboolean dd;
+ if (preset == NULL)
+ preset = internal;
- val = ghb_dict_lookup(dict, "PictureDecombDeinterlace");
- if (val != NULL)
- {
- dd = ghb_value_boolean(val);
- ghb_ui_update(ud, "PictureDeinterlaceDecomb", ghb_boolean_value(!dd));
- }
- val = ghb_dict_lookup(dict, "PictureHeight");
- if (val != NULL)
- {
- ghb_ui_update(ud, "scale_height", val);
- }
- val = ghb_dict_lookup(dict, "PictureWidth");
- if (val != NULL)
- {
- ghb_ui_update(ud, "scale_width", val);
- }
+ GValue *val;
+ gboolean dd;
+
+ val = ghb_dict_lookup(preset, "PictureDecombDeinterlace");
+ if (val != NULL)
+ {
+ dd = ghb_value_boolean(val);
+ ghb_settings_set_boolean(settings, "PictureDeinterlaceDecomb", !dd);
+ }
+ val = ghb_dict_lookup(preset, "PictureHeight");
+ if (val != NULL)
+ {
+ ghb_settings_set_value(settings, "scale_height", val);
+ }
+ val = ghb_dict_lookup(preset, "PictureWidth");
+ if (val != NULL)
+ {
+ ghb_settings_set_value(settings, "scale_width", val);
}
+ ghb_settings_set_boolean(settings, "preset_modified", FALSE);
}
void
ghb_settings_to_ui(signal_user_data_t *ud, GValue *dict)
{
- init_ui_from_dict(ud, dict, dict);
+ init_ui_from_dict(ud, dict, NULL);
}
static GValue *current_preset = NULL;
@@ -981,7 +986,10 @@ ghb_preset_is_custom()
}
void
-ghb_set_preset_from_indices(signal_user_data_t *ud, gint *indices, gint len)
+ghb_set_preset_settings_from_indices(
+ signal_user_data_t *ud,
+ gint *indices,
+ gint len)
{
GValue *dict = NULL;
gint fallback[2] = {0, -1};
@@ -996,7 +1004,7 @@ ghb_set_preset_from_indices(signal_user_data_t *ud, gint *indices, gint len)
}
if (dict == NULL)
{
- preset_to_ui(ud, NULL);
+ ghb_preset_to_settings(ud->settings, NULL);
current_preset = NULL;
}
else
@@ -1007,9 +1015,9 @@ ghb_set_preset_from_indices(signal_user_data_t *ud, gint *indices, gint len)
current_preset = dict;
folder = ghb_value_boolean(preset_dict_get_value(dict, "Folder"));
if (folder)
- preset_to_ui(ud, NULL);
+ ghb_preset_to_settings(ud->settings, NULL);
else
- preset_to_ui(ud, dict);
+ ghb_preset_to_settings(ud->settings, dict);
path = preset_path_from_indices(presetsPlist, indices, len);
ghb_settings_set_value(ud->settings, "preset", path);
ghb_value_free(path);
@@ -1025,11 +1033,11 @@ curr_preset_get_value(const gchar *key)
void
ghb_update_from_preset(
- signal_user_data_t *ud,
+ signal_user_data_t *ud,
const gchar *key)
{
const GValue *gval;
-
+
g_debug("ghb_update_from_preset() %s", key);
gval = curr_preset_get_value(key);
if (gval != NULL)
@@ -1040,8 +1048,8 @@ ghb_update_from_preset(
static void
ghb_select_preset2(
- GtkBuilder *builder,
- gint *indices,
+ GtkBuilder *builder,
+ gint *indices,
gint len)
{
GtkTreeView *treeview;
@@ -1049,7 +1057,7 @@ ghb_select_preset2(
GtkTreeModel *store;
GtkTreeIter iter;
GtkTreePath *path;
-
+
g_debug("ghb_select_preset2()");
treeview = GTK_TREE_VIEW(GHB_WIDGET(builder, "presets_list"));
selection = gtk_tree_view_get_selection (treeview);
@@ -1317,23 +1325,13 @@ remove_plist(const gchar *name)
static gboolean prefs_initializing = FALSE;
void
-ghb_prefs_to_ui(signal_user_data_t *ud)
+ghb_globals_to_ui(signal_user_data_t *ud)
{
const GValue *gval;
gchar *key;
- gchar *str;
- GValue *internal, *dict;
+ GValue *internal;
GHashTableIter iter;
-
- g_debug("ghb_prefs_to_ui");
- prefs_initializing = TRUE;
-
- // Setting a ui widget will cause the corresponding setting
- // to be set, but it also triggers a callback that can
- // have the side effect of using other settings values
- // that have not yet been set. So set *all* settings first
- // then update the ui.
internal = plist_get_dict(internalPlist, "Initialization");
ghb_dict_iter_init(&iter, internal);
// middle (void*) cast prevents gcc warning "defreferencing type-punned
@@ -1341,9 +1339,37 @@ ghb_prefs_to_ui(signal_user_data_t *ud)
while (g_hash_table_iter_next(
&iter, (gpointer*)(void*)&key, (gpointer*)(void*)&gval))
{
- ghb_ui_update(ud, key, gval);
+ ghb_ui_settings_update(ud, ud->settings, key, gval);
+ }
+
+ internal = plist_get_dict(internalPlist, "Globals");
+ ghb_dict_iter_init(&iter, internal);
+ // middle (void*) cast prevents gcc warning "defreferencing type-punned
+ // pointer will break strict-aliasing rules"
+ while (g_hash_table_iter_next(
+ &iter, (gpointer*)(void*)&key, (gpointer*)(void*)&gval))
+ {
+ ghb_ui_settings_update(ud, ud->globals, key, gval);
}
+}
+void
+ghb_prefs_to_ui(signal_user_data_t *ud)
+{
+ const GValue *gval;
+ gchar *key;
+ GValue *internal, *dict;
+ GHashTableIter iter;
+
+
+ g_debug("ghb_prefs_to_ui");
+ prefs_initializing = TRUE;
+
+ // Setting a ui widget will cause the corresponding setting
+ // to be set, but it also triggers a callback that can
+ // have the side effect of using other settings values
+ // that have not yet been set. So set *all* settings first
+ // then update the ui.
dict = plist_get_dict(prefsPlist, "Preferences");
internal = plist_get_dict(internalPlist, "Preferences");
ghb_dict_iter_init(&iter, internal);
@@ -1357,7 +1383,7 @@ ghb_prefs_to_ui(signal_user_data_t *ud)
value = ghb_dict_lookup(dict, key);
if (value == NULL)
value = gval;
- ghb_settings_set_value(ud->settings, key, value);
+ ghb_settings_set_value(ud->prefs, key, value);
}
internal = plist_get_dict(internalPlist, "Preferences");
ghb_dict_iter_init(&iter, internal);
@@ -1371,33 +1397,32 @@ ghb_prefs_to_ui(signal_user_data_t *ud)
value = ghb_dict_lookup(dict, key);
if (value == NULL)
value = gval;
- ghb_ui_update(ud, key, value);
+ ghb_ui_settings_update(ud, ud->prefs, key, value);
}
+#if 0
const GValue *val;
- val = ghb_settings_get_value(ud->settings, "show_presets");
- ghb_ui_update(ud, "show_presets", val);
- if (ghb_settings_get_boolean(ud->settings, "hbfd_feature"))
+ val = ghb_settings_get_value(ud->prefs, "show_presets");
+ ghb_ui_settings_update(ud, ud->prefs, "show_presets", val);
+#endif
+ if (ghb_settings_get_boolean(ud->prefs, "hbfd_feature"))
{
GtkWidget *widget;
+#if 0
val = ghb_settings_get_value(ud->settings, "hbfd");
- ghb_ui_update(ud, "hbfd", val);
+ ghb_ui_settings_update(ud, ud->prefs, "hbfd", val);
+#endif
widget = GHB_WIDGET (ud->builder, "hbfd");
gtk_widget_set_visible(widget, TRUE);
}
else
{
- ghb_ui_update(ud, "hbfd", ghb_int64_value(0));
+ ghb_ui_settings_update(ud, ud->prefs, "hbfd", ghb_int64_value(0));
}
- gval = ghb_settings_get_value(ud->settings, "default_source");
- ghb_settings_set_value (ud->settings, "scan_source", gval);
+ gval = ghb_settings_get_value(ud->prefs, "default_source");
+ ghb_settings_set_value(ud->globals, "scan_source", gval);
- str = ghb_settings_get_string(ud->settings, "destination_dir");
- ghb_ui_update(ud, "dest_dir", ghb_string_value(str));
-
- gchar *file = g_strdup_printf ("new_video.mp4");
- ghb_ui_update(ud, "dest_file", ghb_string_value(file));
- g_free(str);
- g_free(file);
+ ghb_ui_settings_update(ud, ud->settings, "dest_dir",
+ ghb_settings_get_value(ud->prefs, "destination_dir"));
prefs_initializing = FALSE;
}
@@ -1410,7 +1435,7 @@ ghb_prefs_save(GValue *settings)
GHashTableIter iter;
gchar *key;
const GValue *value;
-
+
if (prefs_initializing) return;
dict = plist_get_dict(internalPlist, "Preferences");
if (dict == NULL) return;
@@ -1433,10 +1458,10 @@ ghb_prefs_save(GValue *settings)
}
void
-ghb_pref_set(GValue *settings, const gchar *key)
+ghb_pref_save(GValue *settings, const gchar *key)
{
const GValue *value, *value2;
-
+
if (prefs_initializing) return;
value = ghb_settings_get_value(settings, key);
if (value != NULL)
@@ -1449,16 +1474,16 @@ ghb_pref_set(GValue *settings, const gchar *key)
{
ghb_dict_insert(dict, g_strdup(key), ghb_value_dup(value));
store_prefs();
- prefs_modified = TRUE;
+ prefs_modified = FALSE;
}
}
}
void
-ghb_pref_save(GValue *settings, const gchar *key)
+ghb_pref_set(GValue *settings, const gchar *key)
{
const GValue *value, *value2;
-
+
if (prefs_initializing) return;
value = ghb_settings_get_value(settings, key);
if (value != NULL)
@@ -1470,8 +1495,7 @@ ghb_pref_save(GValue *settings, const gchar *key)
if (ghb_value_cmp(value, value2) != 0)
{
ghb_dict_insert(dict, g_strdup(key), ghb_value_dup(value));
- store_prefs();
- prefs_modified = FALSE;
+ prefs_modified = TRUE;
}
}
}
@@ -1487,53 +1511,29 @@ ghb_prefs_store(void)
}
void
-ghb_settings_init(signal_user_data_t *ud)
+ghb_settings_init(GValue *settings, const char *name)
{
GValue *internal;
GHashTableIter iter;
gchar *key;
GValue *gval;
-
g_debug("ghb_settings_init");
- prefs_initializing = TRUE;
-
internalPlist = ghb_resource_get("internal-defaults");
// Setting a ui widget will cause the corresponding setting
- // to be set, but it also triggers a callback that can
+ // to be set, but it also triggers a callback that can
// have the side effect of using other settings values
// that have not yet been set. So set *all* settings first
// then update the ui.
- internal = plist_get_dict(internalPlist, "Initialization");
- ghb_dict_iter_init(&iter, internal);
- // middle (void*) cast prevents gcc warning "defreferencing type-punned
- // pointer will break strict-aliasing rules"
- while (g_hash_table_iter_next(
- &iter, (gpointer*)(void*)&key, (gpointer*)(void*)&gval))
- {
- ghb_settings_set_value(ud->settings, key, gval);
- }
-
- internal = plist_get_dict(internalPlist, "Presets");
- ghb_dict_iter_init(&iter, internal);
- // middle (void*) cast prevents gcc warning "defreferencing type-punned
- // pointer will break strict-aliasing rules"
- while (g_hash_table_iter_next(
- &iter, (gpointer*)(void*)&key, (gpointer*)(void*)&gval))
- {
- ghb_settings_set_value(ud->settings, key, gval);
- }
-
- internal = plist_get_dict(internalPlist, "Preferences");
+ internal = plist_get_dict(internalPlist, name);
ghb_dict_iter_init(&iter, internal);
// middle (void*) cast prevents gcc warning "defreferencing type-punned
// pointer will break strict-aliasing rules"
while (g_hash_table_iter_next(
&iter, (gpointer*)(void*)&key, (gpointer*)(void*)&gval))
{
- ghb_settings_set_value(ud->settings, key, gval);
+ ghb_settings_set_value(settings, key, gval);
}
- prefs_initializing = FALSE;
}
void
@@ -1582,7 +1582,7 @@ ghb_prefs_load(signal_user_data_t *ud)
GHashTableIter iter;
gchar *key;
GValue *gval;
-
+
g_debug("ghb_prefs_load");
prefsPlist = load_plist("preferences");
if (prefsPlist == NULL)
@@ -1594,7 +1594,7 @@ ghb_prefs_load(signal_user_data_t *ud)
dict = ghb_dict_value_new();
ghb_dict_insert(prefsPlist, g_strdup("Preferences"), dict);
- // Get defaults from internal defaults
+ // Get defaults from internal defaults
ghb_dict_iter_init(&iter, internal);
// middle (void*) cast prevents gcc warning "defreferencing type-punned
// pointer will break strict-aliasing rules"
@@ -1609,7 +1609,7 @@ ghb_prefs_load(signal_user_data_t *ud)
{
dir = ".";
}
- ghb_dict_insert(dict,
+ ghb_dict_insert(dict,
g_strdup("ExportDirectory"), ghb_value_dup(ghb_string_value(dir)));
dir = g_get_user_special_dir (G_USER_DIRECTORY_VIDEOS);
@@ -1617,10 +1617,10 @@ ghb_prefs_load(signal_user_data_t *ud)
{
dir = ".";
}
- ghb_dict_insert(dict,
+ ghb_dict_insert(dict,
g_strdup("destination_dir"), ghb_value_dup(ghb_string_value(dir)));
- ghb_dict_insert(dict,
+ ghb_dict_insert(dict,
g_strdup("SrtDir"), ghb_value_dup(ghb_string_value(dir)));
#if defined(_WIN32)
gchar *source;
@@ -1630,7 +1630,7 @@ ghb_prefs_load(signal_user_data_t *ud)
{
source = g_strdup("C:" G_DIR_SEPARATOR_S);
}
- ghb_dict_insert(dict, g_strdup("default_source"),
+ ghb_dict_insert(dict, g_strdup("default_source"),
ghb_value_dup(ghb_string_value(source)));
g_free(source);
#endif
@@ -1664,13 +1664,13 @@ get_preset_color(gint type, gboolean folder)
void
ghb_presets_list_init(
- signal_user_data_t *ud,
+ signal_user_data_t *ud,
gint *indices,
gint len)
{
GtkTreeView *treeview;
GtkTreeIter iter, titer, *piter;
-
+
GtkTreeStore *store;
const gchar *preset;
GtkTreePath *parent_path;
@@ -1680,7 +1680,7 @@ ghb_presets_list_init(
GValue *dict;
gint *more_indices;
GValue *presets = NULL;
-
+
g_debug("ghb_presets_list_init ()");
more_indices = g_malloc((len+1)*sizeof(gint));
memcpy(more_indices, indices, len*sizeof(gint));
@@ -1722,10 +1722,10 @@ ghb_presets_list_init(
type = ghb_preset_type(dict);
folder = ghb_preset_folder(dict);
color = get_preset_color(type, folder);
- gtk_tree_store_set(store, &iter, 0, preset,
- 1, def ? 800 : 400,
+ gtk_tree_store_set(store, &iter, 0, preset,
+ 1, def ? 800 : 400,
2, def ? 2 : 0,
- 3, color,
+ 3, color,
4, description,
5, type == PRESETS_BUILTIN ? 0 : 1,
-1);
@@ -1769,7 +1769,7 @@ ghb_presets_list_init(
static void
presets_list_update_item(
- signal_user_data_t *ud,
+ signal_user_data_t *ud,
gint *indices,
gint len,
gboolean recurse)
@@ -1784,7 +1784,7 @@ presets_list_update_item(
gboolean def, folder;
GValue *dict;
const gchar *color;
-
+
g_debug("presets_list_update_item ()");
dict = presets_get_dict(presetsPlist, indices, len);
if (dict == NULL)
@@ -1801,8 +1801,8 @@ presets_list_update_item(
type = ghb_preset_type(dict);
folder = ghb_preset_folder(dict);
color = get_preset_color(type, folder);
- gtk_tree_store_set(store, &iter, 0, name,
- 1, def ? 800 : 400,
+ gtk_tree_store_set(store, &iter, 0, name,
+ 1, def ? 800 : 400,
2, def ? 2 : 0,
3, color,
4, description,
@@ -1816,7 +1816,7 @@ presets_list_update_item(
static void
presets_list_insert(
- signal_user_data_t *ud,
+ signal_user_data_t *ud,
gint *indices,
gint len)
{
@@ -1832,7 +1832,7 @@ presets_list_insert(
GtkTreePath *parent_path;
GValue *dict;
const gchar *color;
-
+
g_debug("presets_list_insert ()");
treeview = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "presets_list"));
store = GTK_TREE_STORE(gtk_tree_view_get_model(treeview));
@@ -1866,8 +1866,8 @@ presets_list_insert(
type = ghb_preset_type(dict);
folder = ghb_preset_folder(dict);
color = get_preset_color(type, folder);
- gtk_tree_store_set(store, &iter, 0, preset,
- 1, def ? 800 : 400,
+ gtk_tree_store_set(store, &iter, 0, preset,
+ 1, def ? 800 : 400,
2, def ? 2 : 0,
3, color,
4, description,
@@ -1881,7 +1881,7 @@ presets_list_insert(
static void
presets_list_remove(
- signal_user_data_t *ud,
+ signal_user_data_t *ud,
gint *indices,
gint len)
{
@@ -1889,7 +1889,7 @@ presets_list_remove(
GtkTreePath *treepath;
GtkTreeIter iter;
GtkTreeStore *store;
-
+
g_debug("presets_list_remove ()");
treeview = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "presets_list"));
store = GTK_TREE_STORE(gtk_tree_view_get_model(treeview));
@@ -2299,9 +2299,9 @@ export_value_xlat(GValue *dict)
static GValue*
import_value_xlat2(
- GValue *defaults,
+ GValue *defaults,
value_map_t *value_map,
- const gchar *key,
+ const gchar *key,
GValue *mac_val)
{
GValue *gval, *def_val;
@@ -2566,7 +2566,7 @@ import_value_xlat(GValue *dict)
drc = ghb_value_double(mac_val);
if (drc < 1.0 && drc > 0.0)
{
- ghb_dict_insert(adict, g_strdup("AudioTrackDRCSlider"),
+ ghb_dict_insert(adict, g_strdup("AudioTrackDRCSlider"),
ghb_double_value_new(0.0));
}
}
@@ -2592,7 +2592,7 @@ import_xlat_preset(GValue *dict)
if (uses_max || uses_pic == 2)
{
- ghb_dict_insert(dict, g_strdup("autoscale"),
+ ghb_dict_insert(dict, g_strdup("autoscale"),
ghb_boolean_value_new(TRUE));
}
switch (par)
@@ -2600,24 +2600,24 @@ import_xlat_preset(GValue *dict)
case 0:
{
if (ghb_dict_lookup(dict, "PictureModulus") == NULL)
- ghb_dict_insert(dict, g_strdup("PictureModulus"),
+ ghb_dict_insert(dict, g_strdup("PictureModulus"),
ghb_int_value_new(16));
} break;
case 1:
{
- ghb_dict_insert(dict, g_strdup("PictureModulus"),
+ ghb_dict_insert(dict, g_strdup("PictureModulus"),
ghb_int_value_new(1));
} break;
case 2:
{
if (ghb_dict_lookup(dict, "PictureModulus") == NULL)
- ghb_dict_insert(dict, g_strdup("PictureModulus"),
+ ghb_dict_insert(dict, g_strdup("PictureModulus"),
ghb_int_value_new(16));
} break;
default:
{
if (ghb_dict_lookup(dict, "PictureModulus") == NULL)
- ghb_dict_insert(dict, g_strdup("PictureModulus"),
+ ghb_dict_insert(dict, g_strdup("PictureModulus"),
ghb_int_value_new(16));
} break;
}
@@ -2627,30 +2627,30 @@ import_xlat_preset(GValue *dict)
{
case 0:
{
- ghb_dict_insert(dict, g_strdup("vquality_type_bitrate"),
+ ghb_dict_insert(dict, g_strdup("vquality_type_bitrate"),
ghb_boolean_value_new(TRUE));
- ghb_dict_insert(dict, g_strdup("vquality_type_constant"),
+ ghb_dict_insert(dict, g_strdup("vquality_type_constant"),
ghb_boolean_value_new(FALSE));
} break;
case 1:
{
- ghb_dict_insert(dict, g_strdup("vquality_type_bitrate"),
+ ghb_dict_insert(dict, g_strdup("vquality_type_bitrate"),
ghb_boolean_value_new(TRUE));
- ghb_dict_insert(dict, g_strdup("vquality_type_constant"),
+ ghb_dict_insert(dict, g_strdup("vquality_type_constant"),
ghb_boolean_value_new(FALSE));
} break;
case 2:
{
- ghb_dict_insert(dict, g_strdup("vquality_type_bitrate"),
+ ghb_dict_insert(dict, g_strdup("vquality_type_bitrate"),
ghb_boolean_value_new(FALSE));
- ghb_dict_insert(dict, g_strdup("vquality_type_constant"),
+ ghb_dict_insert(dict, g_strdup("vquality_type_constant"),
ghb_boolean_value_new(TRUE));
} break;
default:
{
- ghb_dict_insert(dict, g_strdup("vquality_type_bitrate"),
+ ghb_dict_insert(dict, g_strdup("vquality_type_bitrate"),
ghb_boolean_value_new(FALSE));
- ghb_dict_insert(dict, g_strdup("vquality_type_constant"),
+ ghb_dict_insert(dict, g_strdup("vquality_type_constant"),
ghb_boolean_value_new(TRUE));
} break;
}
@@ -2719,7 +2719,7 @@ import_xlat_preset(GValue *dict)
GValue *val = ghb_dict_lookup(prefs, "AddCC");
if (val != NULL)
{
- ghb_dict_insert(dict, g_strdup("SubtitleAddCC"),
+ ghb_dict_insert(dict, g_strdup("SubtitleAddCC"),
ghb_value_dup(val));
}
}
@@ -2742,23 +2742,23 @@ import_xlat_preset(GValue *dict)
str = ghb_value_string(fr);
if (strcmp(str, "source") == 0)
{
- ghb_dict_insert(dict, g_strdup("VideoFramerateCFR"),
+ ghb_dict_insert(dict, g_strdup("VideoFramerateCFR"),
ghb_boolean_value_new(FALSE));
- ghb_dict_insert(dict, g_strdup("VideoFramerateVFR"),
+ ghb_dict_insert(dict, g_strdup("VideoFramerateVFR"),
ghb_boolean_value_new(TRUE));
}
else if (!pfr)
{
- ghb_dict_insert(dict, g_strdup("VideoFramerateCFR"),
+ ghb_dict_insert(dict, g_strdup("VideoFramerateCFR"),
ghb_boolean_value_new(TRUE));
- ghb_dict_insert(dict, g_strdup("VideoFramerateVFR"),
+ ghb_dict_insert(dict, g_strdup("VideoFramerateVFR"),
ghb_boolean_value_new(FALSE));
}
else
{
- ghb_dict_insert(dict, g_strdup("VideoFramerateCFR"),
+ ghb_dict_insert(dict, g_strdup("VideoFramerateCFR"),
ghb_boolean_value_new(FALSE));
- ghb_dict_insert(dict, g_strdup("VideoFramerateVFR"),
+ ghb_dict_insert(dict, g_strdup("VideoFramerateVFR"),
ghb_boolean_value_new(FALSE));
}
g_free(str);
@@ -2770,29 +2770,29 @@ import_xlat_preset(GValue *dict)
str = ghb_value_string(mode);
if (strcmp(str, "cfr") == 0)
{
- ghb_dict_insert(dict, g_strdup("VideoFramerateCFR"),
+ ghb_dict_insert(dict, g_strdup("VideoFramerateCFR"),
ghb_boolean_value_new(TRUE));
- ghb_dict_insert(dict, g_strdup("VideoFrameratePFR"),
+ ghb_dict_insert(dict, g_strdup("VideoFrameratePFR"),
ghb_boolean_value_new(FALSE));
- ghb_dict_insert(dict, g_strdup("VideoFramerateVFR"),
+ ghb_dict_insert(dict, g_strdup("VideoFramerateVFR"),
ghb_boolean_value_new(FALSE));
}
else if (strcmp(str, "pfr") == 0)
{
- ghb_dict_insert(dict, g_strdup("VideoFramerateCFR"),
+ ghb_dict_insert(dict, g_strdup("VideoFramerateCFR"),
ghb_boolean_value_new(FALSE));
- ghb_dict_insert(dict, g_strdup("VideoFrameratePFR"),
+ ghb_dict_insert(dict, g_strdup("VideoFrameratePFR"),
ghb_boolean_value_new(TRUE));
- ghb_dict_insert(dict, g_strdup("VideoFramerateVFR"),
+ ghb_dict_insert(dict, g_strdup("VideoFramerateVFR"),
ghb_boolean_value_new(FALSE));
}
else
{
- ghb_dict_insert(dict, g_strdup("VideoFramerateCFR"),
+ ghb_dict_insert(dict, g_strdup("VideoFramerateCFR"),
ghb_boolean_value_new(FALSE));
- ghb_dict_insert(dict, g_strdup("VideoFrameratePFR"),
+ ghb_dict_insert(dict, g_strdup("VideoFrameratePFR"),
ghb_boolean_value_new(FALSE));
- ghb_dict_insert(dict, g_strdup("VideoFramerateVFR"),
+ ghb_dict_insert(dict, g_strdup("VideoFramerateVFR"),
ghb_boolean_value_new(TRUE));
}
g_free(str);
@@ -2926,38 +2926,38 @@ export_xlat_preset(GValue *dict)
preset_dict_get_value(dict, "vquality_type_constant"));
if (autoscale)
- ghb_dict_insert(dict, g_strdup("UsesPictureSettings"),
+ ghb_dict_insert(dict, g_strdup("UsesPictureSettings"),
ghb_int_value_new(2));
else
- ghb_dict_insert(dict, g_strdup("UsesPictureSettings"),
+ ghb_dict_insert(dict, g_strdup("UsesPictureSettings"),
ghb_int_value_new(1));
// VideoQualityType/0/1/2 - vquality_type_/target/bitrate/constant
// *note: target is no longer used
if (br)
{
- ghb_dict_insert(dict, g_strdup("VideoQualityType"),
+ ghb_dict_insert(dict, g_strdup("VideoQualityType"),
ghb_int_value_new(1));
}
else if (constant)
{
- ghb_dict_insert(dict, g_strdup("VideoQualityType"),
+ ghb_dict_insert(dict, g_strdup("VideoQualityType"),
ghb_int_value_new(2));
}
if (ghb_value_boolean(preset_dict_get_value(dict, "VideoFramerateCFR")))
{
- ghb_dict_insert(dict, g_strdup("VideoFramerateMode"),
+ ghb_dict_insert(dict, g_strdup("VideoFramerateMode"),
ghb_string_value_new("cfr"));
}
else if (ghb_value_boolean(preset_dict_get_value(dict, "VideoFrameratePFR")))
{
- ghb_dict_insert(dict, g_strdup("VideoFramerateMode"),
+ ghb_dict_insert(dict, g_strdup("VideoFramerateMode"),
ghb_string_value_new("pfr"));
}
else
{
- ghb_dict_insert(dict, g_strdup("VideoFramerateMode"),
+ ghb_dict_insert(dict, g_strdup("VideoFramerateMode"),
ghb_string_value_new("vfr"));
}
@@ -2975,7 +2975,7 @@ export_xlat_preset(GValue *dict)
preset_dict_get_value(adict, "AudioTrackDRCSlider"));
if (drc < 1.0 && drc > 0.0)
{
- ghb_dict_insert(adict, g_strdup("AudioTrackDRCSlider"),
+ ghb_dict_insert(adict, g_strdup("AudioTrackDRCSlider"),
ghb_double_value_new(0.0));
}
}
@@ -3004,7 +3004,7 @@ export_xlat_preset(GValue *dict)
g_string_append_printf(str, ",%s", "zerolatency");
}
tunes = g_string_free(str, FALSE);
- ghb_dict_insert(dict, g_strdup("x264Tune"),
+ ghb_dict_insert(dict, g_strdup("x264Tune"),
ghb_string_value_new(tunes));
g_free(tunes);
@@ -3124,7 +3124,7 @@ ghb_presets_reload(signal_user_data_t *ud)
std_dict = ghb_array_get_nth(std_presets, ii);
copy_dict = ghb_value_dup(std_dict);
- ghb_dict_insert(copy_dict, g_strdup("PresetBuildNumber"),
+ ghb_dict_insert(copy_dict, g_strdup("PresetBuildNumber"),
ghb_int64_value_new(hb_get_build(NULL)));
ghb_presets_insert(presetsPlist, copy_dict, &indices, 1);
presets_list_insert(ud, &indices, 1);
@@ -3193,7 +3193,7 @@ replace_standard_presets()
std_dict = ghb_array_get_nth(std_presets, ii);
copy_dict = ghb_value_dup(std_dict);
- ghb_dict_insert(copy_dict, g_strdup("PresetBuildNumber"),
+ ghb_dict_insert(copy_dict, g_strdup("PresetBuildNumber"),
ghb_int64_value_new(hb_get_build(NULL)));
ghb_presets_insert(presetsPlist, copy_dict, &indices, 1);
}
@@ -3222,7 +3222,7 @@ update_standard_presets(signal_user_data_t *ud)
replace_standard_presets();
return 1;
}
-
+
type = ghb_value_int(gval);
if (type == 0)
{
@@ -3275,7 +3275,7 @@ ghb_presets_load(signal_user_data_t *ud)
if (!update_standard_presets(ud))
import_xlat_presets(presetsPlist);
}
-
+
}
static void
@@ -3366,17 +3366,17 @@ settings_save(signal_user_data_t *ud, const GValue *path)
if (replace)
{
def_indices = presets_find_default(presetsPlist, &def_len);
- if (def_indices != NULL &&
+ if (def_indices != NULL &&
preset_path_cmp(indices, len, def_indices, def_len) != 0)
{
- ghb_dict_insert(dict, g_strdup("Default"),
+ ghb_dict_insert(dict, g_strdup("Default"),
ghb_boolean_value_new(FALSE));
}
presets_list_update_item(ud, indices, len, FALSE);
}
else
{
- ghb_dict_insert(dict, g_strdup("Default"),
+ ghb_dict_insert(dict, g_strdup("Default"),
ghb_boolean_value_new(FALSE));
presets_list_insert(ud, indices, len);
}
@@ -3388,7 +3388,7 @@ settings_save(signal_user_data_t *ud, const GValue *path)
{
ghb_dict_remove(dict, "PictureHeight");
}
- ghb_dict_insert(dict, g_strdup("autoscale"),
+ ghb_dict_insert(dict, g_strdup("autoscale"),
ghb_boolean_value_new(
!ghb_settings_get_boolean( ud->settings, "PictureWidthEnable") &&
!ghb_settings_get_boolean( ud->settings, "PictureHeightEnable")
@@ -3430,7 +3430,7 @@ folder_save(signal_user_data_t *ud, const GValue *path)
}
// Already exists, update its description
dict = presets_get_dict(presetsPlist, indices, len);
- ghb_dict_insert(dict, g_strdup("PresetDescription"),
+ ghb_dict_insert(dict, g_strdup("PresetDescription"),
ghb_value_dup(preset_dict_get_value(
ud->settings, "PresetDescription")));
presets_list_update_item(ud, indices, len, FALSE);
@@ -3452,7 +3452,7 @@ folder_save(signal_user_data_t *ud, const GValue *path)
return;
}
}
- ghb_dict_insert(dict, g_strdup("PresetDescription"),
+ ghb_dict_insert(dict, g_strdup("PresetDescription"),
ghb_value_dup(preset_dict_get_value(
ud->settings, "PresetDescription")));
ghb_dict_insert(dict, g_strdup("PresetName"), ghb_string_value_new(name));
@@ -3469,15 +3469,15 @@ folder_save(signal_user_data_t *ud, const GValue *path)
}
void
-ghb_presets_list_default(signal_user_data_t *ud)
+ghb_presets_list_show_default(signal_user_data_t *ud)
{
GtkTreeView *treeview;
GtkTreePath *treepath;
GtkTreeIter iter;
GtkTreeStore *store;
gint *indices, len;
-
- g_debug("ghb_presets_list_default ()");
+
+ g_debug("ghb_presets_list_show_default()");
treeview = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "presets_list"));
store = GTK_TREE_STORE(gtk_tree_view_get_model(treeview));
indices = presets_find_default(presetsPlist, &len);
@@ -3487,8 +3487,8 @@ ghb_presets_list_default(signal_user_data_t *ud)
{
if (gtk_tree_model_get_iter(GTK_TREE_MODEL(store), &iter, treepath))
{
- gtk_tree_store_set(store, &iter,
- 1, 800,
+ gtk_tree_store_set(store, &iter,
+ 1, 800,
2, 2 ,
-1);
}
@@ -3505,7 +3505,7 @@ ghb_presets_list_clear_default(signal_user_data_t *ud)
GtkTreeIter iter;
GtkTreeStore *store;
gint *indices, len;
-
+
g_debug("ghb_presets_list_clear_default ()");
treeview = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "presets_list"));
store = GTK_TREE_STORE(gtk_tree_view_get_model(treeview));
@@ -3516,8 +3516,8 @@ ghb_presets_list_clear_default(signal_user_data_t *ud)
{
if (gtk_tree_model_get_iter(GTK_TREE_MODEL(store), &iter, treepath))
{
- gtk_tree_store_set(store, &iter,
- 1, 400,
+ gtk_tree_store_set(store, &iter,
+ 1, 400,
2, 0 ,
-1);
}
@@ -3556,7 +3556,7 @@ presets_menu_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
GtkMenu *menu;
menu = GTK_MENU(GHB_WIDGET(ud->builder, "presets_menu"));
- gtk_menu_popup(menu, NULL, NULL, NULL, NULL, 1,
+ gtk_menu_popup(menu, NULL, NULL, NULL, NULL, 1,
gtk_get_current_event_time());
}
@@ -3588,7 +3588,7 @@ preset_import_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter);
gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(dialog), filter);
- exportDir = ghb_settings_get_string(ud->settings, "ExportDirectory");
+ exportDir = ghb_settings_get_string(ud->prefs, "ExportDirectory");
if (exportDir == NULL || exportDir[0] == '\0')
{
exportDir = g_strdup(".");
@@ -3656,12 +3656,12 @@ preset_import_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
}
ghb_value_free(array);
- exportDir = ghb_settings_get_string(ud->settings, "ExportDirectory");
+ exportDir = ghb_settings_get_string(ud->prefs, "ExportDirectory");
dir = g_path_get_dirname(filename);
if (strcmp(dir, exportDir) != 0)
{
- ghb_settings_set_string(ud->settings, "ExportDirectory", dir);
- ghb_pref_save(ud->settings, "ExportDirectory");
+ ghb_settings_set_string(ud->prefs, "ExportDirectory", dir);
+ ghb_pref_save(ud->prefs, "ExportDirectory");
}
g_free(filename);
g_free(exportDir);
@@ -3699,7 +3699,7 @@ preset_export_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
GHB_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
NULL);
- exportDir = ghb_settings_get_string(ud->settings, "ExportDirectory");
+ exportDir = ghb_settings_get_string(ud->prefs, "ExportDirectory");
if (exportDir == NULL || exportDir[0] == '\0')
{
exportDir = g_strdup(".");
@@ -3742,12 +3742,12 @@ preset_export_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
}
ghb_value_free(array);
- exportDir = ghb_settings_get_string(ud->settings, "ExportDirectory");
+ exportDir = ghb_settings_get_string(ud->prefs, "ExportDirectory");
dir = g_path_get_dirname(filename);
if (strcmp(dir, exportDir) != 0)
{
- ghb_settings_set_string(ud->settings, "ExportDirectory", dir);
- ghb_pref_save(ud->settings, "ExportDirectory");
+ ghb_settings_set_string(ud->prefs, "ExportDirectory", dir);
+ ghb_pref_save(ud->prefs, "ExportDirectory");
}
g_free(exportDir);
g_free(dir);
@@ -3770,7 +3770,7 @@ presets_new_folder_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
gint count, *indices, len;
g_debug("presets_new_folder_clicked_cb ()");
- preset = ghb_settings_get_value (ud->settings, "preset_selection");
+ preset = ghb_settings_get_value(ud->settings, "preset_selection");
count = ghb_array_len(preset);
if (count > 0)
@@ -3835,7 +3835,7 @@ presets_save_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
gint count, *indices, len;
g_debug("presets_save_clicked_cb ()");
- preset = ghb_settings_get_value (ud->settings, "preset_selection");
+ preset = ghb_settings_get_value(ud->settings, "preset_selection");
count = ghb_array_len(preset);
if (count > 0)
@@ -3847,9 +3847,9 @@ presets_save_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
int width = ghb_settings_get_int(ud->settings, "PictureWidth");
int height = ghb_settings_get_int(ud->settings, "PictureHeight");
gboolean autoscale = ghb_settings_get_boolean(ud->settings, "autoscale");
- ghb_ui_update(ud, "PictureWidthEnable",
+ ghb_ui_update(ud, "PictureWidthEnable",
ghb_boolean_value(width!=0&&!autoscale));
- ghb_ui_update(ud, "PictureHeightEnable",
+ ghb_ui_update(ud, "PictureHeightEnable",
ghb_boolean_value(height!=0&&!autoscale));
if (!width)
{
@@ -3911,7 +3911,7 @@ presets_restore_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
ghb_presets_reload(ud);
// Updating the presets list shuffles things around
// need to make sure the proper preset is selected
- preset = ghb_settings_get_value (ud->settings, "preset");
+ preset = ghb_settings_get_value(ud->settings, "preset");
ghb_select_preset(ud->builder, preset);
}
@@ -3943,7 +3943,7 @@ presets_remove_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
folder = ghb_presets_get_folder(presetsPlist, indices, len);
dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL,
GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO,
- "Confirm deletion of %s:\n\n%s",
+ "Confirm deletion of %s:\n\n%s",
folder ? "folder" : "preset",
preset);
response = gtk_dialog_run(GTK_DIALOG(dialog));
@@ -4066,7 +4066,7 @@ presets_drag_motion_cb(
// Only allow *drop into* for folders
if (!dst_folder)
- {
+ {
if (drop_pos == GTK_TREE_VIEW_DROP_INTO_OR_BEFORE)
drop_pos = GTK_TREE_VIEW_DROP_BEFORE;
if (drop_pos == GTK_TREE_VIEW_DROP_INTO_OR_AFTER)
@@ -4080,13 +4080,13 @@ presets_drag_motion_cb(
return TRUE;
}
-G_MODULE_EXPORT void
+G_MODULE_EXPORT void
presets_drag_cb(
- GtkTreeView *dstwidget,
- GdkDragContext *dc,
- gint x, gint y,
- GtkSelectionData *selection_data,
- guint info, guint t,
+ GtkTreeView *dstwidget,
+ GdkDragContext *dc,
+ gint x, gint y,
+ GtkSelectionData *selection_data,
+ guint info, guint t,
signal_user_data_t *ud)
{
GtkTreePath *path = NULL;
@@ -4095,9 +4095,9 @@ presets_drag_cb(
gint *dst_indices, dst_len, *src_indices, src_len;
gint src_ptype;
gboolean src_folder, dst_folder;
-
+
GtkTreeModel *dstmodel = gtk_tree_view_get_model(dstwidget);
-
+
g_debug("preset_drag_cb ()");
// This doesn't work here for some reason...
// gtk_tree_view_get_drag_dest_row(dstwidget, &path, &drop_pos);
@@ -4166,7 +4166,7 @@ presets_drag_cb(
dst_folder = ghb_presets_get_folder(presetsPlist, dst_indices, dst_len);
// Only allow *drop into* for folders
if (!dst_folder)
- {
+ {
if (drop_pos == GTK_TREE_VIEW_DROP_INTO_OR_BEFORE)
drop_pos = GTK_TREE_VIEW_DROP_BEFORE;
if (drop_pos == GTK_TREE_VIEW_DROP_INTO_OR_AFTER)
@@ -4180,22 +4180,22 @@ presets_drag_cb(
switch (drop_pos)
{
case GTK_TREE_VIEW_DROP_BEFORE:
- gtk_tree_store_insert_before(GTK_TREE_STORE (dstmodel),
+ gtk_tree_store_insert_before(GTK_TREE_STORE (dstmodel),
&iter, NULL, &dstiter);
break;
case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
- gtk_tree_store_insert(GTK_TREE_STORE (dstmodel),
+ gtk_tree_store_insert(GTK_TREE_STORE (dstmodel),
&iter, &dstiter, 0);
break;
case GTK_TREE_VIEW_DROP_AFTER:
- gtk_tree_store_insert_after(GTK_TREE_STORE (dstmodel),
+ gtk_tree_store_insert_after(GTK_TREE_STORE (dstmodel),
&iter, NULL, &dstiter);
break;
case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
- gtk_tree_store_insert_after(GTK_TREE_STORE (dstmodel),
+ gtk_tree_store_insert_after(GTK_TREE_STORE (dstmodel),
&iter, &dstiter, 0);
break;
@@ -4231,9 +4231,9 @@ presets_drag_cb(
void
presets_row_expanded_cb(
- GtkTreeView *treeview,
- GtkTreeIter *iter,
- GtkTreePath *path,
+ GtkTreeView *treeview,
+ GtkTreeIter *iter,
+ GtkTreePath *path,
signal_user_data_t *ud)
{
gint *indices, len;
@@ -4285,113 +4285,52 @@ presets_row_expanded_cb(
store_presets();
}
-static void
-preset_update_title_deps(signal_user_data_t *ud, hb_title_t *title)
+GValue*
+ghb_get_current_preset(signal_user_data_t *ud)
{
- GtkWidget *widget;
+ GtkTreeView *tv;
+ GtkTreeModel *tm;
+ GtkTreeSelection *ts;
+ GtkTreeIter ti;
+ GValue *preset = NULL;
+
+ tv = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "presets_list"));
+ ts = gtk_tree_view_get_selection(tv);
+ if (gtk_tree_selection_get_selected(ts, &tm, &ti))
+ {
+ GtkTreePath *tp;
+ gint *indices, len;
- ghb_ui_update(ud, "scale_width",
- ghb_int64_value(title->width - title->crop[2] - title->crop[3]));
- // If anamorphic or keep_aspect, the hight will be automatically calculated
- gboolean keep_aspect;
- gint pic_par;
- keep_aspect = ghb_settings_get_boolean(ud->settings, "PictureKeepRatio");
- pic_par = ghb_settings_combo_int(ud->settings, "PicturePAR");
- if (!(keep_aspect || pic_par) || pic_par == 3)
- {
- ghb_ui_update(ud, "scale_height",
- ghb_int64_value(title->height - title->crop[0] - title->crop[1]));
- }
-
- // Set the limits of cropping. hb_set_anamorphic_size crashes if
- // you pass it a cropped width or height == 0.
- gint bound;
- bound = title->height / 2 - 2;
- widget = GHB_WIDGET (ud->builder, "PictureTopCrop");
- gtk_spin_button_set_range (GTK_SPIN_BUTTON(widget), 0, bound);
- widget = GHB_WIDGET (ud->builder, "PictureBottomCrop");
- gtk_spin_button_set_range (GTK_SPIN_BUTTON(widget), 0, bound);
- bound = title->width / 2 - 2;
- widget = GHB_WIDGET (ud->builder, "PictureLeftCrop");
- gtk_spin_button_set_range (GTK_SPIN_BUTTON(widget), 0, bound);
- widget = GHB_WIDGET (ud->builder, "PictureRightCrop");
- gtk_spin_button_set_range (GTK_SPIN_BUTTON(widget), 0, bound);
- if (ghb_settings_get_boolean(ud->settings, "PictureAutoCrop"))
- {
- ghb_ui_update(ud, "PictureTopCrop", ghb_int64_value(title->crop[0]));
- ghb_ui_update(ud, "PictureBottomCrop", ghb_int64_value(title->crop[1]));
- ghb_ui_update(ud, "PictureLeftCrop", ghb_int64_value(title->crop[2]));
- ghb_ui_update(ud, "PictureRightCrop", ghb_int64_value(title->crop[3]));
+ tp = gtk_tree_model_get_path(tm, &ti);
+ indices = gtk_tree_path_get_indices(tp);
+ len = gtk_tree_path_get_depth(tp);
+ preset = presets_get_dict(presetsPlist, indices, len);
}
+ return preset;
}
-void
-ghb_refresh_preset(signal_user_data_t *ud)
+GValue*
+ghb_get_current_preset_path(signal_user_data_t *ud)
{
- GValue *preset;
- gint *indices, len;
+ GtkTreeView *tv;
+ GtkTreeModel *tm;
+ GtkTreeSelection *ts;
+ GtkTreeIter ti;
+ GValue *path = NULL;
- g_debug("ghb_refresh_preset ()");
- preset = ghb_settings_get_value(ud->settings, "preset_selection");
- indices = ghb_preset_indices_from_path(presetsPlist, preset, &len);
- if (indices)
+ tv = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "presets_list"));
+ ts = gtk_tree_view_get_selection(tv);
+ if (gtk_tree_selection_get_selected(ts, &tm, &ti))
{
- gboolean folder;
+ GtkTreePath *tp;
+ gint *indices, len;
- folder = ghb_presets_get_folder(presetsPlist, indices, len);
- if (!folder)
- {
- ud->dont_clear_presets = TRUE;
- ud->scale_busy = TRUE;
- // Temporarily set the video_quality range to (0,100)
- // This is needed so the video_quality value does not get
- // truncated when set. The range will be readjusted below
- GtkWidget *qp = GHB_WIDGET(ud->builder, "VideoQualitySlider");
- gtk_range_set_range (GTK_RANGE(qp), 0, 100);
- gtk_scale_set_digits(GTK_SCALE(qp), 3);
- ghb_set_preset_from_indices(ud, indices, len);
- gint titleindex;
- titleindex = ghb_settings_combo_int(ud->settings, "title");
- ghb_audio_def_settings_init(ud);
- ghb_subtitle_def_settings_init(ud);
- ghb_set_pref_audio_settings(titleindex, ud->settings);
- ghb_set_pref_audio_from_settings(ud, ud->settings);
- ghb_set_pref_subtitle(titleindex, ud);
- ghb_settings_set_boolean(ud->settings, "preset_modified", FALSE);
- hb_title_t * title = ghb_get_title_info(titleindex);
- if (title != NULL)
- {
- preset_update_title_deps(ud, title);
- }
- ud->scale_busy = FALSE;
- ghb_set_scale (ud, GHB_PIC_KEEP_PAR|GHB_PIC_USE_MAX);
- ud->dont_clear_presets = FALSE;
-
- gdouble vqmin, vqmax, step, page;
- gint digits;
- gboolean inverted;
-
- ghb_vquality_range(ud, &vqmin, &vqmax, &step,
- &page, &digits, &inverted);
- gtk_range_set_range (GTK_RANGE(qp), vqmin, vqmax);
- gtk_range_set_increments (GTK_RANGE(qp), step, page);
- gtk_scale_set_digits(GTK_SCALE(qp), digits);
- gtk_range_set_inverted (GTK_RANGE(qp), inverted);
-
- gchar *text;
- gint crop[4];
- GtkWidget *crop_widget;
- crop[0] = ghb_settings_get_int(ud->settings, "PictureTopCrop");
- crop[1] = ghb_settings_get_int(ud->settings, "PictureBottomCrop");
- crop[2] = ghb_settings_get_int(ud->settings, "PictureLeftCrop");
- crop[3] = ghb_settings_get_int(ud->settings, "PictureRightCrop");
- crop_widget = GHB_WIDGET (ud->builder, "crop_values");
- text = g_strdup_printf("%d:%d:%d:%d",
- crop[0], crop[1], crop[2], crop[3]);
- gtk_label_set_text (GTK_LABEL(crop_widget), text);
- g_free(text);
- }
+ tp = gtk_tree_model_get_path(tm, &ti);
+ indices = gtk_tree_path_get_indices(tp);
+ len = gtk_tree_path_get_depth(tp);
+ path = preset_path_from_indices(presetsPlist, indices, len);
}
+ return path;
}
G_MODULE_EXPORT void
@@ -4400,7 +4339,7 @@ presets_list_selection_changed_cb(GtkTreeSelection *selection, signal_user_data_
GtkTreeModel *store;
GtkTreeIter iter;
GtkWidget *widget;
-
+
g_debug("presets_list_selection_changed_cb ()");
widget = GHB_WIDGET (ud->builder, "presets_remove");
if (gtk_tree_selection_get_selected(selection, &store, &iter))
@@ -4418,58 +4357,14 @@ presets_list_selection_changed_cb(GtkTreeSelection *selection, signal_user_data_
ghb_settings_take_value(ud->settings, "preset_selection", path);
folder = ghb_presets_get_folder(presetsPlist, indices, len);
- if (!folder)
+ if (!folder && !ghb_settings_get_boolean(ud->settings, "preset_reload"))
{
- ud->dont_clear_presets = TRUE;
- ud->scale_busy = TRUE;
- // Temporarily set the video_quality range to (0,100)
- // This is needed so the video_quality value does not get
- // truncated when set. The range will be readjusted below
- GtkWidget *qp = GHB_WIDGET(ud->builder, "VideoQualitySlider");
- gtk_range_set_range (GTK_RANGE(qp), 0, 100);
- gtk_scale_set_digits(GTK_SCALE(qp), 3);
- ghb_set_preset_from_indices(ud, indices, len);
- gint titleindex;
- titleindex = ghb_settings_combo_int(ud->settings, "title");
- ghb_audio_def_settings_init(ud);
- ghb_subtitle_def_settings_init(ud);
- ghb_set_pref_audio_settings(titleindex, ud->settings);
- ghb_set_pref_audio_from_settings(ud, ud->settings);
- ghb_set_pref_subtitle(titleindex, ud);
- ghb_settings_set_boolean(ud->settings, "preset_modified", FALSE);
- hb_title_t * title = ghb_get_title_info(titleindex);
- if (title != NULL)
- {
- preset_update_title_deps(ud, title);
- }
- ud->scale_busy = FALSE;
- ghb_set_scale (ud, GHB_PIC_KEEP_PAR|GHB_PIC_USE_MAX);
- ud->dont_clear_presets = FALSE;
-
- gdouble vqmin, vqmax, step, page;
- gint digits;
- gboolean inverted;
-
- ghb_vquality_range(ud, &vqmin, &vqmax, &step,
- &page, &digits, &inverted);
- gtk_range_set_range (GTK_RANGE(qp), vqmin, vqmax);
- gtk_range_set_increments (GTK_RANGE(qp), step, page);
- gtk_scale_set_digits(GTK_SCALE(qp), digits);
- gtk_range_set_inverted (GTK_RANGE(qp), inverted);
-
- gchar *text;
- gint crop[4];
- GtkWidget *crop_widget;
- crop[0] = ghb_settings_get_int(ud->settings, "PictureTopCrop");
- crop[1] = ghb_settings_get_int(ud->settings, "PictureBottomCrop");
- crop[2] = ghb_settings_get_int(ud->settings, "PictureLeftCrop");
- crop[3] = ghb_settings_get_int(ud->settings, "PictureRightCrop");
- crop_widget = GHB_WIDGET (ud->builder, "crop_values");
- text = g_strdup_printf("%d:%d:%d:%d",
- crop[0], crop[1], crop[2], crop[3]);
- gtk_label_set_text (GTK_LABEL(crop_widget), text);
- g_free(text);
+ ghb_set_preset_settings_from_indices(ud, indices, len);
+ ghb_set_current_title_settings(ud);
+ ghb_load_settings(ud);
}
+ ghb_settings_set_boolean(ud->settings, "preset_reload", FALSE);
+
gtk_tree_path_free(treepath);
gtk_widget_set_sensitive(widget, TRUE);
}
@@ -4478,21 +4373,6 @@ presets_list_selection_changed_cb(GtkTreeSelection *selection, signal_user_data_
g_debug("No selection??? Perhaps unselected.");
gtk_widget_set_sensitive(widget, FALSE);
}
- if (ghb_settings_combo_int(ud->settings, "PtoPType") == 0)
- {
- gint start, end;
- start = ghb_settings_get_int(ud->settings, "start_point");
- end = ghb_settings_get_int(ud->settings, "end_point");
- widget = GHB_WIDGET (ud->builder, "ChapterMarkers");
- gtk_widget_set_sensitive(widget, TRUE);
- if (start == end)
- {
- ud->dont_clear_presets = TRUE;
- ghb_ui_update(ud, "ChapterMarkers", ghb_boolean_value(FALSE));
- ud->dont_clear_presets = FALSE;
- gtk_widget_set_sensitive(widget, FALSE);
- }
- }
}
void
@@ -4500,7 +4380,7 @@ ghb_clear_presets_selection(signal_user_data_t *ud)
{
GtkTreeView *treeview;
GtkTreeSelection *selection;
-
+
if (ud->dont_clear_presets) return;
g_debug("ghb_clear_presets_selection()");
treeview = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "presets_list"));
@@ -4516,7 +4396,7 @@ presets_frame_size_allocate_cb(GtkWidget *widget, GtkAllocation *allocation, sig
GtkTreeSelection *selection;
GtkTreeModel *store;
GtkTreeIter iter;
-
+
treeview = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "presets_list"));
selection = gtk_tree_view_get_selection(treeview);
if (gtk_tree_selection_get_selected(selection, &store, &iter))
@@ -4544,7 +4424,7 @@ presets_default_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
{
ghb_presets_list_clear_default(ud);
presets_set_default(indices, len);
- ghb_presets_list_default(ud);
+ ghb_presets_list_show_default(ud);
}
g_free(indices);
}
@@ -4552,9 +4432,9 @@ presets_default_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
G_MODULE_EXPORT void
preset_edited_cb(
- GtkCellRendererText *cell,
- gchar *path,
- gchar *text,
+ GtkCellRendererText *cell,
+ gchar *path,
+ gchar *text,
signal_user_data_t *ud)
{
GtkTreePath *treepath;
@@ -4564,7 +4444,7 @@ preset_edited_cb(
gint *indices, len, count;
GValue *dict;
GValue *preset, *dest;
-
+
g_debug("preset_edited_cb ()");
g_debug("path (%s)", path);
g_debug("text (%s)", text);