fixed keyword tree initialization
authorVladimir Nadvornik <nadvornik@suse.cz>
Thu, 7 May 2009 19:52:38 +0000 (19:52 +0000)
committerVladimir Nadvornik <nadvornik@suse.cz>
Thu, 7 May 2009 19:52:38 +0000 (19:52 +0000)
src/bar_keywords.c
src/metadata.c

index c71ba21..497ddcf 100644 (file)
@@ -1224,6 +1224,7 @@ static GtkWidget *bar_pane_keywords_new(const gchar *id, const gchar *title, con
        GtkTreeModel *store;
        GtkTreeViewColumn *column;
        GtkCellRenderer *renderer;
+       GtkTreeIter iter;
 
        pkd = g_new0(PaneKeywordsData, 1);
 
@@ -1273,7 +1274,11 @@ static GtkWidget *bar_pane_keywords_new(const gchar *id, const gchar *title, con
        gtk_widget_show(scrolled);
 
 
-       if (!keyword_tree) keyword_tree_new_default();
+       if (!keyword_tree || !gtk_tree_model_get_iter_first(GTK_TREE_MODEL(keyword_tree), &iter))
+               {
+               /* keyword tree does not exist or is empty - fill with defaults */
+               keyword_tree_new_default();
+               }
 
        store = gtk_tree_model_filter_new(GTK_TREE_MODEL(keyword_tree), NULL);
 
index 4a0a279..2cdaf54 100644 (file)
@@ -1333,12 +1333,10 @@ static GtkTreeIter keyword_tree_default_append(GtkTreeStore *keyword_tree, GtkTr
 
 void keyword_tree_new_default(void)
 {
-       if (keyword_tree) return;
-       
-       keyword_tree_new();
-
        GtkTreeIter i1, i2, i3;
 
+       if (!keyword_tree) keyword_tree_new();
+
        i1 = keyword_tree_default_append(keyword_tree, NULL, _("People"), TRUE); 
                i2 = keyword_tree_default_append(keyword_tree, &i1, _("Family"), TRUE); 
                i2 = keyword_tree_default_append(keyword_tree, &i1, _("Free time"), TRUE);