+ GtkTreeIter iter;
+ GtkTreePath *path;
+ GtkTreeRowReference *ref;
+ OFString *bareJID = [contact.rosterItem.JID bareJID];
+ OFMapTable *contactRows = [_contactMap objectForKey: bareJID];
+
+ for (OFString *group in contact.rosterItem.groups) {
+ ref = [contactRows valueForKey: group];
+ path = gtk_tree_row_reference_get_path(ref);
+ gtk_tree_model_get_iter(GTK_TREE_MODEL(_roster_model),
+ &iter, path);
+ gtk_tree_path_free(path);
+
+ if ([highPresence.type isEqual: @"available"]) {
+ if (highPresence.show != nil)
+ gtk_tree_store_set(_roster_model, &iter,
+ 2, [highPresence.show UTF8String],
+ -1);
+ else
+ gtk_tree_store_set(_roster_model, &iter,
+ 2, "available", -1);
+ } else
+ gtk_tree_store_set(_roster_model, &iter,
+ 2, "unavailable", -1);
+
+ gtk_tree_store_set(_roster_model, &iter,
+ 3, [tooltip UTF8String], -1);
+ }
+
+ gtk_tree_model_filter_refilter(_roster_filter);