[evolution/kill-bonobo] Bug 572543 – Doesn't show correct application for pdf attachments



commit a8b5c89d61f4816d46e6b0da2853aea93e569d68
Author: Matthew Barnes <mbarnes redhat com>
Date:   Wed Jun 3 11:55:52 2009 -0400

    Bug 572543 â?? Doesn't show correct application for pdf attachments
    
    This fix got dropped in the attachment rewrite.  Also, ignore the
    application's NoDisplay setting when building the "open with" menu.
    That's mainly so "Document Viewer" shows up in the list.
---
 widgets/misc/e-attachment-view.c |    3 ---
 widgets/misc/e-attachment.c      |   12 +++++++++---
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/widgets/misc/e-attachment-view.c b/widgets/misc/e-attachment-view.c
index 41e0b30..3455102 100644
--- a/widgets/misc/e-attachment-view.c
+++ b/widgets/misc/e-attachment-view.c
@@ -635,9 +635,6 @@ attachment_view_update_actions (EAttachmentView *view)
 		gchar *action_label;
 		gchar *action_name;
 
-		if (!g_app_info_should_show (app_info))
-			continue;
-
 		app_executable = g_app_info_get_executable (app_info);
 		app_icon = g_app_info_get_icon (app_info);
 		app_name = g_app_info_get_name (app_info);
diff --git a/widgets/misc/e-attachment.c b/widgets/misc/e-attachment.c
index e9df602..e7a0395 100644
--- a/widgets/misc/e-attachment.c
+++ b/widgets/misc/e-attachment.c
@@ -1320,9 +1320,11 @@ GList *
 e_attachment_list_apps (EAttachment *attachment)
 {
 	GList *app_info_list;
+	GList *guessed_infos;
 	GFileInfo *file_info;
 	const gchar *content_type;
 	const gchar *display_name;
+	gboolean type_is_unknown;
 	gchar *allocated;
 
 	g_return_val_if_fail (E_IS_ATTACHMENT (attachment), NULL);
@@ -1336,18 +1338,22 @@ e_attachment_list_apps (EAttachment *attachment)
 	g_return_val_if_fail (content_type != NULL, NULL);
 
 	app_info_list = g_app_info_get_all_for_type (content_type);
+	type_is_unknown = g_content_type_is_unknown (content_type);
 
-	if (app_info_list != NULL || display_name == NULL)
+	if (app_info_list != NULL && !type_is_unknown)
 		goto exit;
 
-	if (!g_content_type_is_unknown (content_type))
+	if (display_name == NULL)
 		goto exit;
 
 	allocated = g_content_type_guess (display_name, NULL, 0, NULL);
-	app_info_list = g_app_info_get_all_for_type (allocated);
+	guessed_infos = g_app_info_get_all_for_type (allocated);
+	app_info_list = g_list_concat (guessed_infos, app_info_list);
 	g_free (allocated);
 
 exit:
+	g_debug ("App List Length: %d", g_list_length (app_info_list));
+
 	return app_info_list;
 }
 



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