Permalink
Browse files

LinGui: Fix duplicate preset name creation

Don't allow presets with the same name in the same folder.  If duplicate
found, append "(N)" to the name.
  • Loading branch information...
jstebbins committed Oct 29, 2015
1 parent 5adef96 commit bd6d8dbba750419c4bb46b10f952cc405f7f5054
Showing with 30 additions and 1 deletion.
  1. +30 −1 gtk/src/presets.c
@@ -1624,8 +1624,37 @@ settings_save(signal_user_data_t *ud, hb_preset_index_t *path, const char *name)
replace = TRUE;
}
}
char * new_name = strdup(name);
if (!replace)
{
// We are creating a new preset. Make sure there is not
// another preset in this folder that has the same name
int ii, count, index = 1;
GhbValue *children;
children = hb_presets_get_folder_children(path);
count = ghb_array_len(children);
do
{
for (ii = 0; ii < count; ii++)
{
GhbValue *preset;
const char *s;
preset = ghb_array_get(children, ii);
s = ghb_dict_get_string(preset, "PresetName");
if (s != NULL && !strcmp(s, new_name))
{
free(new_name);
new_name = g_strdup_printf("%s (%d)", name, index++);
break;
}
}
} while (ii < count);
}
dict = ghb_settings_to_preset(ud->settings);
ghb_dict_set_string(dict, "PresetName", name);
ghb_dict_set_string(dict, "PresetName", new_name);
free(new_name);
if (replace)
{
// Already exists, update its description

0 comments on commit bd6d8db

Please sign in to comment.