]> www.fi.muni.cz Git - evince.git/commitdiff
Add document URI to properties page. Fixes bug #555376.
authorCarlos Garcia Campos <carlosgc@gnome.org>
Wed, 3 Dec 2008 15:45:10 +0000 (15:45 +0000)
committerCarlos Garcia Campos <carlosgc@src.gnome.org>
Wed, 3 Dec 2008 15:45:10 +0000 (15:45 +0000)
2008-12-03  Carlos Garcia Campos  <carlosgc@gnome.org>

* properties/ev-properties-main.c: (ev_properties_get_pages):
* properties/ev-properties-view.[ch]:
(ev_properties_view_dispose), (ev_properties_view_class_init),
(ev_properties_view_set_info), (ev_properties_view_new):
* shell/ev-properties-dialog.[ch]:
(ev_properties_dialog_set_document):
* shell/ev-window.c: (ev_window_setup_document),
(ev_window_cmd_file_properties):

Add document URI to properties page. Fixes bug #555376.

svn path=/trunk/; revision=3290

ChangeLog
properties/ev-properties-main.c
properties/ev-properties-view.c
properties/ev-properties-view.h
shell/ev-properties-dialog.c
shell/ev-properties-dialog.h
shell/ev-window.c

index 87e6cf43b3fd9fc4d3b11b4ade43e470e77263cf..111884b1070cb4bb560be34771d7bdd3f873e408 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2008-12-03  Carlos Garcia Campos  <carlosgc@gnome.org>
+
+       * properties/ev-properties-main.c: (ev_properties_get_pages):
+       * properties/ev-properties-view.[ch]:
+       (ev_properties_view_dispose), (ev_properties_view_class_init),
+       (ev_properties_view_set_info), (ev_properties_view_new):
+       * shell/ev-properties-dialog.[ch]:
+       (ev_properties_dialog_set_document):
+       * shell/ev-window.c: (ev_window_setup_document),
+       (ev_window_cmd_file_properties):
+
+       Add document URI to properties page. Fixes bug #555376.
+       
 2008-12-03  Carlos Garcia Campos  <carlosgc@gnome.org>
 
        * configure.ac:
index b25df9ea011a632f718a351ae0ddf99056be708d..d7f88e2de1aa08fc198629ad6c20cbaefef51836 100644 (file)
@@ -112,7 +112,7 @@ ev_properties_get_pages (NautilusPropertyPageProvider *provider,
                goto end;
 
        label = gtk_label_new (_("Document"));
-       page = ev_properties_view_new ();
+       page = ev_properties_view_new (uri);
        ev_properties_view_set_info (EV_PROPERTIES_VIEW (page),
                                     ev_document_get_info (document));
        gtk_widget_show (page);
index 65f29d115162b87f180c710908ebf16a191b024b..6382af4a7ef5a24831d73355ca6e92e994f7e771 100644 (file)
@@ -35,6 +35,7 @@
 
 typedef enum {
        TITLE_PROPERTY,
+       URI_PROPERTY,
        SUBJECT_PROPERTY,
        AUTHOR_PROPERTY,
        KEYWORDS_PROPERTY,
@@ -56,6 +57,7 @@ typedef struct {
 
 static const PropertyInfo properties_info[] = {
        { TITLE_PROPERTY,         N_("Title") },
+       { URI_PROPERTY,           N_("Location") },
        { SUBJECT_PROPERTY,       N_("Subject") },
        { AUTHOR_PROPERTY,        N_("Author") },
        { KEYWORDS_PROPERTY,      N_("Keywords") },
@@ -74,6 +76,7 @@ struct _EvPropertiesView {
        GtkVBox base_instance;
 
        GtkWidget *table;
+       gchar     *uri;
 };
 
 struct _EvPropertiesViewClass {
@@ -82,9 +85,25 @@ struct _EvPropertiesViewClass {
 
 G_DEFINE_TYPE (EvPropertiesView, ev_properties_view, GTK_TYPE_VBOX)
 
+static void
+ev_properties_view_dispose (GObject *object)
+{
+       EvPropertiesView *properties = EV_PROPERTIES_VIEW (object);
+       
+       if (properties->uri) {
+               g_free (properties->uri);
+               properties->uri = NULL;
+       }
+       
+       G_OBJECT_CLASS (ev_properties_view_parent_class)->dispose (object);
+}
+
 static void
 ev_properties_view_class_init (EvPropertiesViewClass *properties_class)
 {
+       GObjectClass *g_object_class = G_OBJECT_CLASS (properties_class);
+
+       g_object_class->dispose = ev_properties_view_dispose;
 }
 
 /* Returns a locale specific date and time representation */
@@ -304,10 +323,11 @@ ev_properties_view_set_info (EvPropertiesView *properties, const EvDocumentInfo
        gint       row = 0;
 
        table = properties->table;
-       
+
        if (info->fields_mask & EV_DOCUMENT_INFO_TITLE) {
                set_property (GTK_TABLE (table), TITLE_PROPERTY, info->title, &row);
        }
+       set_property (GTK_TABLE (table), URI_PROPERTY, properties->uri, &row);
        if (info->fields_mask & EV_DOCUMENT_INFO_SUBJECT) {
                set_property (GTK_TABLE (table), SUBJECT_PROPERTY, info->subject, &row);
        }
@@ -373,11 +393,12 @@ ev_properties_view_register_type (GTypeModule *module)
 }
 
 GtkWidget *
-ev_properties_view_new (void)
+ev_properties_view_new (const gchar *uri)
 {
        EvPropertiesView *properties;
 
        properties = g_object_new (EV_TYPE_PROPERTIES, NULL);
+       properties->uri = g_strdup (uri);
 
        return GTK_WIDGET (properties);
 }
index 41e6277caf7a397ab2c10ff1dedc781e85eef891..ec4dac7bfccc5a51178dae34925470e49d1f31b1 100644 (file)
@@ -40,7 +40,8 @@ typedef struct _EvPropertiesViewPrivate EvPropertiesViewPrivate;
 
 GType          ev_properties_view_get_type             (void);
 void           ev_properties_view_register_type        (GTypeModule *module);
-GtkWidget      *ev_properties_view_new                 (void);
+
+GtkWidget      *ev_properties_view_new                 (const gchar          *uri);
 void           ev_properties_view_set_info             (EvPropertiesView     *properties,
                                                         const EvDocumentInfo *info);
 
index 24bd3d6232929a5cea06ee496eb6a94eff635cec..f48b96778c79f52233df525c2ac522dde7f86a28 100644 (file)
@@ -77,6 +77,7 @@ ev_properties_dialog_init (EvPropertiesDialog *properties)
 
 void
 ev_properties_dialog_set_document (EvPropertiesDialog *properties,
+                                  const gchar        *uri,
                                   EvDocument         *document)
 {
        GtkWidget *label;
@@ -88,7 +89,7 @@ ev_properties_dialog_set_document (EvPropertiesDialog *properties,
 
        if (properties->general_page == NULL) {
                label = gtk_label_new (_("General"));
-               properties->general_page = ev_properties_view_new ();
+               properties->general_page = ev_properties_view_new (uri);
                gtk_notebook_append_page (GTK_NOTEBOOK (properties->notebook),
                                          properties->general_page, label);
                gtk_widget_show (properties->general_page);
index f85e53a56d8fec2ed59722137b88152cbe1d4209..6c14b204d055f00adfa2384fdc8b41c298c0b99d 100644 (file)
@@ -39,6 +39,7 @@ typedef struct _EvPropertiesDialogPrivate EvPropertiesDialogPrivate;
 GType           ev_properties_dialog_get_type     (void);
 GtkWidget      *ev_properties_dialog_new          (void);
 void            ev_properties_dialog_set_document (EvPropertiesDialog *properties,
+                                                   const gchar        *uri,
                                                    EvDocument         *document);
 
 G_END_DECLS
index c570de7f01cfcb417033fda19c28a0d4a008fed0..77474bff3ca63a00c5974eda6f0a5afb97519c21 100644 (file)
@@ -1205,6 +1205,7 @@ ev_window_setup_document (EvWindow *ev_window)
        
        if (ev_window->priv->properties) {
                ev_properties_dialog_set_document (EV_PROPERTIES_DIALOG (ev_window->priv->properties),
+                                                  ev_window->priv->uri,
                                                   ev_window->priv->document);
        }
        
@@ -2677,6 +2678,7 @@ ev_window_cmd_file_properties (GtkAction *action, EvWindow *ev_window)
        if (ev_window->priv->properties == NULL) {
                ev_window->priv->properties = ev_properties_dialog_new ();
                ev_properties_dialog_set_document (EV_PROPERTIES_DIALOG (ev_window->priv->properties),
+                                                  ev_window->priv->uri,
                                                   ev_window->priv->document);
                g_object_add_weak_pointer (G_OBJECT (ev_window->priv->properties),
                                           (gpointer) &(ev_window->priv->properties));