Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pdf
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2005-06-04 16:47:07 (GMT)
committer Marco Pesenti Gritti <marco@src.gnome.org>2005-06-04 16:47:07 (GMT)
commitdbe438c1e95c6d2901c282a0c0e204c94114fb75 (patch)
tree0f8a758697c8997888c1be916f48def44a47b488 /pdf
parent1e52e37fcdfa46c0cc6e1ac9958cdde28ff7a629 (diff)
Implement fonts list. Defined out for now, since it depends on a not yet
2005-06-04 Marco Pesenti Gritti <mpg@redhat.com> * backend/Makefile.am: * backend/ev-document-fonts.c: (ev_document_fonts_get_type), (ev_document_fonts_get_fonts_model): * backend/ev-document-fonts.h: * data/evince-properties.glade: * pdf/ev-poppler.cc: * shell/ev-properties.c: (setup_fonts_view), (ev_properties_new): * shell/ev-properties.h: * shell/ev-window.c: (ev_window_cmd_file_properties): Implement fonts list. Defined out for now, since it depends on a not yet committed poppler patch.
Diffstat (limited to 'pdf')
-rw-r--r--pdf/ev-poppler.cc56
1 files changed, 53 insertions, 3 deletions
diff --git a/pdf/ev-poppler.cc b/pdf/ev-poppler.cc
index 7f2330d..a403388 100644
--- a/pdf/ev-poppler.cc
+++ b/pdf/ev-poppler.cc
@@ -30,6 +30,7 @@
#include "ev-document-find.h"
#include "ev-document-misc.h"
#include "ev-document-links.h"
+#include "ev-document-fonts.h"
#include "ev-document-security.h"
#include "ev-document-thumbnails.h"
@@ -62,6 +63,7 @@ static void pdf_document_document_iface_init (EvDocumentIface
static void pdf_document_security_iface_init (EvDocumentSecurityIface *iface);
static void pdf_document_document_thumbnails_iface_init (EvDocumentThumbnailsIface *iface);
static void pdf_document_document_links_iface_init (EvDocumentLinksIface *iface);
+static void pdf_document_document_fonts_iface_init (EvDocumentFontsIface *iface);
static void pdf_document_find_iface_init (EvDocumentFindIface *iface);
static void pdf_document_ps_exporter_iface_init (EvPSExporterIface *iface);
static void pdf_document_thumbnails_get_dimensions (EvDocumentThumbnails *document_thumbnails,
@@ -82,6 +84,8 @@ G_DEFINE_TYPE_WITH_CODE (PdfDocument, pdf_document, G_TYPE_OBJECT,
pdf_document_document_thumbnails_iface_init);
G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_LINKS,
pdf_document_document_links_iface_init);
+ G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_FONTS,
+ pdf_document_document_fonts_iface_init);
G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_FIND,
pdf_document_find_iface_init);
G_IMPLEMENT_INTERFACE (EV_TYPE_PS_EXPORTER,
@@ -491,6 +495,55 @@ pdf_document_security_iface_init (EvDocumentSecurityIface *iface)
iface->set_password = pdf_document_set_password;
}
+static void
+build_fonts_list (PdfDocument *pdf_document,
+ GtkTreeModel *model,
+ GtkTreeIter *parent,
+ PopplerFontsIter *iter)
+{
+#ifdef POPPLER_FONT_INFO
+ do {
+ GtkTreeIter list_iter;
+ PopplerIndexIter *child;
+ char *name;
+
+ name = poppler_fonts_iter_get_name (iter);
+ gtk_list_store_append (GTK_LIST_STORE (model), &list_iter);
+ gtk_list_store_set (GTK_LIST_STORE (model), &list_iter,
+ EV_DOCUMENT_FONTS_COLUMN_NAME, name,
+ -1);
+ g_free (name);
+ } while (poppler_fonts_iter_next (iter));
+#endif
+}
+
+static GtkTreeModel *
+pdf_document_fonts_get_fonts_model (EvDocumentFonts *document_fonts)
+{
+ PdfDocument *pdf_document = PDF_DOCUMENT (document_fonts);
+ GtkTreeModel *model = NULL;
+ PopplerFontsIter *iter;
+
+ g_return_val_if_fail (PDF_IS_DOCUMENT (document_fonts), NULL);
+
+ iter = poppler_fonts_iter_new (pdf_document->document);
+ /* Create the model iff we have items*/
+ if (iter != NULL) {
+ model = (GtkTreeModel *) gtk_list_store_new (EV_DOCUMENT_FONTS_COLUMN_NUM_COLUMNS,
+ G_TYPE_STRING);
+ build_fonts_list (pdf_document, model, NULL, iter);
+ poppler_fonts_iter_free (iter);
+ }
+
+ return model;
+}
+
+static void
+pdf_document_document_fonts_iface_init (EvDocumentFontsIface *iface)
+{
+ iface->get_fonts_model = pdf_document_fonts_get_fonts_model;
+}
+
static gboolean
pdf_document_links_has_document_links (EvDocumentLinks *document_links)
{
@@ -526,7 +579,6 @@ ev_link_from_action (PopplerAction *action)
return link;
}
-
static void
build_tree (PdfDocument *pdf_document,
GtkTreeModel *model,
@@ -582,7 +634,6 @@ pdf_document_links_get_links_model (EvDocumentLinks *document_links)
return model;
}
-
static void
pdf_document_document_links_iface_init (EvDocumentLinksIface *iface)
{
@@ -590,7 +641,6 @@ pdf_document_document_links_iface_init (EvDocumentLinksIface *iface)
iface->get_links_model = pdf_document_links_get_links_model;
}
-
static GdkPixbuf *
make_thumbnail_for_size (PdfDocument *pdf_document,
gint page,