static void new_album_dialog_response_cb (GtkDialog *dialog, int response_id, gpointer user_data) { DialogData *data = user_data; switch (response_id) { case GTK_RESPONSE_DELETE_EVENT: case GTK_RESPONSE_CANCEL: gtk_widget_destroy (GTK_WIDGET (dialog)); break; case GTK_RESPONSE_OK: { PicasaWebAlbum *album; album = picasa_web_album_new (); picasa_web_album_set_title (album, picasa_album_properties_dialog_get_name (PICASA_ALBUM_PROPERTIES_DIALOG (dialog))); album->access = picasa_album_properties_dialog_get_access (PICASA_ALBUM_PROPERTIES_DIALOG (dialog)); picasa_web_service_create_album (data->service, album, data->cancellable, create_album_ready_cb, data); g_object_unref (album); } gtk_widget_destroy (GTK_WIDGET (dialog)); break; default: break; } }
static void picasa_web_album_load_from_element (DomDomizable *base, DomElement *element) { PicasaWebAlbum *self; DomElement *node; self = PICASA_WEB_ALBUM (base); picasa_web_album_set_id (self, NULL); picasa_web_album_set_title (self, NULL); picasa_web_album_set_summary (self, NULL); picasa_web_album_set_alternate_url (self, NULL); picasa_web_album_set_edit_url (self, NULL); picasa_web_album_set_access (self, NULL); self->n_photos = 0; self->n_photos_remaining = 0; self->used_bytes = 0; picasa_web_album_set_etag (self, dom_element_get_attribute (element, "gd:etag")); for (node = element->first_child; node; node = node->next_sibling) { if (g_strcmp0 (node->tag_name, "gphoto:id") == 0) { picasa_web_album_set_id (self, dom_element_get_inner_text (node)); } else if (g_strcmp0 (node->tag_name, "title") == 0) { picasa_web_album_set_title (self, dom_element_get_inner_text (node)); } else if (g_strcmp0 (node->tag_name, "summary") == 0) { picasa_web_album_set_summary (self, dom_element_get_inner_text (node)); } else if (g_strcmp0 (node->tag_name, "gphoto:location") == 0) { picasa_web_album_set_location (self, dom_element_get_inner_text (node)); } else if (g_strcmp0 (node->tag_name, "link") == 0) { if (g_strcmp0 (dom_element_get_attribute (node, "rel"), "edit") == 0) picasa_web_album_set_edit_url (self, dom_element_get_attribute (node, "href")); else if (g_strcmp0 (dom_element_get_attribute (node, "rel"), "alternate") == 0) picasa_web_album_set_alternate_url (self, dom_element_get_attribute (node, "href")); } else if (g_strcmp0 (node->tag_name, "gphoto:access") == 0) { picasa_web_album_set_access (self, dom_element_get_inner_text (node)); } else if (g_strcmp0 (node->tag_name, "gphoto:numphotos") == 0) { picasa_web_album_set_n_photos (self, dom_element_get_inner_text (node)); } else if (g_strcmp0 (node->tag_name, "gphoto:numphotosremaining") == 0) { picasa_web_album_set_n_photos_remaining (self, dom_element_get_inner_text (node)); } else if (g_strcmp0 (node->tag_name, "gphoto:bytesUsed") == 0) { picasa_web_album_set_used_bytes (self, dom_element_get_inner_text (node)); } else if (g_strcmp0 (node->tag_name, "media:group") == 0) { DomElement *child; for (child = node->first_child; child; child = child->next_sibling) { if (g_strcmp0 (child->tag_name, "media:keywords") == 0) { picasa_web_album_set_keywords (self, dom_element_get_inner_text (child)); break; } } } } }