+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:
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);
typedef enum {
TITLE_PROPERTY,
+ URI_PROPERTY,
SUBJECT_PROPERTY,
AUTHOR_PROPERTY,
KEYWORDS_PROPERTY,
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") },
GtkVBox base_instance;
GtkWidget *table;
+ gchar *uri;
};
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 */
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);
}
}
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);
}
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);
void
ev_properties_dialog_set_document (EvPropertiesDialog *properties,
+ const gchar *uri,
EvDocument *document)
{
GtkWidget *label;
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);
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
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);
}
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));