evince r3290 - in trunk: . properties shell



Author: carlosgc
Date: Wed Dec  3 15:45:10 2008
New Revision: 3290
URL: http://svn.gnome.org/viewvc/evince?rev=3290&view=rev

Log:
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.

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

Modified: trunk/properties/ev-properties-main.c
==============================================================================
--- trunk/properties/ev-properties-main.c	(original)
+++ trunk/properties/ev-properties-main.c	Wed Dec  3 15:45:10 2008
@@ -112,7 +112,7 @@
 		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);

Modified: trunk/properties/ev-properties-view.c
==============================================================================
--- trunk/properties/ev-properties-view.c	(original)
+++ trunk/properties/ev-properties-view.c	Wed Dec  3 15:45:10 2008
@@ -35,6 +35,7 @@
 
 typedef enum {
 	TITLE_PROPERTY,
+	URI_PROPERTY,
 	SUBJECT_PROPERTY,
 	AUTHOR_PROPERTY,
 	KEYWORDS_PROPERTY,
@@ -56,6 +57,7 @@
 
 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 @@
 	GtkVBox base_instance;
 
 	GtkWidget *table;
+	gchar     *uri;
 };
 
 struct _EvPropertiesViewClass {
@@ -83,8 +86,24 @@
 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 @@
 	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 @@
 }
 
 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);
 }

Modified: trunk/properties/ev-properties-view.h
==============================================================================
--- trunk/properties/ev-properties-view.h	(original)
+++ trunk/properties/ev-properties-view.h	Wed Dec  3 15:45:10 2008
@@ -40,7 +40,8 @@
 
 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);
 

Modified: trunk/shell/ev-properties-dialog.c
==============================================================================
--- trunk/shell/ev-properties-dialog.c	(original)
+++ trunk/shell/ev-properties-dialog.c	Wed Dec  3 15:45:10 2008
@@ -77,6 +77,7 @@
 
 void
 ev_properties_dialog_set_document (EvPropertiesDialog *properties,
+				   const gchar        *uri,
 			           EvDocument         *document)
 {
 	GtkWidget *label;
@@ -88,7 +89,7 @@
 
 	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);

Modified: trunk/shell/ev-properties-dialog.h
==============================================================================
--- trunk/shell/ev-properties-dialog.h	(original)
+++ trunk/shell/ev-properties-dialog.h	Wed Dec  3 15:45:10 2008
@@ -39,6 +39,7 @@
 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

Modified: trunk/shell/ev-window.c
==============================================================================
--- trunk/shell/ev-window.c	(original)
+++ trunk/shell/ev-window.c	Wed Dec  3 15:45:10 2008
@@ -1205,6 +1205,7 @@
 	
 	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 @@
 	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));



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]