From 016afdc4eb01cd8775850cb6852bd590a9ef77c8 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Tue, 8 May 2007 23:41:55 +0100 Subject: Split file name and full path in search and recent files mode Split the display name of the search hits and of the recently used file from its path and make it bold. Signed-off-by: Emmanuele Bassi --- gtk/gtkfilechooserdefault.c | 48 ++++++++++++++++++++++++++++++++---------- 1 files changed, 36 insertions(+), 12 deletions(-) diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c index de6282e..b8ecd21 100644 --- a/gtk/gtkfilechooserdefault.c +++ b/gtk/gtkfilechooserdefault.c @@ -8529,6 +8529,7 @@ search_hit_get_info_cb (GtkFileSystemHandle *handle, GtkFileSystemHandle *model_handle; gboolean is_folder = FALSE; char *mime_type; + char *display_name; struct SearchHitInsertRequest *request = data; path = gtk_tree_row_reference_get_path (request->row_ref); @@ -8559,6 +8560,7 @@ search_hit_get_info_cb (GtkFileSystemHandle *handle, goto out; } + display_name = g_strdup (gtk_file_info_get_display_name (info)); mime_type = g_strdup (gtk_file_info_get_mime_type (info)); is_folder = gtk_file_info_get_is_folder (info); pixbuf = gtk_file_info_render_icon (info, GTK_WIDGET (request->impl), @@ -8566,6 +8568,7 @@ search_hit_get_info_cb (GtkFileSystemHandle *handle, gtk_list_store_set (request->impl->search_model, &iter, SEARCH_MODEL_COL_PIXBUF, pixbuf, + SEARCH_MODEL_COL_DISPLAY_NAME, display_name, SEARCH_MODEL_COL_MIME_TYPE, mime_type, SEARCH_MODEL_COL_IS_FOLDER, is_folder, -1); @@ -8589,7 +8592,7 @@ search_add_hit (GtkFileChooserDefault *impl, { GtkFilePath *path; char *filename; - char *display_name; + char *tmp; char *collation_key; struct stat statbuf; struct stat *statbuf_copy; @@ -8619,8 +8622,9 @@ search_add_hit (GtkFileChooserDefault *impl, statbuf_copy = g_new (struct stat, 1); *statbuf_copy = statbuf; - display_name = g_filename_display_name (filename); - collation_key = g_utf8_collate_key_for_filename (display_name, -1); + tmp = g_filename_display_name (filename); + collation_key = g_utf8_collate_key_for_filename (tmp, -1); + g_free (tmp); request = g_new0 (struct SearchHitInsertRequest, 1); request->impl = g_object_ref (impl); @@ -8633,13 +8637,12 @@ search_add_hit (GtkFileChooserDefault *impl, gtk_tree_path_free (p); handle = gtk_file_system_get_info (impl->file_system, path, - GTK_FILE_INFO_IS_FOLDER | GTK_FILE_INFO_ICON | GTK_FILE_INFO_MIME_TYPE, + GTK_FILE_INFO_IS_FOLDER | GTK_FILE_INFO_ICON | GTK_FILE_INFO_MIME_TYPE | GTK_FILE_INFO_DISPLAY_NAME, search_hit_get_info_cb, request); gtk_list_store_set (impl->search_model, &iter, SEARCH_MODEL_COL_PATH, path, - SEARCH_MODEL_COL_DISPLAY_NAME, display_name, SEARCH_MODEL_COL_COLLATION_KEY, collation_key, SEARCH_MODEL_COL_STAT, statbuf_copy, SEARCH_MODEL_COL_HANDLE, handle, @@ -10173,31 +10176,52 @@ list_name_data_func (GtkTreeViewColumn *tree_column, if (impl->operation_mode == OPERATION_MODE_SEARCH) { - char *display_name; + GtkFilePath *file_path; + gchar *display_name, *tmp; + gchar *text; gtk_tree_model_get (GTK_TREE_MODEL (impl->search_model), iter, - SEARCH_MODEL_COL_DISPLAY_NAME, &display_name, + SEARCH_MODEL_COL_PATH, &file_path, + SEARCH_MODEL_COL_DISPLAY_NAME, &display_name, -1); + + tmp = gtk_file_system_path_to_filename (impl->file_system, file_path); + text = g_strdup_printf ("%s\n%s", display_name, tmp); + g_free (tmp); + g_object_set (cell, - "text", display_name, + "markup", text, "sensitive", TRUE, - "ellipsize", PANGO_ELLIPSIZE_START, + "ellipsize", PANGO_ELLIPSIZE_END, NULL); + + g_free (text); + return; } if (impl->operation_mode == OPERATION_MODE_RECENT) { - char *display_name; + GtkRecentInfo *recent_info; + char *tmp, *text; gtk_tree_model_get (GTK_TREE_MODEL (impl->recent_model), iter, - RECENT_MODEL_COL_DISPLAY_NAME, &display_name, + RECENT_MODEL_COL_INFO, &recent_info, -1); + + tmp = gtk_recent_info_get_short_name (recent_info); + text = g_strdup_printf ("%s\n%s", + tmp, + gtk_recent_info_get_uri_display (recent_info)); + g_free (tmp); + g_object_set (cell, - "text", display_name, + "markup", text, "sensitive", TRUE, "ellipsize", PANGO_ELLIPSIZE_END, NULL); + g_free (text); + return; } -- 1.4.4.2