MCPcopy Create free account
hub / github.com/HandBrake/HandBrake / subtitle_remove_lang_iter

Function subtitle_remove_lang_iter

gtk/src/subtitlehandler.c:1581–1643  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1579}
1580
1581void
1582subtitle_remove_lang_iter(GtkTreeModel *tm, GtkTreeIter *iter,
1583 signal_user_data_t *ud)
1584{
1585 GtkTreeView * avail;
1586 GtkTreeStore * avail_ts;
1587 GtkTreeIter pos, sibling;
1588 char * lang;
1589 int index;
1590 GtkTreePath * tp = gtk_tree_model_get_path(tm, iter);
1591 int * ind = gtk_tree_path_get_indices(tp);
1592 int row = ind[0];
1593 GhbValue * slang_list;
1594 GtkTreeSelection * tsel;
1595
1596 gtk_tree_path_free(tp);
1597 avail = GTK_TREE_VIEW(ghb_builder_widget("subtitle_avail_lang"));
1598 avail_ts = GTK_TREE_STORE(gtk_tree_view_get_model(avail));
1599 tsel = gtk_tree_view_get_selection(avail);
1600
1601 // Add to UI available language list box
1602 gtk_tree_model_get(tm, iter, 0, &lang, 1, &index, -1);
1603 if (ghb_find_lang_row(GTK_TREE_MODEL(avail_ts), &sibling, index))
1604 {
1605 gtk_tree_store_insert_before(avail_ts, &pos, NULL, &sibling);
1606 }
1607 else
1608 {
1609 gtk_tree_store_append(avail_ts, &pos, NULL);
1610 }
1611 gtk_tree_store_set(avail_ts, &pos, 0, lang, 1, index, -1);
1612 g_free(lang);
1613
1614 // Select the item added to the available list and make it
1615 // visible in the scrolled window
1616 tp = gtk_tree_model_get_path(GTK_TREE_MODEL(avail_ts), &pos);
1617 gtk_tree_selection_select_iter(tsel, &pos);
1618 gtk_tree_view_scroll_to_cell(avail, tp, NULL, FALSE, 0, 0);
1619 gtk_tree_path_free(tp);
1620
1621 // Remove from UI selected language list box
1622 gtk_tree_store_remove(GTK_TREE_STORE(tm), iter);
1623
1624 // Remove from preset language list
1625 slang_list = ghb_dict_get_value(ud->settings, "SubtitleLanguageList");
1626 ghb_array_remove(slang_list, row);
1627 ghb_clear_presets_selection(ud);
1628
1629 if (row == 0)
1630 {
1631 if (ghb_array_len(slang_list) > 0)
1632 {
1633 const iso639_lang_t *lang_id;
1634 GhbValue *entry = ghb_array_get(slang_list, 0);
1635 lang_id = ghb_iso639_lookup_by_int(ghb_lookup_lang(entry));
1636 subtitle_update_pref_lang(ud, lang_id);
1637 }
1638 else

Calls 7

ghb_builder_widgetFunction · 0.85
ghb_find_lang_rowFunction · 0.85
ghb_dict_get_valueFunction · 0.85
ghb_iso639_lookup_by_intFunction · 0.85
ghb_lookup_langFunction · 0.85

Tested by

no test coverage detected