[Xfce4-commits] <thunar:master> Improve display name creation (bug #8388).
Nick Schermer
noreply at xfce.org
Thu Sep 27 22:20:01 CEST 2012
Updating branch refs/heads/master
to 99fff9f6aaa3b64547eaf5f2244da310c8ad51bb (commit)
from 5f04c77f57bea3786b45b4a0f92430577111adba (commit)
commit 99fff9f6aaa3b64547eaf5f2244da310c8ad51bb
Author: Nick Schermer <nick at xfce.org>
Date: Thu Sep 27 22:10:07 2012 +0200
Improve display name creation (bug #8388).
Better base name creation if the GFileInfo has no name.
thunar/thunar-file.c | 38 ++++++++++++++++++++++++--------------
1 files changed, 24 insertions(+), 14 deletions(-)
diff --git a/thunar/thunar-file.c b/thunar/thunar-file.c
index 13fa21b..ae1598b 100644
--- a/thunar/thunar-file.c
+++ b/thunar/thunar-file.c
@@ -707,6 +707,7 @@ thunar_file_load (ThunarFile *file,
gchar *p;
gchar *thumbnail_dir_path;
gchar *uri = NULL;
+ const gchar *display_name;
_thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE);
_thunar_return_val_if_fail (error == NULL || *error == NULL, FALSE);
@@ -860,28 +861,37 @@ thunar_file_load (ThunarFile *file,
/* determine the display name */
if (file->display_name == NULL)
{
- if (file->info != NULL)
+ if (G_LIKELY (file->info != NULL))
{
- if (g_strcmp0 (g_file_info_get_display_name (file->info), "/") == 0)
- file->display_name = g_strdup (_("File System"));
- else
- file->display_name = g_strdup (g_file_info_get_display_name (file->info));
+ display_name = g_file_info_get_display_name (file->info);
+ if (G_LIKELY (display_name != NULL))
+ {
+ if (strcmp (display_name, "/") == 0)
+ file->display_name = g_strdup (_("File System"));
+ else
+ file->display_name = g_strdup (display_name);
+ }
}
- else
+
+ if (file->display_name == NULL)
{
- if (g_file_is_native (file->gfile))
+ base_name = g_file_get_basename (file->gfile);
+ if (G_LIKELY (base_name != NULL))
{
- uri = g_file_get_path (file->gfile);
- if (uri == NULL)
- uri = thunar_file_dup_uri (file);
+ if (g_utf8_validate (base_name, -1, NULL))
+ {
+ file->display_name = base_name;
+ }
+ else
+ {
+ file->display_name = g_uri_escape_string (base_name, G_URI_RESERVED_CHARS_ALLOWED_IN_PATH, TRUE);
+ g_free (base_name);
+ }
}
else
{
- uri = thunar_file_dup_uri (file);
+ file->display_name = g_strdup ("?");
}
-
- file->display_name = g_filename_display_name (uri);
- g_free (uri);
}
}
More information about the Xfce4-commits
mailing list