-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Package: nautilus Version: 2.14.3-11 Severity: wishlist
Description: Add full uri support like smb://, burn://, ftp:// etc... Fix memory leaks. Unescape uri. I hope that will be all right. Thanks ;) - -- Adrien DELLE CAVE Proformatique - 67 rue Voltaire - 92800 Puteaux Tel. : 01 41 38 99 60 - Fax. : 01 41 38 99 70 [EMAIL PROTECTED] - http://www.proformatique.com/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGKo6bIFidKwVyW+IRAhNgAJsEvA8fhAIC+XOOY5B6wK3WfWZy2wCggaaj xGw/msJ1PKmnN/X66nibSxY= =ovFZ -----END PGP SIGNATURE-----
Index: nautilus-2.14.3/libnautilus-private/apps_nautilus_preferences.schemas.in =================================================================== --- nautilus-2.14.3.orig/libnautilus-private/apps_nautilus_preferences.schemas.in 2006-01-11 23:40:26.000000000 +0100 +++ nautilus-2.14.3/libnautilus-private/apps_nautilus_preferences.schemas.in 2007-04-21 20:42:53.000000000 +0200 @@ -704,6 +704,21 @@ </locale> </schema> + <schema> + <key>/schemas/apps/nautilus/preferences/location_in_title_bar</key> + <applyto>/apps/nautilus/preferences/location_in_title_bar</applyto> + <owner>nautilus</owner> + <type>bool</type> + <default>false</default> + <locale name="C"> + <short>Show current location in title bar</short> + <long> + If set to true, windows will have the full location displayed + in their title bar. Otherwise it will only show the folder name. + </long> + </locale> + </schema> + <schema> <key>/schemas/apps/nautilus/preferences/start_with_sidebar</key> <applyto>/apps/nautilus/preferences/start_with_sidebar</applyto> Index: nautilus-2.14.3/libnautilus-private/nautilus-global-preferences.c =================================================================== --- nautilus-2.14.3.orig/libnautilus-private/nautilus-global-preferences.c 2006-03-18 08:13:49.000000000 +0100 +++ nautilus-2.14.3/libnautilus-private/nautilus-global-preferences.c 2007-04-21 20:42:53.000000000 +0200 @@ -376,6 +376,10 @@ PREFERENCE_BOOLEAN, GINT_TO_POINTER (TRUE) }, + { NAUTILUS_PREFERENCES_LOCATION_IN_TITLE_BAR, + PREFERENCE_BOOLEAN, + GINT_TO_POINTER (TRUE) + }, { NAUTILUS_PREFERENCES_START_WITH_SIDEBAR, PREFERENCE_BOOLEAN, GINT_TO_POINTER (TRUE) Index: nautilus-2.14.3/libnautilus-private/nautilus-global-preferences.h =================================================================== --- nautilus-2.14.3.orig/libnautilus-private/nautilus-global-preferences.h 2005-12-15 15:32:57.000000000 +0100 +++ nautilus-2.14.3/libnautilus-private/nautilus-global-preferences.h 2007-04-21 20:42:53.000000000 +0200 @@ -84,6 +84,7 @@ #define NAUTILUS_PREFERENCES_START_WITH_LOCATION_BAR "preferences/start_with_location_bar" #define NAUTILUS_PREFERENCES_ALWAYS_USE_LOCATION_ENTRY "preferences/always_use_location_entry" #define NAUTILUS_PREFERENCES_START_WITH_STATUS_BAR "preferences/start_with_status_bar" +#define NAUTILUS_PREFERENCES_LOCATION_IN_TITLE_BAR "preferences/location_in_title_bar" #define NAUTILUS_PREFERENCES_START_WITH_SIDEBAR "preferences/start_with_sidebar" #define NAUTILUS_PREFERENCES_START_WITH_TOOLBAR "preferences/start_with_toolbar" #define NAUTILUS_PREFERENCES_SIDE_PANE_VIEW "preferences/side_pane_view" Index: nautilus-2.14.3/src/nautilus-navigation-window.c =================================================================== --- nautilus-2.14.3.orig/src/nautilus-navigation-window.c 2006-03-18 08:13:50.000000000 +0100 +++ nautilus-2.14.3/src/nautilus-navigation-window.c 2007-04-21 20:53:23.000000000 +0200 @@ -813,20 +813,25 @@ static gboolean real_set_title (NautilusWindow *window, const char *title) { - char *full_title; - char *window_title; gboolean changed; changed = EEL_CALL_PARENT_WITH_RETURN_VALUE (NAUTILUS_WINDOW_CLASS, set_title, (window, title)); if (changed) { - full_title = g_strdup_printf (_("%s - File Browser"), title); + char *full_title; + char *window_title; + char *location_titlebar; + + location_titlebar = nautilus_window_set_location_in_titlebar (window, title); + + full_title = g_strdup_printf (_("%s - File Browser"), location_titlebar); window_title = eel_str_middle_truncate (full_title, MAX_TITLE_LENGTH); gtk_window_set_title (GTK_WINDOW (window), window_title); g_free (window_title); g_free (full_title); + g_free (location_titlebar); } return changed; Index: nautilus-2.14.3/src/nautilus-spatial-window.c =================================================================== --- nautilus-2.14.3.orig/src/nautilus-spatial-window.c 2006-04-14 13:57:23.000000000 +0200 +++ nautilus-2.14.3/src/nautilus-spatial-window.c 2007-04-21 20:52:36.000000000 +0200 @@ -406,10 +406,14 @@ gtk_window_set_title (GTK_WINDOW (window), _("Nautilus")); } else if (changed) { char *window_title; + char *location_titlebar; - window_title = eel_str_middle_truncate (title, MAX_TITLE_LENGTH); + location_titlebar = nautilus_window_set_location_in_titlebar (window, title); + + window_title = eel_str_middle_truncate (location_titlebar, MAX_TITLE_LENGTH); gtk_window_set_title (GTK_WINDOW (window), window_title); g_free (window_title); + g_free (location_titlebar); } return changed; Index: nautilus-2.14.3/src/nautilus-window.c =================================================================== --- nautilus-2.14.3.orig/src/nautilus-window.c 2006-03-20 19:40:38.000000000 +0100 +++ nautilus-2.14.3/src/nautilus-window.c 2007-04-21 21:17:49.000000000 +0200 @@ -1638,3 +1638,90 @@ { return (nautilus_window_get_window_type (window) != NAUTILUS_WINDOW_DESKTOP); } + +char * +nautilus_window_set_location_in_titlebar (NautilusWindow *window, const char *title) +{ + char *location_title; + char *uri = NULL; + char *location = NULL; + GnomeVFSURI *vfs_uri = NULL; + const char *path; + const char *scheme = NULL; + const char *display_location; + const char *tmp_location; + const char *location_prefix; + int tmp_location_len; + int tilde = 0; + + location_title = g_strdup (title); + + if (eel_preferences_get_boolean (NAUTILUS_PREFERENCES_LOCATION_IN_TITLE_BAR) != TRUE + || (uri = nautilus_window_get_location (window)) == NULL + || (location = gnome_vfs_format_uri_for_display (uri)) == NULL + || location[0] == 0 + || location[1] == 0) + goto done; + + if (location[0] != GNOME_VFS_URI_PATH_CHR) { + if ((vfs_uri = gnome_vfs_uri_new (location)) == NULL + || (path = gnome_vfs_uri_get_path (vfs_uri)) == NULL + || (scheme = gnome_vfs_uri_get_scheme (vfs_uri)) == NULL + || path[0] == 0 + || strcmp (path, GNOME_VFS_URI_PATH_STR) == 0) + goto done; + + g_free(uri); + + uri = gnome_vfs_unescape_string_for_display (path); + + display_location = uri; + goto construct_title; + } + + if ((tmp_location = g_get_home_dir()) == NULL) { + display_location = location; + goto construct_title; + } + + if (strcmp (location, tmp_location) == 0) { + tilde = 1; + display_location = ""; + goto construct_title; + } + + tmp_location_len = strlen (tmp_location); + if (eel_str_has_prefix (location, tmp_location) == FALSE + || location[tmp_location_len] != GNOME_VFS_URI_PATH_CHR) { + display_location = location; + goto construct_title; + } + + tilde = 1; + display_location = location + tmp_location_len; + + construct_title: + + g_free (location_title); + + if(scheme != NULL) + location_prefix = scheme; + else if(tilde == 1) + location_prefix = "~"; + else + location_prefix = ""; + + location_title = g_strdup_printf ("%s (%s%s%s)", title, location_prefix, scheme != NULL ? " - " : "", display_location); + + done: + if (uri != NULL) + g_free (uri); + + if (location != NULL) + g_free (location); + + if (vfs_uri != NULL) + gnome_vfs_uri_unref (vfs_uri); + + return (location_title); +} Index: nautilus-2.14.3/src/nautilus-window.h =================================================================== --- nautilus-2.14.3.orig/src/nautilus-window.h 2006-03-20 19:40:38.000000000 +0100 +++ nautilus-2.14.3/src/nautilus-window.h 2007-04-21 20:42:53.000000000 +0200 @@ -151,5 +151,7 @@ void nautilus_window_add_extra_location_widget (NautilusWindow *window, GtkWidget *widget); gboolean nautilus_window_has_menubar_and_statusbar (NautilusWindow *window); +char * nautilus_window_set_location_in_titlebar (NautilusWindow *window, + const char *title); #endif