summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorA. Walton <awalton@gnome.org>2008-04-27 01:04:59 +0000
committerAndrew Walton <awalton@src.gnome.org>2008-04-27 01:04:59 +0000
commitf78a979958cd2e27388e71dafe80ccc5570ff432 (patch)
treea5bddfb03f25ae7a00973f1309e2ee4e8dbdcf79
parenta6f7e3a2635deeda332e1759440d8398bea0dae3 (diff)
downloadnautilus-f78a979958cd2e27388e71dafe80ccc5570ff432.tar.gz
reviewed by: Christian Neumair
2008-04-26 A. Walton <awalton@gnome.org> reviewed by: Christian Neumair * libnautilus-private/nautilus-file-private.h: * libnautilus-private/nautilus-file-utilities.c (nautilus_compute_title_for_location): * libnautilus-private/nautilus-file.c (update_info_internal), (nautilus_file_get_description): * libnautilus-private/nautilus-file.h: Use standard::description in the window title when it's available. Closes bug #516007. svn path=/trunk/; revision=14094
-rw-r--r--ChangeLog13
-rw-r--r--libnautilus-private/nautilus-file-private.h5
-rw-r--r--libnautilus-private/nautilus-file-utilities.c5
-rw-r--r--libnautilus-private/nautilus-file.c24
-rw-r--r--libnautilus-private/nautilus-file.h1
5 files changed, 45 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 243688252..c4bd15a12 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2008-04-26 A. Walton <awalton@gnome.org>
+
+ reviewed by: Christian Neumair
+
+ * libnautilus-private/nautilus-file-private.h:
+ * libnautilus-private/nautilus-file-utilities.c
+ (nautilus_compute_title_for_location):
+ * libnautilus-private/nautilus-file.c (update_info_internal),
+ (nautilus_file_get_description):
+ * libnautilus-private/nautilus-file.h:
+ Use standard::description in the window title when it's available.
+ Closes bug #516007.
+
2008-04-27 Christian Neumair <cneumair@gnome.org>
* libnautilus-private/nautilus-icon-container.c
diff --git a/libnautilus-private/nautilus-file-private.h b/libnautilus-private/nautilus-file-private.h
index 8420a7ef5..fca415625 100644
--- a/libnautilus-private/nautilus-file-private.h
+++ b/libnautilus-private/nautilus-file-private.h
@@ -46,7 +46,7 @@
GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS)
#define NAUTILUS_FILE_DEFAULT_ATTRIBUTES \
- "standard::*,access::*,mountable::*,time::*,unix::*,owner::*,selinux::*,thumbnail::*,mountable::*"
+ "standard::*,access::*,mountable::*,time::*,unix::*,owner::*,selinux::*,thumbnail::*"
/* These are in the typical sort order. Known things come first, then
* things where we can't know, finally things where we don't yet know.
@@ -90,7 +90,8 @@ struct NautilusFileDetails
eel_ref_str mime_type;
- char* selinux_context;
+ char *selinux_context;
+ char *description;
GError *get_info_error;
diff --git a/libnautilus-private/nautilus-file-utilities.c b/libnautilus-private/nautilus-file-utilities.c
index ad301c9aa..ea2899977 100644
--- a/libnautilus-private/nautilus-file-utilities.c
+++ b/libnautilus-private/nautilus-file-utilities.c
@@ -66,7 +66,10 @@ nautilus_compute_title_for_location (GFile *location)
title = NULL;
if (location) {
file = nautilus_file_get (location);
- title = nautilus_file_get_display_name (file);
+ title = nautilus_file_get_description (file);
+ if (title == NULL) {
+ title = nautilus_file_get_display_name (file);
+ }
nautilus_file_unref (file);
}
diff --git a/libnautilus-private/nautilus-file.c b/libnautilus-private/nautilus-file.c
index 7ac250593..25d954d16 100644
--- a/libnautilus-private/nautilus-file.c
+++ b/libnautilus-private/nautilus-file.c
@@ -1552,6 +1552,7 @@ update_info_internal (NautilusFile *file,
GIcon *icon;
GFile *old_activation_location;
const char *activation_uri;
+ const char *description;
if (file->details->is_gone) {
return FALSE;
@@ -1806,6 +1807,13 @@ update_info_internal (NautilusFile *file,
file->details->selinux_context = g_strdup (selinux_context);
}
+ description = g_file_info_get_attribute_string (info, G_FILE_ATTRIBUTE_STANDARD_DESCRIPTION);
+ if (eel_strcmp (file->details->description, description) != 0) {
+ changed = TRUE;
+ g_free (file->details->description);
+ file->details->description = g_strdup (description);
+ }
+
if (update_name) {
name = g_file_info_get_name (info);
if (file->details->name == NULL ||
@@ -3008,6 +3016,22 @@ nautilus_file_get_name (NautilusFile *file)
{
return g_strdup (eel_ref_str_peek (file->details->name));
}
+
+/**
+ * nautilus_file_get_description:
+ * @file: a #NautilusFile.
+ *
+ * Gets the standard::description key from @file, if
+ * it has been cached.
+ *
+ * Returns: a string containing the value of the standard::description
+ * key, or %NULL.
+ */
+char *
+nautilus_file_get_description (NautilusFile *file)
+{
+ return g_strdup (file->details->description);
+}
void
nautilus_file_monitor_add (NautilusFile *file,
diff --git a/libnautilus-private/nautilus-file.h b/libnautilus-private/nautilus-file.h
index 99e0aeb98..dbb9225af 100644
--- a/libnautilus-private/nautilus-file.h
+++ b/libnautilus-private/nautilus-file.h
@@ -155,6 +155,7 @@ char * nautilus_file_get_display_name (Nautilu
char * nautilus_file_get_edit_name (NautilusFile *file);
char * nautilus_file_get_name (NautilusFile *file);
GFile * nautilus_file_get_location (NautilusFile *file);
+char * nautilus_file_get_description (NautilusFile *file);
char * nautilus_file_get_uri (NautilusFile *file);
char * nautilus_file_get_uri_scheme (NautilusFile *file);
NautilusFile * nautilus_file_get_parent (NautilusFile *file);