From 6b05feae2e57d126f57a1f40527ff387070e9a73 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Tue, 19 Apr 2005 16:40:32 +0000 Subject: Remove get_title from the interface, we can just use document info 2005-04-19 Marco Pesenti Gritti * backend/ev-document.c: (ev_document_class_init), (ev_document_get_info), (ev_document_render_pixbuf): * backend/ev-document.h: * backend/ev-page-cache.c: (_ev_page_cache_new): * pdf/ev-poppler.cc: * pixbuf/pixbuf-document.c: (pixbuf_document_class_init), (pixbuf_document_get_info), (pixbuf_document_document_iface_init): * ps/ps-document.c: (ps_document_class_init), (document_load), (ps_document_get_info), (ps_document_document_iface_init): Remove get_title from the interface, we can just use document info --- (limited to 'backend') diff --git a/backend/ev-document.c b/backend/ev-document.c index 6aa0504..5df6e69 100644 --- a/backend/ev-document.c +++ b/backend/ev-document.c @@ -67,12 +67,6 @@ ev_document_error_quark (void) static void ev_document_class_init (gpointer g_class) { - g_object_interface_install_property (g_class, - g_param_spec_string ("title", - "Document Title", - "The title of the document", - NULL, - G_PARAM_READABLE)); } #define PAGE_CACHE_STRING "ev-page-cache" @@ -134,17 +128,6 @@ ev_document_save (EvDocument *document, return retval; } -char * -ev_document_get_title (EvDocument *document) -{ - char *title; - - LOG ("ev_document_get_title"); - g_object_get (document, "title", &title, NULL); - - return title; -} - int ev_document_get_n_pages (EvDocument *document) { @@ -190,6 +173,14 @@ ev_document_can_get_text (EvDocument *document) return iface->can_get_text (document); } +EvDocumentInfo * +ev_document_get_info (EvDocument *document) +{ + EvDocumentIface *iface = EV_DOCUMENT_GET_IFACE (document); + + return iface->get_info (document); +} + char * ev_document_get_text (EvDocument *document, int page, @@ -236,22 +227,3 @@ ev_document_render_pixbuf (EvDocument *document, return retval; } - - -EvDocumentInfo * -ev_document_render_get_info (EvDocument *document) -{ - EvDocumentIface *iface = EV_DOCUMENT_GET_IFACE (document); - EvDocumentInfo *retval = NULL; - - LOG ("ev_document_render_pixbuf"); - - if (iface->get_info != NULL) - retval = iface->get_info (document); - - if (retval == NULL) - retval = g_new0 (EvDocumentInfo, 1); - - return retval; - -} diff --git a/backend/ev-document.h b/backend/ev-document.h index d8f8eba..47a91ee 100644 --- a/backend/ev-document.h +++ b/backend/ev-document.h @@ -92,38 +92,33 @@ struct _EvDocumentIface EvDocumentInfo *(* get_info) (EvDocument *document); }; -GType ev_document_get_type (void); -GQuark ev_document_error_quark (void); -EvPageCache *ev_document_get_page_cache (EvDocument *document); -GMutex *ev_document_get_doc_mutex (void); - - -EvDocumentInfo *ev_document_get_info (EvDocument *document); -gboolean ev_document_load (EvDocument *document, - const char *uri, - GError **error); -gboolean ev_document_save (EvDocument *document, - const char *uri, - GError **error); -char *ev_document_get_title (EvDocument *document); -int ev_document_get_n_pages (EvDocument *document); -void ev_document_get_page_size (EvDocument *document, - int page, - double *width, - double *height); -char *ev_document_get_page_label(EvDocument *document, - int page); -gboolean ev_document_can_get_text (EvDocument *document); -char *ev_document_get_text (EvDocument *document, - int page, - EvRectangle *rect); -GList *ev_document_get_links (EvDocument *document, - int page); -GdkPixbuf *ev_document_render_pixbuf (EvDocument *document, - int page, - double scale); -EvDocumentInfo *ev_document_render_get_info (EvDocument *document); - +GType ev_document_get_type (void); +GQuark ev_document_error_quark (void); +EvPageCache *ev_document_get_page_cache (EvDocument *document); +GMutex *ev_document_get_doc_mutex (void); +EvDocumentInfo *ev_document_get_info (EvDocument *document); +gboolean ev_document_load (EvDocument *document, + const char *uri, + GError **error); +gboolean ev_document_save (EvDocument *document, + const char *uri, + GError **error); +int ev_document_get_n_pages (EvDocument *document); +void ev_document_get_page_size (EvDocument *document, + int page, + double *width, + double *height); +char *ev_document_get_page_label (EvDocument *document, + int page); +gboolean ev_document_can_get_text (EvDocument *document); +char *ev_document_get_text (EvDocument *document, + int page, + EvRectangle *rect); +GList *ev_document_get_links (EvDocument *document, + int page); +GdkPixbuf *ev_document_render_pixbuf (EvDocument *document, + int page, + double scale); G_END_DECLS diff --git a/backend/ev-page-cache.c b/backend/ev-page-cache.c index 491e074..935347e 100644 --- a/backend/ev-page-cache.c +++ b/backend/ev-page-cache.c @@ -89,6 +89,7 @@ ev_page_cache_finalize (GObject *object) EvPageCache * _ev_page_cache_new (EvDocument *document) { + EvDocumentInfo *doc_info; EvPageCache *page_cache; EvPageCacheInfo *info; gint i; @@ -102,9 +103,16 @@ _ev_page_cache_new (EvDocument *document) /* Assume all pages are the same size until proven otherwise */ page_cache->uniform = TRUE; page_cache->n_pages = ev_document_get_n_pages (document); - page_cache->title = ev_document_get_title (document); page_cache->page_labels = g_new0 (char *, page_cache->n_pages); + doc_info = ev_document_get_info (document); + if (doc_info->fields_mask & EV_DOCUMENT_INFO_TITLE) { + page_cache->title = g_strdup (doc_info->title); + } else { + page_cache->title = NULL; + } + g_free (doc_info); + for (i = 0; i < page_cache->n_pages; i++) { double page_width = 0; double page_height = 0; -- cgit v0.9.1