Public feed #379146

wwp

public text v1 · immutable
Raw Edit
·published 2007-03-03 00:21 UTC
rendered paste body
Index: src/poppler_viewer.c
===================================================================
RCS file: /pack/anoncvs/sylpheedclaws/plugins/pdf_viewer/src/Attic/poppler_viewer.c,v
retrieving revision 1.1.2.17
diff -u -b -p -r1.1.2.17 poppler_viewer.c
--- src/poppler_viewer.c	2007/03/02 23:58:55	1.1.2.17
+++ src/poppler_viewer.c	2007/03/03 00:21:19
@@ -97,6 +97,7 @@ struct _PopplerViewer
 	GtkTooltips	*button_bar_tips;
 	PopplerDocument	*pdf_doc;
 	PopplerPage	*pdf_page;
+	gchar		*target_filename;
 	gchar		*filename;
 	gchar		*fsname;
 	gchar		*doc_info_text;
@@ -235,10 +236,23 @@ static char * poppler_get_document_forma
 	return g_locale_to_utf8 (s, -1, NULL, NULL, NULL);
 }
 
+#define ADD_TO_TABLE(LABEL, VALUE) \
+    label = gtk_label_new(LABEL); \
+    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5); \
+	gtk_misc_set_padding(GTK_MISC(label), 4, 0); \
+    gtk_table_attach(viewer->table_doc_info, label, 0, 1, row, row+1, GTK_EXPAND | GTK_FILL, 0, 0, 0); \
+	\
+    label = gtk_label_new(VALUE); \
+    gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); \
+	gtk_misc_set_padding(GTK_MISC(label), 4, 0); \
+    gtk_table_attach(viewer->table_doc_info, label, 1, 2, row, row+1, GTK_EXPAND | GTK_FILL, 0, 0, 0); \
+	row++;
+
 static GtkTable * poppler_fill_info_table(PopplerViewer *viewer)
 {
     GtkWidget *label;
     gchar *title, *format, *author, *subject, *keywords, *creator, *producer, *linearized, *tmp;
+	gint row = 0;
     
     GTime creation_date, mod_date;
 
@@ -265,130 +279,29 @@ static GtkTable * poppler_fill_info_tabl
 	NULL);
 	
     viewer->table_doc_info = GTK_TABLE(gtk_table_new(12, 2, FALSE));
+
+	ADD_TO_TABLE(_("Filename:"), viewer->target_filename)
+	ADD_TO_TABLE(_("Size:"), to_human_readable(viewer->to_load->length))
 
-    label = gtk_label_new(_("Title:"));
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 0, 1, 0, 1, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
-    label = gtk_label_new(title);
-    gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
-    label = gtk_label_new(_("Subject:"));
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
-    label = gtk_label_new(subject);
-    gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
-    label = gtk_label_new(_("Author:"));
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
-    label = gtk_label_new(author);
-    gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
-    label = gtk_label_new(_("Keywords:"));
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 0, 1, 3, 4, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
-    label = gtk_label_new(keywords);
-    gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 1, 2, 3, 4, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-    
-    label = gtk_label_new(_("Creator:"));
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 0, 1, 4, 5, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
-    label = gtk_label_new(creator);
-    gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 1, 2, 4, 5, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
-    label = gtk_label_new(_("Producer:"));
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 0, 1, 5, 6, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
-    label = gtk_label_new(producer);
-    gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 1, 2, 5, 6, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
-    label = gtk_label_new(_("Created:"));
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 0, 1, 6, 7, GTK_EXPAND | GTK_FILL, 0, 0, 0);
+	ADD_TO_TABLE(_("Title:"), title)
+	ADD_TO_TABLE(_("Subject:"), subject)
+	ADD_TO_TABLE(_("Author:"), author)
+	ADD_TO_TABLE(_("Keywords:"), keywords)
+	ADD_TO_TABLE(_("Creator:"), creator)
+	ADD_TO_TABLE(_("Producer:"), producer)
     
     tmp = poppler_get_document_format_data(creation_date);
-    label = gtk_label_new(tmp);
+	ADD_TO_TABLE(_("Created:"), tmp)
     g_free(tmp);
-    gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 1, 2, 6, 7, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
-    label = gtk_label_new(_("Modified:"));
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 0, 1, 7, 8, GTK_EXPAND | GTK_FILL, 0, 0, 0);
     
     tmp = poppler_get_document_format_data(mod_date);
-    label = gtk_label_new(tmp);
+	ADD_TO_TABLE(_("Modified:"), tmp)
     g_free(tmp);
-    gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 1, 2, 7, 8, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
-    label = gtk_label_new(_("Format:"));
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 0, 1, 8, 9, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
-    label = gtk_label_new(format);
-    gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 1, 2, 8, 9, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
-    label = gtk_label_new(_("Optimized:"));
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 0, 1, 9, 10, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
-    label = gtk_label_new(linearized);
-    gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 1, 2, 9, 10, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
-    label = gtk_label_new(_("Page Mode:"));
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 0, 1, 10, 11, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
-    label = gtk_label_new(poppler_get_document_info_mode(mode));
-    gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 1, 2, 10, 11, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
-    label = gtk_label_new(_("Page Layout:"));
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 0, 1, 11, 12, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
-    label = gtk_label_new(poppler_get_document_info_layout(layout));
-    gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-	gtk_misc_set_padding(GTK_MISC(label), 4, 0);
-    gtk_table_attach(viewer->table_doc_info, label, 1, 2, 11, 12, GTK_EXPAND | GTK_FILL, 0, 0, 0);
+
+	ADD_TO_TABLE(_("Format:"), format)
+	ADD_TO_TABLE(_("Optimized:"), linearized)
+	ADD_TO_TABLE(_("Page Mode:"), poppler_get_document_info_mode(mode))
+	ADD_TO_TABLE(_("Page Layout:"), poppler_get_document_info_layout(layout))
 
 	g_free(title);
 	g_free(format);
@@ -676,6 +589,7 @@ static gint poppler_show_mimepart_real(M
 	viewer->mimeinfo = NULL;
 	
 	if (partinfo) {
+		viewer->target_filename = procmime_get_part_file_name(partinfo);
 	    viewer->filename = procmime_get_tmp_file_name(partinfo);
 	    viewer->fsname = g_strconcat("file://", viewer->filename, NULL);
 	}
@@ -1068,7 +982,9 @@ static MimeViewer *poppler_viewer_create
 			G_CALLBACK(poppler_button_document_info_cb), 
 			(gpointer) viewer);	
 
+	viewer->target_filename = NULL;
 	viewer->filename = NULL;
+	viewer->fsname = NULL;
 	return (MimeViewer *) viewer;
 }