[eog] EogPropertiesDialog: Use standard::display-name when showing the parent
- From: Felix Riemann <friemann src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [eog] EogPropertiesDialog: Use standard::display-name when showing the parent
- Date: Fri, 11 Sep 2015 19:01:15 +0000 (UTC)
commit 68a5a0d842d993da6957dee74535ee15c8742394
Author: Felix Riemann <friemann gnome org>
Date: Fri Sep 11 21:00:19 2015 +0200
EogPropertiesDialog: Use standard::display-name when showing the parent
This simply adapts the changes from commit fff55c6a to the
properties dialog, which shares some code with the EogMetadataSidebar.
https://bugzilla.gnome.org/show_bug.cgi?id=754731
src/eog-properties-dialog.c | 46 +++++++++++++++++++++++++++++++++++++-----
1 files changed, 40 insertions(+), 6 deletions(-)
---
diff --git a/src/eog-properties-dialog.c b/src/eog-properties-dialog.c
index 2e1c176..8aef73c 100644
--- a/src/eog-properties-dialog.c
+++ b/src/eog-properties-dialog.c
@@ -114,10 +114,37 @@ struct _EogPropertiesDialogPrivate {
G_DEFINE_TYPE_WITH_PRIVATE (EogPropertiesDialog, eog_properties_dialog, GTK_TYPE_DIALOG);
static void
+parent_file_display_name_query_info_cb (GObject *source_object,
+ GAsyncResult *res,
+ gpointer user_data)
+{
+ EogPropertiesDialog *prop_dlg = EOG_PROPERTIES_DIALOG (user_data);
+ GFile *parent_file = G_FILE (source_object);
+ GFileInfo *file_info;
+ gchar *display_name;
+
+
+ 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);
+ }
+ gtk_button_set_label (GTK_BUTTON (prop_dlg->priv->folder_button),
+ display_name);
+ gtk_widget_set_sensitive (prop_dlg->priv->folder_button, TRUE);
+
+ g_free (display_name);
+ g_object_unref (prop_dlg);
+}
+
+static void
pd_update_general_tab (EogPropertiesDialog *prop_dlg,
EogImage *image)
{
- gchar *bytes_str, *dir_str;
+ gchar *bytes_str;
gchar *width_str, *height_str;
GFile *file, *parent_file;
GFileInfo *file_info;
@@ -172,16 +199,23 @@ pd_update_general_tab (EogPropertiesDialog *prop_dlg,
/* file is root directory itself */
parent_file = g_object_ref (file);
}
- dir_str = g_file_get_basename (parent_file);
- gtk_button_set_label (GTK_BUTTON (prop_dlg->priv->folder_button),
- dir_str);
+
+ gtk_widget_set_sensitive (prop_dlg->priv->folder_button, FALSE);
+ gtk_button_set_label (GTK_BUTTON (prop_dlg->priv->folder_button), NULL);
g_free (prop_dlg->priv->folder_button_uri);
prop_dlg->priv->folder_button_uri = g_file_get_uri (parent_file);
- g_object_unref (parent_file);
+ 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 (prop_dlg));
+
+ g_object_unref (parent_file);
g_free (type_str);
g_free (bytes_str);
- g_free (dir_str);
}
#if HAVE_EXEMPI
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]