summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDebarshi Ray <debarshir@gnome.org>2015-09-08 18:18:00 +0200
committerFelix Riemann <friemann@gnome.org>2015-09-11 19:46:00 +0200
commitfff55c6afdd1c159c1ec554316fa6170f561cbe1 (patch)
tree0bc1b795885e56f01c3c84ba8888d223388fd386
parent3175cec316804c86db3f1c27f788140771ba7a73 (diff)
downloadeog-fff55c6afdd1c159c1ec554316fa6170f561cbe1.tar.gz
EogMetadataSidebar: Use standard::display-name when showing the parent
https://bugzilla.gnome.org/show_bug.cgi?id=754731
-rw-r--r--src/eog-metadata-sidebar.c50
1 files changed, 40 insertions, 10 deletions
diff --git a/src/eog-metadata-sidebar.c b/src/eog-metadata-sidebar.c
index 54023807..714d6a6e 100644
--- a/src/eog-metadata-sidebar.c
+++ b/src/eog-metadata-sidebar.c
@@ -90,13 +90,44 @@ struct _EogMetadataSidebarPrivate {
G_DEFINE_TYPE_WITH_PRIVATE(EogMetadataSidebar, eog_metadata_sidebar, GTK_TYPE_SCROLLED_WINDOW)
static void
+parent_file_display_name_query_info_cb (GObject *source_object,
+ GAsyncResult *res,
+ gpointer user_data)
+{
+ EogMetadataSidebar *sidebar = EOG_METADATA_SIDEBAR (user_data);
+ GFile *parent_file = G_FILE (source_object);
+ GFileInfo *file_info;
+ gchar *baseuri;
+ gchar *display_name;
+ gchar *str;
+
+ file_info = g_file_query_info_finish (parent_file, res, NULL);
+ if (file_info == NULL) {
+ display_name = g_file_get_basename (parent_file);
+ } else {
+ display_name = g_strdup (
+ g_file_info_get_display_name (file_info));
+ g_object_unref (file_info);
+ }
+ baseuri = g_file_get_uri (parent_file);
+ str = g_markup_printf_escaped ("<a href=\"%s\">%s</a>",
+ baseuri,
+ display_name);
+ gtk_label_set_markup (GTK_LABEL (sidebar->priv->folder_label), str);
+
+ g_free (str);
+ g_free (baseuri);
+ g_free (display_name);
+ g_object_unref (sidebar);
+}
+
+static void
eog_metadata_sidebar_update_general_section (EogMetadataSidebar *sidebar)
{
EogMetadataSidebarPrivate *priv = sidebar->priv;
EogImage *img = priv->image;
GFile *file, *parent_file;
GFileInfo *file_info;
- gchar *basename, *baseuri;
gchar *str;
goffset bytes;
gint width, height;
@@ -142,15 +173,14 @@ eog_metadata_sidebar_update_general_section (EogMetadataSidebar *sidebar)
/* file is root directory itself */
parent_file = g_object_ref (file);
}
- basename = g_file_get_basename (parent_file);
- baseuri = g_file_get_uri (parent_file);
- str = g_markup_printf_escaped ("<a href=\"%s\">%s</a>",
- baseuri,
- basename);
- gtk_label_set_markup (GTK_LABEL (priv->folder_label), str);
- g_free (str);
- g_free (baseuri);
- g_free (basename);
+ gtk_label_set_markup (GTK_LABEL (sidebar->priv->folder_label), NULL);
+ g_file_query_info_async (parent_file,
+ G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME,
+ G_FILE_QUERY_INFO_NONE,
+ G_PRIORITY_DEFAULT,
+ NULL,
+ parent_file_display_name_query_info_cb,
+ g_object_ref (sidebar));
g_object_unref (parent_file);
}