comparison src/bar_keywords.c @ 1465:400ecfc3d8b1

do not add duplicate keywords from config file
author nadvornik
date Fri, 20 Mar 2009 11:52:29 +0000
parents 1b3751ac4743
children 607c60506863
comparison
equal deleted inserted replaced
1464:1b3751ac4743 1465:400ecfc3d8b1
533 { 533 {
534 return TRUE; /* reordering of top-level siblings is ok */ 534 return TRUE; /* reordering of top-level siblings is ok */
535 } 535 }
536 536
537 src_name = keyword_get_name(keyword_tree, src_kw_iter); 537 src_name = keyword_get_name(keyword_tree, src_kw_iter);
538 if (keyword_exists(keyword_tree, NULL, dest_kw_iter, src_name, FALSE)) 538 if (keyword_exists(keyword_tree, NULL, dest_kw_iter, src_name, FALSE, NULL))
539 { 539 {
540 g_free(src_name); 540 g_free(src_name);
541 return FALSE; 541 return FALSE;
542 } 542 }
543 g_free(src_name); 543 g_free(src_name);
549 /* we have to find at least one keyword that does not already exist as a sibling of dest_kw_iter */ 549 /* we have to find at least one keyword that does not already exist as a sibling of dest_kw_iter */
550 GList *work = *keywords; 550 GList *work = *keywords;
551 while (work) 551 while (work)
552 { 552 {
553 gchar *keyword = work->data; 553 gchar *keyword = work->data;
554 if (keyword_exists(keyword_tree, NULL, dest_kw_iter, keyword, FALSE)) 554 if (keyword_exists(keyword_tree, NULL, dest_kw_iter, keyword, FALSE, NULL))
555 { 555 {
556 GList *next = work->next; 556 GList *next = work->next;
557 g_free(keyword); 557 g_free(keyword);
558 *keywords = g_list_delete_link(*keywords, work); 558 *keywords = g_list_delete_link(*keywords, work);
559 work = next; 559 work = next;
779 keywords = keyword_list_pull(cdd->edit_widget); 779 keywords = keyword_list_pull(cdd->edit_widget);
780 780
781 if (cdd->edit_existing) 781 if (cdd->edit_existing)
782 { 782 {
783 if (keywords && keywords->data && /* there should be one keyword */ 783 if (keywords && keywords->data && /* there should be one keyword */
784 !keyword_exists(keyword_tree, NULL, &kw_iter, keywords->data, TRUE)) 784 !keyword_exists(keyword_tree, NULL, &kw_iter, keywords->data, TRUE, NULL))
785 { 785 {
786 keyword_set(GTK_TREE_STORE(keyword_tree), &kw_iter, keywords->data, cdd->is_keyword); 786 keyword_set(GTK_TREE_STORE(keyword_tree), &kw_iter, keywords->data, cdd->is_keyword);
787 } 787 }
788 } 788 }
789 else 789 else
791 GList *work = keywords; 791 GList *work = keywords;
792 792
793 while (work) 793 while (work)
794 { 794 {
795 GtkTreeIter add; 795 GtkTreeIter add;
796 if (keyword_exists(keyword_tree, NULL, have_dest ? &kw_iter : NULL, work->data, FALSE)) 796 if (keyword_exists(keyword_tree, NULL, have_dest ? &kw_iter : NULL, work->data, FALSE, NULL))
797 { 797 {
798 work = work->next; 798 work = work->next;
799 continue; 799 continue;
800 } 800 }
801 if (have_dest) 801 if (have_dest)