Package: nautilus Version: 2.6.30.1-3 Severity: normal Tags: patch Hello ! I used the "Location in titlebar" feature of Nautilus in previous versions of debian. Since I upgraded to Squeeze and nautilus 2.30, some monthes ago, it is no more functional : into the related source-code package of Nautilus, the file "10_location_titlebar.patch" in the subdirectory "debian/patches/" seems unmaintained and is just not applied. The joined patch works if applied against the 2.6.30.1-3 sources. Could you take a look at it and reintegrate it please ? ( I tried to send this patch by reportbug yesterday but the program stopped without any confirmation - Have I misconfigured it ? -, and I receive no return message. Sorry If this message came twice to the website.) I use Debian Squeeze / gnome 2.30.
diff -ur nautilus-2.30.1/libnautilus-private/apps_nautilus_preferences.schemas.in nautilus-2.30.1-3.new/libnautilus-private/apps_nautilus_preferences.schemas.in --- nautilus-2.30.1/libnautilus-private/apps_nautilus_preferences.schemas.in 2011-04-29 18:22:49.443597874 +0200 +++ nautilus-2.30.1-3.new/libnautilus-private/apps_nautilus_preferences.schemas.in 2011-04-27 22:08:47.819973451 +0200 @@ -979,6 +979,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> diff -ur nautilus-2.30.1/libnautilus-private/nautilus-global-preferences.c nautilus-2.30.1-3.new/libnautilus-private/nautilus-global-preferences.c --- nautilus-2.30.1/libnautilus-private/nautilus-global-preferences.c 2011-04-29 18:22:49.446930955 +0200 +++ nautilus-2.30.1-3.new/libnautilus-private/nautilus-global-preferences.c 2011-04-27 22:08:47.819973451 +0200 @@ -369,6 +369,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) diff -ur nautilus-2.30.1/libnautilus-private/nautilus-global-preferences.h nautilus-2.30.1-3.new/libnautilus-private/nautilus-global-preferences.h --- nautilus-2.30.1/libnautilus-private/nautilus-global-preferences.h 2011-04-29 18:22:49.443597874 +0200 +++ nautilus-2.30.1-3.new/libnautilus-private/nautilus-global-preferences.h 2011-04-27 22:08:47.823307212 +0200 @@ -112,6 +112,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" diff -ur nautilus-2.30.1/src/nautilus-navigation-window.c nautilus-2.30.1-3.new/src/nautilus-navigation-window.c --- nautilus-2.30.1/src/nautilus-navigation-window.c 2011-04-29 18:22:49.270261733 +0200 +++ nautilus-2.30.1-3.new/src/nautilus-navigation-window.c 2011-04-27 22:48:42.653896502 +0200 @@ -718,7 +718,7 @@ NautilusNavigationWindow *navigation_window; NautilusNavigationWindowPane *pane; NautilusNotebook *notebook; - char *full_title; + char *emplacement; char *window_title; navigation_window = NAUTILUS_NAVIGATION_WINDOW (window); @@ -727,12 +727,12 @@ sync_title, (window, slot)); if (slot == window->details->active_pane->active_slot) { - full_title = g_strdup_printf (_("%s - File Browser"), slot->title); + emplacement = nautilus_window_set_location_in_titlebar (window, slot); - window_title = eel_str_middle_truncate (full_title, MAX_TITLE_LENGTH); + window_title = eel_str_middle_truncate (emplacement, MAX_TITLE_LENGTH); + g_free (emplacement); gtk_window_set_title (GTK_WINDOW (window), window_title); g_free (window_title); - g_free (full_title); } pane = NAUTILUS_NAVIGATION_WINDOW_PANE (slot->pane); diff -ur nautilus-2.30.1/src/nautilus-spatial-window.c nautilus-2.30.1-3.new/src/nautilus-spatial-window.c --- nautilus-2.30.1/src/nautilus-spatial-window.c 2011-04-29 18:22:49.270261733 +0200 +++ nautilus-2.30.1-3.new/src/nautilus-spatial-window.c 2011-04-29 18:24:12.570255617 +0200 @@ -395,10 +395,13 @@ gtk_window_set_title (GTK_WINDOW (window), _("Nautilus")); } else { char *window_title; + char *location_titlebar; - window_title = eel_str_middle_truncate (slot->title, MAX_TITLE_LENGTH); - gtk_window_set_title (GTK_WINDOW (window), window_title); - g_free (window_title); + location_titlebar = nautilus_window_set_location_in_titlebar (window, slot); + window_title = eel_str_middle_truncate (location_titlebar, MAX_TITLE_LENGTH); + g_free (location_titlebar); + gtk_window_set_title (GTK_WINDOW (window), window_title); + g_free (window_title); } } diff -ur nautilus-2.30.1/src/nautilus-window.c nautilus-2.30.1-3.new//src/nautilus-window.c --- nautilus-2.30.1/src/nautilus-window.c 2011-04-29 18:22:49.263601212 +0200 +++ nautilus-2.30.1-3.new//src/nautilus-window.c 2011-04-27 23:11:55.832924074 +0200 @@ -2061,3 +2061,66 @@ { return (nautilus_window_get_window_type (window) != NAUTILUS_WINDOW_DESKTOP); } + +char * +nautilus_window_set_location_in_titlebar (NautilusWindow *window, const NautilusWindowSlot *slot) +{ + char *location_title = nautilus_window_slot_get_title(slot); + char *location = g_file_get_parse_name (slot->location); + + 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; + + if (eel_preferences_get_boolean (NAUTILUS_PREFERENCES_LOCATION_IN_TITLE_BAR) != TRUE + || slot->location == NULL + || location == NULL + || location[0] == 0 + || location[1] == 0) + return( location_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] != G_DIR_SEPARATOR) { + 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)", slot->title, location_prefix, scheme != NULL ? " - " : "", display_location); + + done: + if (location != NULL) + g_free (location); + + return (location_title); +} + diff -ur nautilus-2.30.1/src/nautilus-window.h nautilus-2.30.1-3.new//src/nautilus-window.h --- nautilus-2.30.1/src/nautilus-window.h 2011-04-29 18:22:49.270261733 +0200 +++ nautilus-2.30.1-3.new//src/nautilus-window.h 2011-04-27 22:28:34.817353624 +0200 @@ -158,5 +158,7 @@ gboolean allow); GtkUIManager * nautilus_window_get_ui_manager (NautilusWindow *window); gboolean nautilus_window_has_menubar_and_statusbar (NautilusWindow *window); +char * nautilus_window_set_location_in_titlebar (NautilusWindow *window, + const NautilusWindowSlot *slot); #endif