]> www.fi.muni.cz Git - evince.git/blobdiff - libdocument/ev-document.c
[libdocument] Add ev_document_get_uri()
[evince.git] / libdocument / ev-document.c
index 5c63b25f9d86bd7f2d84b0bbd1ff796c449d6cab..38c12f2fd92f15688bd52a16e25571cde2a3ded7 100644 (file)
@@ -36,6 +36,8 @@ typedef struct _EvPageSize
 
 struct _EvDocumentPrivate
 {
+       gchar          *uri;
+
        gint            n_pages;
 
        gboolean        uniform;
@@ -93,6 +95,11 @@ ev_document_finalize (GObject *object)
 {
        EvDocument *document = EV_DOCUMENT (object);
 
+       if (document->priv->uri) {
+               g_free (document->priv->uri);
+               document->priv->uri = NULL;
+       }
+
        if (document->priv->page_sizes) {
                g_free (document->priv->page_sizes);
                document->priv->page_sizes = NULL;
@@ -239,6 +246,7 @@ ev_document_load (EvDocument  *document,
                /* Cache some info about the document to avoid
                 * going to the backends since it requires locks
                 */
+               priv->uri = g_strdup (uri);
                priv->n_pages = _ev_document_get_n_pages (document);
                priv->info = _ev_document_get_info (document);
 
@@ -434,6 +442,14 @@ ev_document_render (EvDocument      *document,
        return klass->render (document, rc);
 }
 
+const gchar *
+ev_document_get_uri (EvDocument *document)
+{
+       g_return_val_if_fail (EV_IS_DOCUMENT (document), NULL);
+
+       return document->priv->uri;
+}
+
 const gchar *
 ev_document_get_title (EvDocument *document)
 {