+ gtk_tree_model_get_iter(GTK_TREE_MODEL(_roster_model),
+ &group_iter, group_path);
+ }
+ gtk_tree_path_free(group_path);
+
+ // Create new contact row
+ gtk_tree_store_append(_roster_model, &contact_iter, &group_iter);
+ if (item.name)
+ gtk_tree_store_set(_roster_model, &contact_iter,
+ 0, [item.name UTF8String],
+ 1, [bareJID UTF8String],
+ 2, "unavailable", -1);
+ else if (item.JID.node)
+ gtk_tree_store_set(_roster_model, &contact_iter,
+ 0, [item.JID.node UTF8String],
+ 1, [bareJID UTF8String],
+ 2, "unavailable", -1);
+ else
+ gtk_tree_store_set(_roster_model, &contact_iter,
+ 0, [item.JID.domain UTF8String],
+ 1, [bareJID UTF8String],
+ 2, "unavailable", -1);
+
+ contact_path = gtk_tree_model_get_path(GTK_TREE_MODEL(_roster_model),
+ &contact_iter);
+
+ contact_ref = gtk_tree_row_reference_new(GTK_TREE_MODEL(_roster_model),
+ contact_path);
+
+ gtk_tree_path_free(contact_path);
+
+ [contactRows setValue: contact_ref
+ forKey: group];