Skip to content

Commit

Permalink
xps: Create the links of the index with a title
Browse files Browse the repository at this point in the history
  • Loading branch information
Carlos Garcia Campos committed Feb 17, 2013
1 parent 17e8e7f commit b3eebd0
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions backend/xps/xps-document.c
Original file line number Diff line number Diff line change
Expand Up @@ -287,11 +287,10 @@ xps_document_links_has_document_links (EvDocumentLinks *document_links)
return retval;
}

static EvLink *
ev_link_from_target (XPSDocument *xps_document,
GXPSLinkTarget *target)
static EvLinkAction *
link_action_from_target (XPSDocument *xps_document,
GXPSLinkTarget *target)
{
EvLink *link;
EvLinkAction *ev_action;

if (gxps_link_target_is_internal (target)) {
Expand Down Expand Up @@ -337,10 +336,7 @@ ev_link_from_target (XPSDocument *xps_document,
ev_action = ev_link_action_new_external_uri (uri);
}

link = ev_link_new (NULL, ev_action);
g_object_unref (ev_action);

return link;
return ev_action;
}

static void
Expand All @@ -352,13 +348,16 @@ build_tree (XPSDocument *xps_document,
do {
GtkTreeIter tree_iter;
GXPSOutlineIter child_iter;
EvLinkAction *action;
EvLink *link;
GXPSLinkTarget *target;
gchar *title;

target = gxps_outline_iter_get_target (iter);
title = g_markup_escape_text (gxps_outline_iter_get_description (iter), -1);
link = ev_link_from_target (xps_document, target);
action = link_action_from_target (xps_document, target);
link = ev_link_new (title, action);
g_object_unref (action);
gxps_link_target_free (target);

gtk_tree_store_append (GTK_TREE_STORE (model), &tree_iter, parent);
Expand Down Expand Up @@ -417,22 +416,25 @@ xps_document_links_get_links (EvDocumentLinks *document_links,
for (list = mapping_list; list; list = list->next) {
GXPSLink *xps_link;
GXPSLinkTarget *target;
EvLinkAction *action;
EvMapping *ev_link_mapping;
cairo_rectangle_t area;

xps_link = (GXPSLink *)list->data;
ev_link_mapping = g_new (EvMapping, 1);
gxps_link_get_area (xps_link, &area);
target = gxps_link_get_target (xps_link);
ev_link_mapping->data = ev_link_from_target (xps_document, target);
action = link_action_from_target (xps_document, target);

ev_link_mapping->data = ev_link_new (NULL, action);
ev_link_mapping->area.x1 = area.x;
ev_link_mapping->area.x2 = area.x + area.width;
ev_link_mapping->area.y1 = area.y;
ev_link_mapping->area.y2 = area.y + area.height;

retval = g_list_prepend (retval, ev_link_mapping);
gxps_link_free (xps_link);
g_object_unref (action);
}

g_list_free (mapping_list);
Expand Down

0 comments on commit b3eebd0

Please sign in to comment.