static void vinagre_bookmarks_fill_tree (GSList *entries, GtkTreeStore *store, GtkTreeIter *parent, GdkPixbuf *pixbuf) { GSList *l; GtkTreeIter iter; VinagreBookmarksEntry *entry; for (l = entries; l; l = l->next) { entry = VINAGRE_BOOKMARKS_ENTRY (l->data); if (vinagre_bookmarks_entry_get_node (entry) != VINAGRE_BOOKMARKS_ENTRY_NODE_FOLDER) continue; gtk_tree_store_append (store, &iter, parent); gtk_tree_store_set (store, &iter, IMAGE_COL, pixbuf, NAME_COL, vinagre_bookmarks_entry_get_name (entry), ENTRY_COL, entry, -1); vinagre_bookmarks_fill_tree (vinagre_bookmarks_entry_get_children (entry), store, &iter, pixbuf); } }
static void vinagre_bookmarks_entry_dispose (GObject *object) { VinagreBookmarksEntry *entry = VINAGRE_BOOKMARKS_ENTRY (object); switch (entry->priv->node) { case VINAGRE_BOOKMARKS_ENTRY_NODE_CONN: if (entry->priv->conn) { g_object_unref (entry->priv->conn); entry->priv->conn = NULL; } break; case VINAGRE_BOOKMARKS_ENTRY_NODE_FOLDER: if (entry->priv->children) { g_slist_foreach (entry->priv->children, (GFunc) g_object_unref, NULL); g_slist_free (entry->priv->children); entry->priv->children = NULL; } break; default: g_assert_not_reached (); } G_OBJECT_CLASS (vinagre_bookmarks_entry_parent_class)->dispose (object); }
static void vinagre_bookmarks_entry_finalize (GObject *object) { VinagreBookmarksEntry *entry = VINAGRE_BOOKMARKS_ENTRY (object); if (entry->priv->node == VINAGRE_BOOKMARKS_ENTRY_NODE_FOLDER) g_free (entry->priv->name); G_OBJECT_CLASS (vinagre_bookmarks_entry_parent_class)->finalize (object); }
VinagreBookmarksEntry * vinagre_bookmarks_entry_new_folder (const gchar *name) { VinagreBookmarksEntry *entry; g_return_val_if_fail (name != NULL, NULL); entry = VINAGRE_BOOKMARKS_ENTRY (g_object_new (VINAGRE_TYPE_BOOKMARKS_ENTRY, NULL)); vinagre_bookmarks_entry_set_node (entry, VINAGRE_BOOKMARKS_ENTRY_NODE_FOLDER); vinagre_bookmarks_entry_set_name (entry, name); return entry; }
VinagreBookmarksEntry * vinagre_bookmarks_entry_new_conn (VinagreConnection *conn) { VinagreBookmarksEntry *entry; g_return_val_if_fail (VINAGRE_IS_CONNECTION (conn), NULL); entry = VINAGRE_BOOKMARKS_ENTRY (g_object_new (VINAGRE_TYPE_BOOKMARKS_ENTRY, NULL)); vinagre_bookmarks_entry_set_node (entry, VINAGRE_BOOKMARKS_ENTRY_NODE_CONN); vinagre_bookmarks_entry_set_conn (entry, conn); return entry; }