cx_foreach(MDDocStyleSection*, sec, i) {
if(sec->length == MDDocStyleSection_IMAGE) {
Attachment *attachment = note_get_attachment(note, sec->link);
- if(attachment && attachment->bin_content.length > 0) {
- // we can use ui_image_load_data to load the image, but we
- // need an UiGeneric object for that
- UiGeneric imgobj;
- memset(&imgobj, 0, sizeof(UiGeneric));
- if(!ui_image_load_data(&imgobj, attachment->bin_content.ptr, attachment->bin_content.length)) {
- GdkPixbuf *pixbuf = imgobj.value;
+ if(attachment && attachment->ui->img->value) {
+ GdkPixbuf *pixbuf = attachment->ui->img->value;
- // TODO: remove code dup
- GtkTextIter iter;
- gtk_text_buffer_get_iter_at_offset(buffer, &iter, sec->pos);
- GtkTextChildAnchor *anchor = gtk_text_buffer_create_child_anchor(buffer, &iter);
- GtkWidget *image = embedded_image_create(pixbuf);
- gtk_text_view_add_child_at_anchor(GTK_TEXT_VIEW(textview), image, anchor);
-
- EmbeddedWidget *em = malloc(sizeof(EmbeddedWidget));
- em->widget = image;
- em->anchor = anchor;
- em->data1 = attachment;
- em->data2 = NULL;
- em->serialize = md_serialize_image;
- g_object_ref(image);
- g_object_ref(anchor);
-
- BufferEmbeddedObjects *embedded_objects = g_object_get_data(G_OBJECT(buffer), "embedded");
- cxListAdd(embedded_objects->objects, em);
-
- g_object_set_data(G_OBJECT(anchor), "em", em);
- } else {
- fprintf(stderr, "Error: cannot load image data\n");
- }
+ // TODO: remove code dup
+ GtkTextIter iter;
+ gtk_text_buffer_get_iter_at_offset(buffer, &iter, sec->pos);
+ GtkTextChildAnchor *anchor = gtk_text_buffer_create_child_anchor(buffer, &iter);
+ GtkWidget *image = embedded_image_create(pixbuf);
+ gtk_text_view_add_child_at_anchor(GTK_TEXT_VIEW(textview), image, anchor);
+
+ EmbeddedWidget *em = malloc(sizeof(EmbeddedWidget));
+ em->widget = image;
+ em->anchor = anchor;
+ em->data1 = attachment;
+ em->data2 = NULL;
+ em->serialize = md_serialize_image;
+ g_object_ref(image);
+ g_object_ref(anchor);
+
+ BufferEmbeddedObjects *embedded_objects = g_object_get_data(G_OBJECT(buffer), "embedded");
+ cxListAdd(embedded_objects->objects, em);
+
+ g_object_set_data(G_OBJECT(anchor), "em", em);
} else {
// TODO: what do we do in this case?
}