From 44143a4d57c91a8df5efbc8bb6da98b8b92179849da5678ac81ccb742d474c21 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Tue, 9 Jan 2007 17:41:02 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/nautilus?expand=0&rev=1 --- .gitattributes | 23 + .gitignore | 1 + ...-146947-rename-bad-parameters-message.diff | 22 + ...s-158158-ignore-foreign-desktop-files.diff | 185 ++ nautilus-2.16.1.tar.bz2 | 3 + nautilus-206369-desktop-icon-overlap.diff | 180 ++ nautilus-212649-search-bar-visibility.patch | 74 + ...014-network-servers-in-places-sidebar.diff | 23 + nautilus-config-defaults.patch | 30 + nautilus-debug-log.diff | 1592 +++++++++++++++++ nautilus-default-thumbnail-size.diff | 17 + ...zoom-control-and-view-as-option-menu.patch | 59 + nautilus-docpath.patch | 21 + nautilus-drives-and-volumes-on-desktop.diff | 1226 +++++++++++++ nautilus-icon.patch | 51 + nautilus-mime.patch | 10 + nautilus-name-length.patch | 360 ++++ nautilus-onlyshowin.patch | 25 + nautilus-search-desktop.patch | 146 ++ nautilus.changes | 1160 ++++++++++++ nautilus.spec | 807 +++++++++ ready | 0 22 files changed, 6015 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 nautilus-146947-rename-bad-parameters-message.diff create mode 100644 nautilus-158158-ignore-foreign-desktop-files.diff create mode 100644 nautilus-2.16.1.tar.bz2 create mode 100644 nautilus-206369-desktop-icon-overlap.diff create mode 100644 nautilus-212649-search-bar-visibility.patch create mode 100644 nautilus-6014-network-servers-in-places-sidebar.diff create mode 100644 nautilus-config-defaults.patch create mode 100644 nautilus-debug-log.diff create mode 100644 nautilus-default-thumbnail-size.diff create mode 100644 nautilus-disable-zoom-control-and-view-as-option-menu.patch create mode 100644 nautilus-docpath.patch create mode 100644 nautilus-drives-and-volumes-on-desktop.diff create mode 100644 nautilus-icon.patch create mode 100644 nautilus-mime.patch create mode 100644 nautilus-name-length.patch create mode 100644 nautilus-onlyshowin.patch create mode 100644 nautilus-search-desktop.patch create mode 100644 nautilus.changes create mode 100644 nautilus.spec create mode 100644 ready diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/nautilus-146947-rename-bad-parameters-message.diff b/nautilus-146947-rename-bad-parameters-message.diff new file mode 100644 index 0000000..6203558 --- /dev/null +++ b/nautilus-146947-rename-bad-parameters-message.diff @@ -0,0 +1,22 @@ +http://bugzilla.gnome.org/show_bug.cgi?id=350976 + +https://bugzilla.novell.com/show_bug.cgi?id=146947 + +libsmbclient returns EINVAL if one sends it filenames with illegal +characters, like '\'. Display a more useful error message than +"generic error" in that case. + +--- src/file-manager/fm-error-reporting.c.orig 2006-01-16 13:20:30.000000000 -0600 ++++ src/file-manager/fm-error-reporting.c 2006-01-31 13:00:05.000000000 -0600 +@@ -133,6 +133,11 @@ + message = g_strdup_printf (_("Couldn't change the name of \"%s\" because it is on a read-only disk"), + original_name_truncated); + break; ++ case GNOME_VFS_ERROR_BAD_PARAMETERS: ++ message = g_strdup_printf (_("Couldn't rename \"%s\" to \"%s\". Please make sure the new name has " ++ "only valid characters in it."), ++ original_name_truncated, new_name_truncated); ++ break; + default: + /* We should invent decent error messages for every case we actually experience. */ + g_warning ("Hit unhandled case %d (%s) in fm_report_error_renaming_file", diff --git a/nautilus-158158-ignore-foreign-desktop-files.diff b/nautilus-158158-ignore-foreign-desktop-files.diff new file mode 100644 index 0000000..7354e75 --- /dev/null +++ b/nautilus-158158-ignore-foreign-desktop-files.diff @@ -0,0 +1,185 @@ +http://bugzilla.gnome.org/show_bug.cgi?id=338933 + +Don't show .desktop files which are specific to other desktop +environments ("OnlyShowIn=foo" where foo != GNOME). + +This patch ignores those files at a very low level +(NautilusDirectoryAsync), and for all directories. It should probably +only do it for ~/Desktop: the original bug is about not wanting to +show the .desktop files which KDE drops in your ~/Desktop (those files +do have OnlyShowIn=KDE). + +2006-05-22 Federico Mena Quintero + + * libnautilus-private/nautilus-directory-async.c + (is_foreign_desktop_file): Argh, check that the OnlyShowIn / + NotShowIn strings exist before testing their contents. Fixes + https://bugzilla.novell.com/show_bug.cgi?id=177777; this was + filtering all .desktop files! + +2006-05-16 Federico Mena Quintero + + * libnautilus-private/nautilus-directory-async.c + (is_foreign_desktop_file): Split the contents of the OnlyShowIn + key; it can be a list of strings. Also consider the NotShowIn + key. Fixes https://bugzilla.novell.com/show_bug.cgi?id=176123 + +2006-04-18 Federico Mena Quintero + + Skip .desktop files which are specific to other desktop + environments ("OnlyShowIn=foo"). Fixes these bugs: + http://bugzilla.gnome.org/show_bug.cgi?id=338933 + https://bugzilla.novell.com/show_bug.cgi?id=158158 + + * libnautilus-private/nautilus-directory-async.c + (is_foreign_desktop_file): New helper function: returns TRUE if + it gets a .desktop file with "OnlyShowIn=" not for GNOME. + (directory_load_one): Use is_foreign_desktop_file(), and skip + .desktop files which belong to other desktop environments. + + * src/nautilus-application.c (remove_desktop_dot_hidden): + Unlink ~/Desktop/.hidden, which was a Suse hack. + (finish_startup): Call remove_desktop_dot_hidden(). + +================================================================================ +--- nautilus-2.15.4/libnautilus-private/nautilus-directory-async.c ++++ nautilus-2.15.4/libnautilus-private/nautilus-directory-async.c +@@ -939,12 +939,79 @@ + } + } + ++static gboolean ++string_array_contains (char **array, ++ const char *str) ++{ ++ char **p; ++ ++ if (!array) ++ return FALSE; ++ ++ for (p = array; *p; p++) ++ if (g_ascii_strcasecmp (*p, str) == 0) { ++ return TRUE; ++ } ++ ++ return FALSE; ++} ++ ++static gboolean ++is_foreign_desktop_file (NautilusDirectory *directory, ++ GnomeVFSFileInfo *info) ++{ ++ const char *mime_type; ++ char *uri; ++ GnomeDesktopItem *ditem; ++ gboolean retval; ++ ++ if (!(info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE)) { ++ return FALSE; ++ } ++ ++ mime_type = gnome_vfs_file_info_get_mime_type (info); ++ if (g_ascii_strcasecmp (mime_type, "application/x-desktop") != 0) { ++ return FALSE; ++ } ++ ++ uri = nautilus_directory_get_file_uri (directory, info->name); ++ ++ /* NULL GError */ ++ ditem = gnome_desktop_item_new_from_uri (uri, 0, NULL); ++ ++ retval = FALSE; ++ ++ if (ditem) { ++ char **only_show_in; ++ char **not_show_in; ++ ++ only_show_in = gnome_desktop_item_get_strings (ditem, GNOME_DESKTOP_ITEM_ONLY_SHOW_IN); ++ if (only_show_in && !string_array_contains (only_show_in, "GNOME")) { ++ retval = TRUE; ++ } ++ g_strfreev (only_show_in); ++ ++ not_show_in = gnome_desktop_item_get_strings (ditem, "NotShowIn"); ++ if (not_show_in && string_array_contains (not_show_in, "GNOME")) { ++ retval = TRUE; ++ } ++ g_strfreev (not_show_in); ++ ++ gnome_desktop_item_unref (ditem); ++ } ++ ++ g_free (uri); ++ ++ return retval; ++} ++ + static void + directory_load_one (NautilusDirectory *directory, + GnomeVFSFileInfo *info) + { + if (info == NULL || info->name == NULL || +- is_dot_or_dot_dot (info->name)) { ++ is_dot_or_dot_dot (info->name) || ++ is_foreign_desktop_file (directory, info)) { + return; + } + +--- nautilus-2.15.4/src/nautilus-application.c ++++ nautilus-2.15.4/src/nautilus-application.c +@@ -384,6 +384,45 @@ + nautilus_module_extension_list_free (providers); + } + ++/* Suse had a hack in Nautilus (dot-hidden.dif) that would create a ++ * ~/Desktop/hidden file with the following entries, in order to skip ++ * launchers created by KDE: ++ * ++ * myComputer.desktop ++ * Printer.desktop ++ * Network.desktop ++ * SuSE.desktop ++ * MozillaFirefox.desktop ++ * Office.desktop ++ * trash.desktop ++ * ++ * This was a hack around https://bugzilla.novell.com/show_bug.cgi?id=58875, but ++ * it creates problems: people like to drag a MozillaFirefox.desktop to their ++ * desktop, and it would be ignored due to that patch. ++ * ++ * So, now we unlink() the ~/Desktop/.hidden file under the rationale that that ++ * folder is under your complete control --- if you don't want to see a file in ++ * there, you can just delete it. ++ * ++ * The .desktop files for KDE launchers should have "OnlyShowIn=KDE" in them; ++ * now we support this properly. See ++ * https://bugzilla.novell.com/show_bug.cgi?id=158158 for this. ++ */ ++static void ++remove_desktop_dot_hidden (void) ++{ ++ char *desktop_dir; ++ char *dot_hidden; ++ ++ desktop_dir = nautilus_get_desktop_directory (); ++ dot_hidden = g_build_filename (desktop_dir, ".hidden", NULL); ++ ++ unlink (dot_hidden); ++ ++ g_free (desktop_dir); ++ g_free (dot_hidden); ++} ++ + static void + finish_startup (NautilusApplication *application) + { +@@ -401,6 +440,9 @@ + /* Make the desktop work with old Nautilus. */ + migrate_old_nautilus_files (); + ++ /* Remove artifact from the old dot-hidden.dif patch in Suse */ ++ remove_desktop_dot_hidden (); ++ + /* Initialize the desktop link monitor singleton */ + nautilus_desktop_link_monitor_get (); + } diff --git a/nautilus-2.16.1.tar.bz2 b/nautilus-2.16.1.tar.bz2 new file mode 100644 index 0000000..781d5ed --- /dev/null +++ b/nautilus-2.16.1.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48818f5e2c9e981a6c75a61e462ac4050f7ffbf1c620a62fd7b3e57669484e37 +size 4258919 diff --git a/nautilus-206369-desktop-icon-overlap.diff b/nautilus-206369-desktop-icon-overlap.diff new file mode 100644 index 0000000..0dd1af2 --- /dev/null +++ b/nautilus-206369-desktop-icon-overlap.diff @@ -0,0 +1,180 @@ +2006-10-31 Federico Mena Quintero + + http://bugzilla.gnome.org/show_bug.cgi?id=330298 + + Fix the use of lazy positioning, and the saving of metadata for + lazily-positioned icons. Fixes + https://bugzilla.novell.com/show_bug.cgi?id=155337 and + https://bugzilla.novell.com/show_bug.cgi?id=174766. + + * src/file-manager/fm-icon-view.c (file_has_lazy_position): Only + desktop icon files (not "real" files) have lazy positions. Don't + consider whether the directory is loading; this is not the right + place to check that. + (fm_icon_view_begin_loading): Tell the icon container that we + just started reloading. + (fm_icon_view_end_loading): Tell the icon container that we + finished loading. + + * libnautilus-private/nautilus-icon-private.h + (NautilusIconContainerDetails): New flag "is_reloading". + + * libnautilus-private/nautilus-icon-container.h: New prototype for + nautilus_icon_container_set_is_reloading(). + + * libnautilus-private/nautilus-icon-container.c + (nautilus_icon_container_set_is_reloading): New function; sets an + is_reloading flag in the icon container. + (icon_set_position): Clear icon->has_lazy_position, since the icon + will be well-positioned once this function exits. + (finish_adding_new_icons): Do not ignore already-placed lazy + position icons when filling the placement grid! Save the value of + icon->has_lazy_position before calling assign_icon_position(). + Since that function may call icon_set_position() (which will clear + the flag), we need to keep the original value of the flag. + (finish_adding_new_icons): Don't clear icon->has_lazy_position + here; let icon_set_position() do it. + (finish_adding_new_icons): Emit the icon_position_changed signal + so that the parent knows that we moved an icon under it. This has + the effect of updating/preserving the position metadata for + has_lazy_position icons. + +--- nautilus/src/file-manager/fm-icon-view.c~ 2006-08-29 03:04:42.000000000 -0500 ++++ nautilus/src/file-manager/fm-icon-view.c 2006-10-31 17:46:27.000000000 -0600 +@@ -512,22 +512,12 @@ static gboolean + file_has_lazy_position (FMDirectoryView *view, + NautilusFile *file) + { +- gboolean lazy_position; +- + /* For volumes (i.e. cdrom icon) we use lazy positioning so that when + * an old cdrom gets re-mounted in a place that now has another +- * icon we don't overlap that one. We don't do this in general though, +- * as it can cause icons moving around. ++ * icon we don't overlap that one. + */ +- lazy_position = nautilus_file_has_volume (file); +- if (lazy_position && fm_directory_view_get_loading (view)) { +- /* if volumes are loaded during directory load, don't mark them +- * as lazy. This is wrong for files that were mounted during user +- * log-off, but it is right for files that were mounted during login. */ +- lazy_position = FALSE; +- } + +- return lazy_position; ++ return NAUTILUS_IS_DESKTOP_ICON_FILE (file); + } + + static void +@@ -1073,6 +1063,8 @@ fm_icon_view_begin_loading (FMDirectoryV + file = fm_directory_view_get_directory_as_file (view); + icon_container = GTK_WIDGET (get_icon_container (icon_view)); + ++ nautilus_icon_container_set_is_reloading (NAUTILUS_ICON_CONTAINER (icon_container), TRUE); ++ + nautilus_icon_container_set_allow_moves (NAUTILUS_ICON_CONTAINER (icon_container), + fm_directory_view_get_allow_moves (view)); + +@@ -1147,6 +1139,7 @@ fm_icon_view_end_loading (FMDirectoryVie + FMIconView *icon_view; + + icon_view = FM_ICON_VIEW (view); ++ nautilus_icon_container_set_is_reloading (get_icon_container (icon_view), FALSE); + } + + static NautilusZoomLevel +--- nautilus-2.15.4/libnautilus-private/nautilus-icon-container.h ++++ nautilus-2.15.4/libnautilus-private/nautilus-icon-container.h +@@ -228,6 +228,8 @@ + NautilusIconData *data); + + /* control the layout */ ++void nautilus_icon_container_set_is_reloading (NautilusIconContainer *container, ++ gboolean is_reloading); + gboolean nautilus_icon_container_is_auto_layout (NautilusIconContainer *container); + void nautilus_icon_container_set_auto_layout (NautilusIconContainer *container, + gboolean auto_layout); +--- nautilus/libnautilus-private/nautilus-icon-container.c.orig 2006-10-31 17:58:43.000000000 -0600 ++++ nautilus/libnautilus-private/nautilus-icon-container.c 2006-10-31 18:00:47.000000000 -0600 +@@ -288,6 +288,8 @@ icon_set_position (NautilusIcon *icon, + int x1, y1, x2, y2; + int container_x, container_y, container_width, container_height; + ++ icon->has_lazy_position = FALSE; ++ + if (icon->x == x && icon->y == y) { + return; + } +@@ -348,7 +350,7 @@ icon_set_position (NautilusIcon *icon, + if (icon->y == ICON_UNPOSITIONED_VALUE) { + icon->y = 0; + } +- ++ + eel_canvas_item_move (EEL_CANVAS_ITEM (icon->item), + x - icon->x, + y - icon->y); +@@ -5708,9 +5710,13 @@ finish_adding_new_icons (NautilusIconCon + new_icons = g_list_reverse (new_icons); + no_position_icons = semi_position_icons = NULL; + for (p = new_icons; p != NULL; p = p->next) { ++ gboolean has_lazy_position; ++ + icon = p->data; ++ has_lazy_position = icon->has_lazy_position; ++ + if (assign_icon_position (container, icon)) { +- if (!container->details->auto_layout && icon->has_lazy_position) { ++ if (!container->details->is_reloading && !container->details->auto_layout && has_lazy_position) { + semi_position_icons = g_list_prepend (semi_position_icons, icon); + } + } else { +@@ -5743,6 +5749,7 @@ finish_adding_new_icons (NautilusIconCon + for (p = semi_position_icons; p != NULL; p = p->next) { + NautilusIcon *icon; + int x, y; ++ NautilusIconPosition position; + + icon = p->data; + x = icon->x; +@@ -5755,9 +5762,10 @@ finish_adding_new_icons (NautilusIconCon + + placement_grid_mark_icon (grid, icon); + +- /* ensure that next time we run this code, the formerly semi-positioned +- * icons are treated as being positioned. */ +- icon->has_lazy_position = FALSE; ++ position.x = icon->x; ++ position.y = icon->y; ++ g_signal_emit (container, signals[ICON_POSITION_CHANGED], 0, ++ icon->data, &position); + } + + placement_grid_free (grid); +@@ -6657,6 +6665,15 @@ nautilus_icon_container_sort (NautilusIc + } + } + ++void ++nautilus_icon_container_set_is_reloading (NautilusIconContainer *container, ++ gboolean is_reloading) ++{ ++ g_return_if_fail (NAUTILUS_IS_ICON_CONTAINER (container)); ++ ++ container->details->is_reloading = is_reloading; ++} ++ + gboolean + nautilus_icon_container_is_auto_layout (NautilusIconContainer *container) + { +--- nautilus-2.15.4/libnautilus-private/nautilus-icon-private.h ++++ nautilus-2.15.4/libnautilus-private/nautilus-icon-private.h +@@ -253,6 +253,8 @@ + guint a11y_item_action_idle_handler; + GQueue* a11y_item_action_queue; + ++ eel_boolean_bit is_reloading : 1; ++ + /* interactive search */ + gboolean disable_popdown; + gboolean imcontext_changed; diff --git a/nautilus-212649-search-bar-visibility.patch b/nautilus-212649-search-bar-visibility.patch new file mode 100644 index 0000000..2f5ed6a --- /dev/null +++ b/nautilus-212649-search-bar-visibility.patch @@ -0,0 +1,74 @@ +This patch fixes a problem in which the search bar is not visible and it's not +obvious how to search when you navigate directly to the x-nautilus-search:/// +URI. This also fixes a problem in which focus is stolen away from the search +bar when the window is first displayed. + +This is filed upstream at http://bugzilla.gnome.org/368424 + +Index: src/nautilus-navigation-window.c +=================================================================== +RCS file: /cvs/gnome/nautilus/src/nautilus-navigation-window.c,v +retrieving revision 1.450 +diff -u -p -u -r1.450 nautilus-navigation-window.c +--- src/nautilus-navigation-window.c 2 Oct 2006 10:53:58 -0000 1.450 ++++ src/nautilus-navigation-window.c 31 Oct 2006 17:53:23 -0000 +@@ -1128,8 +1128,7 @@ real_set_search_mode (NautilusWindow *wi + query_editor = nautilus_query_editor_new (TRUE, + nautilus_search_directory_is_indexed (search_directory)); + } else { +- nautilus_navigation_window_show_location_bar_temporarily (nav_window); +- nautilus_navigation_window_set_bar_mode (nav_window, NAUTILUS_BAR_SEARCH); ++ nautilus_navigation_window_show_search (nav_window); + nav_window->details->temporary_search_bar = FALSE; + + query_editor = nautilus_query_editor_new_with_bar (FALSE, +@@ -1145,7 +1144,7 @@ real_set_search_mode (NautilusWindow *wi + nautilus_query_editor_set_query (NAUTILUS_QUERY_EDITOR (query_editor), + query); + g_object_unref (query); +- }else { ++ } else { + nautilus_query_editor_set_default_query (NAUTILUS_QUERY_EDITOR (query_editor)); + } + +@@ -1466,16 +1465,18 @@ nautilus_navigation_window_show (GtkWidg + nautilus_navigation_window_hide_toolbar (window); + } + +- if (eel_preferences_get_boolean (NAUTILUS_PREFERENCES_START_WITH_LOCATION_BAR)) { +- nautilus_navigation_window_show_location_bar (window, FALSE); +- } else { +- nautilus_navigation_window_hide_location_bar (window, FALSE); +- } +- +- if (eel_preferences_get_boolean (NAUTILUS_PREFERENCES_ALWAYS_USE_LOCATION_ENTRY)) { +- nautilus_navigation_window_set_bar_mode (window, NAUTILUS_BAR_NAVIGATION); +- } else { +- nautilus_navigation_window_set_bar_mode (window, NAUTILUS_BAR_PATH); ++ if (! nautilus_navigation_window_search_bar_showing (window)) { ++ if (eel_preferences_get_boolean (NAUTILUS_PREFERENCES_START_WITH_LOCATION_BAR)) { ++ nautilus_navigation_window_show_location_bar (window, FALSE); ++ } else { ++ nautilus_navigation_window_hide_location_bar (window, FALSE); ++ } ++ ++ if (eel_preferences_get_boolean (NAUTILUS_PREFERENCES_ALWAYS_USE_LOCATION_ENTRY)) { ++ nautilus_navigation_window_set_bar_mode (window, NAUTILUS_BAR_NAVIGATION); ++ } else { ++ nautilus_navigation_window_set_bar_mode (window, NAUTILUS_BAR_PATH); ++ } + } + + if (eel_preferences_get_boolean (NAUTILUS_PREFERENCES_START_WITH_SIDEBAR)) { +@@ -1491,6 +1492,11 @@ nautilus_navigation_window_show (GtkWidg + } + + GTK_WIDGET_CLASS (parent_class)->show (widget); ++ ++ /* Lame hack to ensure that the icon view doesn't steal the focus away */ ++ if (nautilus_navigation_window_search_bar_showing (window)) { ++ nautilus_search_bar_grab_focus (NAUTILUS_SEARCH_BAR (window->search_bar)); ++ } + } + + static void diff --git a/nautilus-6014-network-servers-in-places-sidebar.diff b/nautilus-6014-network-servers-in-places-sidebar.diff new file mode 100644 index 0000000..2c5a92c --- /dev/null +++ b/nautilus-6014-network-servers-in-places-sidebar.diff @@ -0,0 +1,23 @@ +http://bugzilla.gnome.org/show_bug.cgi?id=350974 + +https://bugzilla.novell.com/show_bug.cgi?id=6014 + +Add "Network Servers" to the Places sidebar. + +--- nautilus/src/nautilus-places-sidebar.c.orig 2006-10-25 11:35:15.000000000 -0500 ++++ nautilus/src/nautilus-places-sidebar.c 2006-10-25 11:38:12.000000000 -0500 +@@ -263,6 +263,14 @@ update_places (NautilusPlacesSidebar *si + gtk_tree_selection_select_iter (selection, &last_iter); + } + ++ mount_uri = "network:///"; /* No need to strdup */ ++ last_iter = add_place (sidebar, PLACES_BUILT_IN, ++ _("Network Servers"), "gnome-fs-network", ++ mount_uri, NULL, NULL, 0); ++ if (strcmp (location, mount_uri) == 0) { ++ gtk_tree_selection_select_iter (selection, &last_iter); ++ } ++ + /* for all drives add all its volumes */ + + volume_monitor = gnome_vfs_get_volume_monitor (); diff --git a/nautilus-config-defaults.patch b/nautilus-config-defaults.patch new file mode 100644 index 0000000..d21844f --- /dev/null +++ b/nautilus-config-defaults.patch @@ -0,0 +1,30 @@ +diff -pruN nautilus-2.12.0-old/libnautilus-private/apps_nautilus_preferences.schemas.in nautilus-2.12.0/libnautilus-private/apps_nautilus_preferences.schemas.in +--- nautilus-2.12.0-old/libnautilus-private/apps_nautilus_preferences.schemas.in 2005-07-11 03:10:13.000000000 -0700 ++++ nautilus-2.12.0/libnautilus-private/apps_nautilus_preferences.schemas.in 2005-09-22 13:13:51.325688990 -0700 +@@ -43,7 +43,7 @@ + /apps/nautilus/preferences/always_use_browser + nautilus + bool +- false ++ true + + Enables the classic Nautilus behavior, where all windows are browsers + +@@ -244,7 +244,7 @@ + /apps/nautilus/preferences/preview_sound + nautilus + string +- local_only ++ never + + Whether to preview sounds when mousing over an icon + +@@ -769,7 +769,7 @@ most cases, this should be left alone. - + /apps/nautilus/desktop/computer_icon_visible + nautilus + bool +- true ++ false + + Computer icon visible on desktop + diff --git a/nautilus-debug-log.diff b/nautilus-debug-log.diff new file mode 100644 index 0000000..7bdf6ee --- /dev/null +++ b/nautilus-debug-log.diff @@ -0,0 +1,1592 @@ +2006-10-23 Federico Mena Quintero + + * libnautilus-private/nautilus-debug-log.h + (NAUTILUS_DEBUG_LOG_DOMAIN_GLOG): New domain for GLog messages. + We'll spit the messages that come from GLog as milestone events. + + * src/nautilus-main.c (setup_debug_log): New function; set up + everything here. + (setup_debug_log_glog): New function. Override the default + handler for GLog so that its messages will also appear as + milestone events in our own debug log. + +2006-10-16 Federico Mena Quintero + + * src/file-manager/fm-directory-view.c (files_added_callback): Log + when files are added to the view. + (files_changed_callback): Log when files get changed in the view. + (fm_directory_view_notify_selection_changed): Log when the + selection changes. + + * src/nautilus-main.c (setup_debug_log_domains): Add + NAUTILUS_DEBUG_LOG_DOMAIN_ASYNC to the list of enabled log domains. + + * libnautilus-private/nautilus-debug-log.h: New prototype for + nautilus_debug_log_with_file_list(). + + * libnautilus-private/nautilus-debug-log.c + (nautilus_debug_log_with_file_list): New function; takes a GList + of NautilusFile. + +2006-10-03 Federico Mena Quintero + + * libnautilus-private/nautilus-debug-log.c (nautilus_debug_logv): + Deal with URI lists optionally. + (nautilus_debug_log_with_uri_list): New function. + + * libnautilus-private/nautilus-icon-dnd.c + (receive_dropped_color): Log when a color is dropped. + (receive_dropped_tile_image): Log when a tile image is dropped. + + * libnautilus-private/nautilus-icon-container.c + (motion_notify_event): Log when a drag begins. + (button_release_event): Log when a drag ends. + + * libnautilus-private/nautilus-file-operations.c + (nautilus_file_operations_copy_move): Log move/copy/link actions. + (nautilus_file_operations_new_folder): Log when a folder is created. + (nautilus_file_operations_new_file_from_template): Log when a file + is created from a template. + (nautilus_file_operations_new_file): Log when a file is created. + (nautilus_file_operations_delete): Log when files are deleted. + (do_empty_trash): Log when the trash is emptied. + +2006-09-22 Federico Mena Quintero + + * libnautilus-private/nautilus-debug-log.[ch]: New files with a + simple logging infrastructure based on a ring buffer. + + * libnautilus-private/Makefile.am + (libnautilus_private_la_SOURCES): Added nautilus-debug-log.[ch]. + + * src/nautilus-main.c (main): Make SIGUSR1 dump the debug log to + ~/nautilus-debug-log.txt. + + * src/file-manager/fm-directory-view.c + (fm_directory_view_activate_files): Log the action of activating a + file. + (open_location): Likewise. + (fm_directory_view_launch_application): Likewise, for launching an + application. + (action_new_launcher_callback): Likewise, for creating a launcher. + (activate_callback): Log the various actions that can happen here. + + * src/file-manager/fm-tree-view.c (got_activation_uri_callback): + Log the various activations/launches that can happen. + + * src/nautilus-places-sidebar.c (row_activated_callback): Log the + action of the user activating something in the Places sidebar. + + * src/nautilus-window-manage-views.c + (nautilus_window_open_location_full): Log the action of changing + the location in a window. + (nautilus_window_set_content_view): Log the action of thanging the + view of a window. + (end_location_change): Log when the window finishes loading. + + * src/file-manager/fm-list-view.c (row_expanded_callback): Log the + action of expanding a row to load a subdirectory. + (row_collapsed_callback): Likewise, for collapsing a row. + + * src/file-manager/fm-error-reporting.c (fm_rename_file): Log the + action of renaming a file. + + * src/nautilus-application.c + (nautilus_application_present_spatial_window_with_selection): Log + when new or existing spatial windows get presented. + (nautilus_application_create_navigation_window): Log when a + navigation window gets created. + +--- /dev/null 2006-10-03 05:17:45.000000000 -0500 ++++ libnautilus-private/nautilus-debug-log.h 2006-10-23 18:51:36.000000000 -0500 +@@ -0,0 +1,56 @@ ++/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- ++ ++ nautilus-debug-log.h: Ring buffer for logging debug messages ++ ++ Copyright (C) 2006 Novell, Inc. ++ ++ This program is free software; you can redistribute it and/or ++ modify it under the terms of the GNU General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ General Public License for more details. ++ ++ You should have received a copy of the GNU General Public ++ License along with this program; if not, write to the ++ Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. ++ ++ Author: Federico Mena-Quintero ++*/ ++ ++#ifndef NAUTILUS_DEBUG_LOG_H ++#define NAUTILUS_DEBUG_LOG_H ++ ++#include ++ ++#define NAUTILUS_DEBUG_LOG_DOMAIN_USER "USER" /* always enabled */ ++#define NAUTILUS_DEBUG_LOG_DOMAIN_ASYNC "async" /* when asynchronous notifications come in */ ++#define NAUTILUS_DEBUG_LOG_DOMAIN_GLOG "GLog" /* used for GLog messages; don't use it yourself */ ++ ++void nautilus_debug_log (gboolean is_milestone, const char *domain, const char *format, ...); ++ ++void nautilus_debug_log_with_uri_list (gboolean is_milestone, const char *domain, const GList *uris, ++ const char *format, ...); ++void nautilus_debug_log_with_file_list (gboolean is_milestone, const char *domain, GList *files, ++ const char *format, ...); ++ ++void nautilus_debug_logv (gboolean is_milestone, const char *domain, const GList *uris, const char *format, va_list args); ++ ++void nautilus_debug_log_enable_domains (const char **domains, int n_domains); ++void nautilus_debug_log_disable_domains (const char **domains, int n_domains); ++ ++gboolean nautilus_debug_log_is_domain_enabled (const char *domain); ++ ++gboolean nautilus_debug_log_dump (const char *filename, GError **error); ++ ++void nautilus_debug_log_set_max_lines (int num_lines); ++int nautilus_debug_log_get_max_lines (void); ++ ++/* For testing only */ ++void nautilus_debug_log_clear (void); ++ ++#endif /* NAUTILUS_DEBUG_LOG_H */ +--- /dev/null 2006-10-03 05:17:45.000000000 -0500 ++++ libnautilus-private/nautilus-debug-log.c 2006-10-23 14:49:59.000000000 -0500 +@@ -0,0 +1,482 @@ ++/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- ++ ++ nautilus-debug-log.c: Ring buffer for logging debug messages ++ ++ Copyright (C) 2006 Novell, Inc. ++ ++ This program is free software; you can redistribute it and/or ++ modify it under the terms of the GNU General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ General Public License for more details. ++ ++ You should have received a copy of the GNU General Public ++ License along with this program; if not, write to the ++ Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. ++ ++ Author: Federico Mena-Quintero ++*/ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "nautilus-debug-log.h" ++#include "nautilus-file.h" ++ ++#define DEFAULT_RING_BUFFER_NUM_LINES 3000 ++ ++static GStaticMutex log_mutex = G_STATIC_MUTEX_INIT; ++ ++static GHashTable *domains_hash; ++static char **ring_buffer; ++static int ring_buffer_next_index; ++static int ring_buffer_num_lines; ++static int ring_buffer_max_lines = DEFAULT_RING_BUFFER_NUM_LINES; ++ ++static void ++lock (void) ++{ ++ g_static_mutex_lock (&log_mutex); ++} ++ ++static void ++unlock (void) ++{ ++ g_static_mutex_unlock (&log_mutex); ++} ++ ++void ++nautilus_debug_log (gboolean is_milestone, const char *domain, const char *format, ...) ++{ ++ va_list args; ++ ++ va_start (args, format); ++ nautilus_debug_logv (is_milestone, domain, NULL, format, args); ++ va_end (args); ++} ++ ++static gboolean ++is_domain_enabled (const char *domain) ++{ ++ /* User actions are always logged */ ++ if (strcmp (domain, NAUTILUS_DEBUG_LOG_DOMAIN_USER) == 0) ++ return TRUE; ++ ++ if (!domains_hash) ++ return FALSE; ++ ++ return (g_hash_table_lookup (domains_hash, domain) != NULL); ++} ++ ++static void ++ensure_ring (void) ++{ ++ if (ring_buffer) ++ return; ++ ++ ring_buffer = g_new0 (char *, ring_buffer_max_lines); ++ ring_buffer_next_index = 0; ++ ring_buffer_num_lines = 0; ++} ++ ++static void ++add_to_ring (char *str) ++{ ++ ensure_ring (); ++ ++ g_assert (str != NULL); ++ ++ if (ring_buffer_num_lines == ring_buffer_max_lines) { ++ /* We have an overlap, and the ring_buffer_next_index points to ++ * the "first" item. Free it to make room for the new item. ++ */ ++ ++ g_assert (ring_buffer[ring_buffer_next_index] != NULL); ++ g_free (ring_buffer[ring_buffer_next_index]); ++ } else ++ ring_buffer_num_lines++; ++ ++ g_assert (ring_buffer_num_lines <= ring_buffer_max_lines); ++ ++ ring_buffer[ring_buffer_next_index] = str; ++ ++ ring_buffer_next_index++; ++ if (ring_buffer_next_index == ring_buffer_max_lines) { ++ ring_buffer_next_index = 0; ++ g_assert (ring_buffer_num_lines == ring_buffer_max_lines); ++ } ++} ++ ++void ++nautilus_debug_logv (gboolean is_milestone, const char *domain, const GList *uris, const char *format, va_list args) ++{ ++ char *str; ++ char *debug_str; ++ struct timeval tv; ++ struct tm tm; ++ ++ lock (); ++ ++ if (!(is_milestone || is_domain_enabled (domain))) ++ goto out; ++ ++ str = g_strdup_vprintf (format, args); ++ gettimeofday (&tv, NULL); ++ ++ tm = *localtime (&tv.tv_sec); ++ ++ debug_str = g_strdup_printf ("%p %04d/%02d/%02d %02d:%02d:%02d.%04d (%s): %s", ++ g_thread_self (), ++ tm.tm_year + 1900, ++ tm.tm_mon + 1, ++ tm.tm_mday, ++ tm.tm_hour, ++ tm.tm_min, ++ tm.tm_sec, ++ (int) (tv.tv_usec / 100), ++ domain, ++ str); ++ g_free (str); ++ ++ if (uris) { ++ int debug_str_len; ++ int uris_len; ++ const GList *l; ++ char *new_str; ++ char *p; ++ ++ uris_len = 0; ++ ++ for (l = uris; l; l = l->next) { ++ const char *uri; ++ ++ uri = l->data; ++ uris_len += strlen (uri) + 2; /* plus 2 for a tab and the newline */ ++ } ++ ++ debug_str_len = strlen (debug_str); ++ new_str = g_new (char, debug_str_len + 1 + uris_len); /* plus 1 for newline */ ++ ++ p = g_stpcpy (new_str, debug_str); ++ *p++ = '\n'; ++ ++ for (l = uris; l; l = l->next) { ++ const char *uri; ++ ++ uri = l->data; ++ ++ *p++ = '\t'; ++ ++ p = g_stpcpy (p, uri); ++ ++ if (l->next) ++ *p++ = '\n'; ++ } ++ ++ g_free (debug_str); ++ debug_str = new_str; ++ } ++ ++ add_to_ring (debug_str); ++ ++ /* FIXME: deal with milestones */ ++ ++ out: ++ unlock (); ++} ++ ++void ++nautilus_debug_log_with_uri_list (gboolean is_milestone, const char *domain, const GList *uris, ++ const char *format, ...) ++{ ++ va_list args; ++ ++ va_start (args, format); ++ nautilus_debug_logv (is_milestone, domain, uris, format, args); ++ va_end (args); ++} ++ ++void ++nautilus_debug_log_with_file_list (gboolean is_milestone, const char *domain, GList *files, ++ const char *format, ...) ++{ ++ va_list args; ++ GList *uris; ++ GList *l; ++ ++ uris = NULL; ++ ++ for (l = files; l; l = l->next) { ++ NautilusFile *file; ++ char *uri; ++ ++ file = NAUTILUS_FILE (l->data); ++ uri = nautilus_file_get_uri (file); ++ ++ if (nautilus_file_is_gone (file)) { ++ char *new_uri; ++ ++ /* Hack: this will create an invalid URI, but it's for ++ * display purposes only. ++ */ ++ new_uri = g_strconcat (uri ? uri : "", " (gone)", NULL); ++ g_free (uri); ++ uri = new_uri; ++ } ++ uris = g_list_prepend (uris, uri); ++ } ++ ++ uris = g_list_reverse (uris); ++ ++ va_start (args, format); ++ nautilus_debug_logv (is_milestone, domain, uris, format, args); ++ va_end (args); ++ ++ eel_g_list_free_deep (uris); ++} ++ ++void ++nautilus_debug_log_enable_domains (const char **domains, int n_domains) ++{ ++ int i; ++ ++ g_assert (domains != NULL); ++ g_assert (n_domains >= 0); ++ ++ lock (); ++ ++ if (!domains_hash) ++ domains_hash = g_hash_table_new (g_str_hash, g_str_equal); ++ ++ for (i = 0; i < n_domains; i++) { ++ g_assert (domains[i] != NULL); ++ ++ if (strcmp (domains[i], NAUTILUS_DEBUG_LOG_DOMAIN_USER) == 0) ++ continue; /* user actions are always enabled */ ++ ++ if (g_hash_table_lookup (domains_hash, domains[i]) == NULL) { ++ char *domain; ++ ++ domain = g_strdup (domains[i]); ++ g_hash_table_insert (domains_hash, domain, domain); ++ } ++ } ++ ++ unlock (); ++} ++ ++void ++nautilus_debug_log_disable_domains (const char **domains, int n_domains) ++{ ++ int i; ++ ++ g_assert (domains != NULL); ++ g_assert (n_domains >= 0); ++ ++ lock (); ++ ++ if (domains_hash) { ++ for (i = 0; i < n_domains; i++) { ++ char *domain; ++ ++ g_assert (domains[i] != NULL); ++ ++ if (strcmp (domains[i], NAUTILUS_DEBUG_LOG_DOMAIN_USER) == 0) ++ continue; /* user actions are always enabled */ ++ ++ domain = g_hash_table_lookup (domains_hash, domains[i]); ++ if (domain) { ++ g_hash_table_remove (domains_hash, domain); ++ g_free (domain); ++ } ++ } ++ } /* else, there is nothing to disable */ ++ ++ unlock (); ++} ++ ++gboolean ++nautilus_debug_log_is_domain_enabled (const char *domain) ++{ ++ gboolean retval; ++ ++ g_assert (domain != NULL); ++ ++ lock (); ++ retval = is_domain_enabled (domain); ++ unlock (); ++ ++ return retval; ++} ++ ++gboolean ++nautilus_debug_log_dump (const char *filename, GError **error) ++{ ++ FILE *file; ++ gboolean success; ++ int start_index; ++ int i; ++ ++ g_assert (error == NULL || *error == NULL); ++ ++ lock (); ++ ++ success = TRUE; ++ ++ file = fopen (filename, "w"); ++ if (!file) { ++ int saved_errno; ++ ++ saved_errno = errno; ++ g_set_error (error, ++ G_FILE_ERROR, ++ g_file_error_from_errno (saved_errno), ++ "could not open log file %s", filename); ++ success = FALSE; ++ goto out; ++ } ++ ++ if (ring_buffer_num_lines == ring_buffer_max_lines) ++ start_index = ring_buffer_next_index; ++ else ++ start_index = 0; ++ ++ for (i = 0; i < ring_buffer_num_lines; i++) { ++ int idx; ++ ++ idx = (start_index + i) % ring_buffer_max_lines; ++ ++ if (fputs (ring_buffer[idx], file) == EOF ++ || fputc ('\n', file) == EOF) { ++ int saved_errno; ++ ++ saved_errno = errno; ++ g_set_error (error, ++ G_FILE_ERROR, ++ g_file_error_from_errno (saved_errno), ++ "error when writing to log file %s", filename); ++ ++ success = FALSE; ++ goto do_close; ++ } ++ } ++ ++ do_close: ++ ++ if (fclose (file) != 0) { ++ int saved_errno; ++ ++ saved_errno = errno; ++ ++ if (error && *error) { ++ g_error_free (*error); ++ *error = NULL; ++ } ++ ++ g_set_error (error, ++ G_FILE_ERROR, ++ g_file_error_from_errno (saved_errno), ++ "error when closing log file %s", filename); ++ success = FALSE; ++ } ++ ++ out: ++ ++ unlock (); ++ return success; ++} ++ ++void ++nautilus_debug_log_set_max_lines (int num_lines) ++{ ++ char **new_buffer; ++ int lines_to_copy; ++ ++ g_assert (num_lines > 0); ++ ++ lock (); ++ ++ if (num_lines == ring_buffer_max_lines) ++ goto out; ++ ++ new_buffer = g_new0 (char *, num_lines); ++ ++ lines_to_copy = MIN (num_lines, ring_buffer_num_lines); ++ ++ if (ring_buffer) { ++ int start_index; ++ int i; ++ ++ if (ring_buffer_num_lines == ring_buffer_max_lines) ++ start_index = (ring_buffer_next_index + ring_buffer_max_lines - lines_to_copy) % ring_buffer_max_lines; ++ else ++ start_index = ring_buffer_num_lines - lines_to_copy; ++ ++ g_assert (start_index >= 0 && start_index < ring_buffer_max_lines); ++ ++ for (i = 0; i < lines_to_copy; i++) { ++ int idx; ++ ++ idx = (start_index + i) % ring_buffer_max_lines; ++ ++ new_buffer[i] = ring_buffer[idx]; ++ ring_buffer[idx] = NULL; ++ } ++ ++ for (i = 0; i < ring_buffer_max_lines; i++) ++ g_free (ring_buffer[i]); ++ ++ g_free (ring_buffer); ++ } ++ ++ ring_buffer = new_buffer; ++ ring_buffer_next_index = lines_to_copy; ++ ring_buffer_num_lines = lines_to_copy; ++ ring_buffer_max_lines = num_lines; ++ ++ out: ++ ++ unlock (); ++} ++ ++int ++nautilus_debug_log_get_max_lines (void) ++{ ++ int retval; ++ ++ lock (); ++ retval = ring_buffer_max_lines; ++ unlock (); ++ ++ return retval; ++} ++ ++void ++nautilus_debug_log_clear (void) ++{ ++ int i; ++ ++ lock (); ++ ++ if (!ring_buffer) ++ goto out; ++ ++ for (i = 0; i < ring_buffer_max_lines; i++) { ++ g_free (ring_buffer[i]); ++ ring_buffer[i] = NULL; ++ } ++ ++ ring_buffer_next_index = 0; ++ ring_buffer_num_lines = 0; ++ ++ out: ++ unlock (); ++} +Index: libnautilus-private/Makefile.am +=================================================================== +RCS file: /cvs/gnome/nautilus/libnautilus-private/Makefile.am,v +retrieving revision 1.254 +diff -u -r1.254 Makefile.am +--- libnautilus-private/Makefile.am 25 Jul 2006 14:18:03 -0000 1.254 ++++ libnautilus-private/Makefile.am 23 Oct 2006 20:30:47 -0000 +@@ -67,6 +67,8 @@ + nautilus-column-utilities.h \ + nautilus-customization-data.c \ + nautilus-customization-data.h \ ++ nautilus-debug-log.c \ ++ nautilus-debug-log.h \ + nautilus-default-file-icon.c \ + nautilus-default-file-icon.h \ + nautilus-desktop-directory-file.c \ +Index: libnautilus-private/nautilus-file-operations.c +=================================================================== +RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-file-operations.c,v +retrieving revision 1.214 +diff -u -r1.214 nautilus-file-operations.c +--- libnautilus-private/nautilus-file-operations.c 23 Aug 2006 09:07:15 -0000 1.214 ++++ libnautilus-private/nautilus-file-operations.c 23 Oct 2006 20:30:47 -0000 +@@ -30,6 +30,7 @@ + #include + #include "nautilus-file-operations.h" + ++#include "nautilus-debug-log.h" + #include "nautilus-file-operations-progress.h" + #include "nautilus-lib-self-check-functions.h" + +@@ -1907,6 +1908,33 @@ + + g_assert (item_uris != NULL); + ++ { ++ const char *action_str; ++ ++ switch (copy_action) { ++ case GDK_ACTION_COPY: ++ action_str = "copy"; ++ break; ++ ++ case GDK_ACTION_MOVE: ++ action_str = "move"; ++ break; ++ ++ case GDK_ACTION_LINK: ++ action_str = "link"; ++ break; ++ ++ default: ++ action_str = "[unknown action]"; ++ break; ++ } ++ ++ nautilus_debug_log_with_uri_list (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, item_uris, ++ "%s the following URIs to \"%s\":", ++ action_str, ++ target_dir ? target_dir : "[empty location]"); ++ } ++ + target_dir_uri = NULL; + trash_dir_uri = NULL; + result = GNOME_VFS_OK; +@@ -2376,6 +2404,9 @@ + + g_assert (parent_dir != NULL); + ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "create an untitled folder in \"%s\"", parent_dir); ++ + /* pass in the target directory and the new folder name as a destination URI */ + if (eel_uri_is_desktop (parent_dir)) { + char *desktop_dir_uri; +@@ -2574,6 +2605,10 @@ + g_assert (parent_dir != NULL); + g_assert (template_uri != NULL); + ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "create new file \"%s\" from template \"%s\" in \"%s\"", ++ target_filename ? target_filename : "(none)", template_uri, parent_dir); ++ + /* pass in the target directory and the new folder name as a destination URI */ + if (eel_uri_is_desktop (parent_dir)) { + tmp = nautilus_get_desktop_directory_uri (); +@@ -2677,6 +2712,10 @@ + char *target_filename; + int fd; + ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "create new file in \"%s\"", ++ parent_dir); ++ + fd = mkstemp (source_file_str); + if (fd == -1) { + (*done_callback) (NULL, data); +@@ -2723,6 +2762,9 @@ + NautilusFile *file; + TransferInfo *transfer_info; + ++ nautilus_debug_log_with_uri_list (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, item_uris, ++ "delete files:"); ++ + uri_list = NULL; + for (p = item_uris; p != NULL; p = p->next) { + item_uri = (const char *) p->data; +@@ -2786,6 +2828,9 @@ + { + TransferInfo *transfer_info; + GList *trash_dir_list; ++ ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "empty trash"); + + trash_dir_list = nautilus_trash_monitor_get_trash_directories (); + if (trash_dir_list != NULL) { +Index: libnautilus-private/nautilus-icon-container.c +=================================================================== +RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-icon-container.c,v +retrieving revision 1.419 +diff -u -r1.419 nautilus-icon-container.c +--- libnautilus-private/nautilus-icon-container.c 18 Oct 2006 12:28:35 -0000 1.419 ++++ libnautilus-private/nautilus-icon-container.c 23 Oct 2006 20:30:47 -0000 +@@ -29,6 +29,7 @@ + #include + #include "nautilus-icon-container.h" + ++#include "nautilus-debug-log.h" + #include "nautilus-global-preferences.h" + #include "nautilus-icon-private.h" + #include "nautilus-lib-self-check-functions.h" +@@ -3596,6 +3597,8 @@ + nautilus_icon_container_did_not_drag (container, event); + } else { + nautilus_icon_dnd_end_drag (container); ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "end drag from icon container"); + } + break; + case DRAG_STATE_STRETCH: +@@ -3667,6 +3670,8 @@ + event, + canvas_x, + canvas_y); ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "begin drag from icon container"); + } + break; + case DRAG_STATE_STRETCH: +Index: libnautilus-private/nautilus-icon-dnd.c +=================================================================== +RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-icon-dnd.c,v +retrieving revision 1.156 +diff -u -r1.156 nautilus-icon-dnd.c +--- libnautilus-private/nautilus-icon-dnd.c 27 Jul 2006 21:58:41 -0000 1.156 ++++ libnautilus-private/nautilus-icon-dnd.c 23 Oct 2006 20:30:47 -0000 +@@ -31,6 +31,7 @@ + #include + #include "nautilus-icon-dnd.h" + ++#include "nautilus-debug-log.h" + #include "nautilus-file-dnd.h" + #include "nautilus-icon-private.h" + #include "nautilus-link.h" +@@ -559,8 +560,15 @@ + GtkSelectionData *data) + { + action = get_background_drag_action (container, action); +- ++ + if (action > 0) { ++ char *uri; ++ ++ uri = get_container_uri (container); ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "dropped color on icon container displaying %s", uri); ++ g_free (uri); ++ + eel_background_receive_dropped_color + (eel_get_widget_background (GTK_WIDGET (container)), + GTK_WIDGET (container), +@@ -577,6 +585,13 @@ + action = get_background_drag_action (container, action); + + if (action > 0) { ++ char *uri; ++ ++ uri = get_container_uri (container); ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "dropped tile image on icon container displaying %s", uri); ++ g_free (uri); ++ + eel_background_receive_dropped_background_image + (eel_get_widget_background (GTK_WIDGET (container)), + action, +@@ -611,6 +626,11 @@ + * so we don't have to worry about async. issues here. + */ + uri = nautilus_icon_container_get_icon_uri (container, drop_target_icon); ++ ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "dropped emblem '%s' on icon container URI: %s", ++ keyword, uri); ++ + file = nautilus_file_get (uri); + g_free (uri); + +Index: src/nautilus-application.c +=================================================================== +RCS file: /cvs/gnome/nautilus/src/nautilus-application.c,v +retrieving revision 1.243 +diff -u -r1.243 nautilus-application.c +--- src/nautilus-application.c 21 Jun 2006 16:26:16 -0000 1.243 ++++ src/nautilus-application.c 23 Oct 2006 20:30:48 -0000 +@@ -76,6 +76,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -1133,6 +1134,10 @@ + if (new_selection) { + nautilus_view_set_selection (existing_window->content_view, new_selection); + } ++ ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "present EXISTING spatial window=%p: %s", ++ existing_window, location); + return existing_window; + } + } +@@ -1170,6 +1175,10 @@ + spatial_window_destroyed_callback, NULL); + + nautilus_window_go_to_with_selection (window, location, new_selection); ++ ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "present NEW spatial window=%p: %s", ++ window, location); + + return window; + } +@@ -1231,6 +1240,10 @@ + another_navigation_window_already_showing (window)); + } + g_free (geometry_string); ++ ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "create new navigation window=%p", ++ window); + + return window; + } +Index: src/nautilus-main.c +=================================================================== +RCS file: /cvs/gnome/nautilus/src/nautilus-main.c,v +retrieving revision 1.160 +diff -u -p -r1.160 nautilus-main.c +--- src/nautilus-main.c 19 Oct 2006 14:24:28 -0000 1.160 ++++ src/nautilus-main.c 24 Oct 2006 00:04:54 -0000 +@@ -37,6 +37,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -49,6 +50,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -183,6 +185,140 @@ slowly_and_stupidly_obtain_timestamp (Di + return event.xproperty.time; + } + ++static void ++dump_debug_log (void) ++{ ++ char *filename; ++ ++ filename = g_build_filename (g_get_home_dir (), "nautilus-debug-log.txt", NULL); ++ nautilus_debug_log_dump (filename, NULL); /* NULL GError */ ++ g_free (filename); ++} ++ ++static gboolean ++dump_debug_log_idle_cb (gpointer data) ++{ ++ nautilus_debug_log (TRUE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "user requested dump of debug log"); ++ ++ dump_debug_log (); ++ return FALSE; ++} ++ ++/* sigaction structures for the old handlers of these signals */ ++static struct sigaction old_segv_sa; ++static struct sigaction old_abrt_sa; ++static struct sigaction old_trap_sa; ++static struct sigaction old_fpe_sa; ++static struct sigaction old_bus_sa; ++ ++static void ++sigusr1_handler (int sig) ++{ ++ g_idle_add (dump_debug_log_idle_cb, NULL); ++} ++ ++static void ++sigfatal_handler (int sig) ++{ ++ void (* func) (int); ++ ++ /* FIXME: is this totally busted? We do malloc() inside these functions, ++ * and yet we are inside a signal handler... ++ */ ++ nautilus_debug_log (TRUE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "debug log dumped due to signal %d", sig); ++ dump_debug_log (); ++ ++ switch (sig) { ++ case SIGSEGV: ++ func = old_segv_sa.sa_handler; ++ break; ++ ++ case SIGABRT: ++ func = old_abrt_sa.sa_handler; ++ break; ++ ++ case SIGTRAP: ++ func = old_trap_sa.sa_handler; ++ break; ++ ++ case SIGFPE: ++ func = old_fpe_sa.sa_handler; ++ break; ++ ++ case SIGBUS: ++ func = old_bus_sa.sa_handler; ++ break; ++ ++ default: ++ func = NULL; ++ break; ++ } ++ ++ /* this scares me */ ++ if (func != NULL && func != SIG_IGN && func != SIG_DFL) ++ (* func) (sig); ++} ++ ++static void ++setup_debug_log_signals (void) ++{ ++ struct sigaction sa; ++ ++ sa.sa_handler = sigusr1_handler; ++ sigemptyset (&sa.sa_mask); ++ sa.sa_flags = 0; ++ sigaction (SIGUSR1, &sa, NULL); ++ ++ sa.sa_handler = sigfatal_handler; ++ sigemptyset (&sa.sa_mask); ++ sa.sa_flags = 0; ++ ++ sigaction(SIGSEGV, &sa, &old_segv_sa); ++ sigaction(SIGABRT, &sa, &old_abrt_sa); ++ sigaction(SIGTRAP, &sa, &old_trap_sa); ++ sigaction(SIGFPE, &sa, &old_fpe_sa); ++ sigaction(SIGBUS, &sa, &old_bus_sa); ++} ++ ++static void ++setup_debug_log_domains (void) ++{ ++ const char *domains[] = { ++ NAUTILUS_DEBUG_LOG_DOMAIN_ASYNC ++ }; ++ ++ nautilus_debug_log_enable_domains (domains, G_N_ELEMENTS (domains)); ++} ++ ++static GLogFunc default_log_handler; ++ ++static void ++log_override_cb (const gchar *log_domain, ++ GLogLevelFlags log_level, ++ const gchar *message, ++ gpointer user_data) ++{ ++ nautilus_debug_log (TRUE, NAUTILUS_DEBUG_LOG_DOMAIN_GLOG, "%s", message); ++ ++ (* default_log_handler) (log_domain, log_level, message, user_data); ++} ++ ++static void ++setup_debug_log_glog (void) ++{ ++ default_log_handler = g_log_set_default_handler (log_override_cb, NULL); ++} ++ ++static void ++setup_debug_log (void) ++{ ++ setup_debug_log_domains (); ++ setup_debug_log_signals (); ++ setup_debug_log_glog (); ++} ++ + int + main (int argc, char *argv[]) + { +@@ -271,6 +407,12 @@ main (int argc, char *argv[]) + GNOME_PARAM_GOPTION_CONTEXT, context, + GNOME_PARAM_HUMAN_READABLE_NAME, _("Nautilus"), + NULL); ++ ++ /* We do this after gnome_program_init(), since that function sets up ++ * its own handler for SIGSEGV and others --- we want to chain to those ++ * handlers. ++ */ ++ setup_debug_log (); + + if (session_to_load != NULL) { + no_default_window = TRUE; +Index: src/nautilus-places-sidebar.c +=================================================================== +RCS file: /cvs/gnome/nautilus/src/nautilus-places-sidebar.c,v +retrieving revision 1.25 +diff -u -r1.25 nautilus-places-sidebar.c +--- src/nautilus-places-sidebar.c 13 Sep 2006 20:09:19 -0000 1.25 ++++ src/nautilus-places-sidebar.c 23 Oct 2006 20:30:48 -0000 +@@ -45,6 +45,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -474,6 +475,9 @@ + (model, &iter, PLACES_SIDEBAR_COLUMN_URI, &uri, -1); + + if (uri != NULL) { ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "activate from places sidebar window=%p: %s", ++ sidebar->window, uri); + /* Navigate to the clicked location. */ + nautilus_window_info_open_location + (sidebar->window, +@@ -484,6 +488,14 @@ + gtk_tree_model_get + (model, &iter, PLACES_SIDEBAR_COLUMN_DRIVE, &drive, -1); + if (drive != NULL) { ++ char *path; ++ ++ path = gnome_vfs_drive_get_device_path (drive); ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "activate drive from places sidebar window=%p: %s", ++ sidebar->window, path); ++ g_free (path); ++ + gnome_vfs_drive_mount (drive, volume_op_callback, sidebar); + gnome_vfs_drive_unref (drive); + } +Index: src/nautilus-window-manage-views.c +=================================================================== +RCS file: /cvs/gnome/nautilus/src/nautilus-window-manage-views.c,v +retrieving revision 1.368 +diff -u -r1.368 nautilus-window-manage-views.c +--- src/nautilus-window-manage-views.c 8 Jul 2006 08:38:17 -0000 1.368 ++++ src/nautilus-window-manage-views.c 23 Oct 2006 20:30:48 -0000 +@@ -54,6 +54,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -473,9 +474,18 @@ + { + NautilusWindow *target_window; + gboolean do_load_location = TRUE; ++ char *old_location; + + target_window = NULL; + ++ old_location = nautilus_window_get_location (window); ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "window %p open location: old=\"%s\", new=\"%s\"", ++ window, ++ old_location ? old_location : "(none)", ++ location); ++ g_free (old_location); ++ + switch (mode) { + case NAUTILUS_WINDOW_OPEN_ACCORDING_TO_MODE : + if (eel_preferences_get_boolean (NAUTILUS_PREFERENCES_ALWAYS_USE_BROWSER)) { +@@ -1275,6 +1285,15 @@ + static void + end_location_change (NautilusWindow *window) + { ++ char *location; ++ ++ location = nautilus_window_get_location (window); ++ if (location) { ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "finished loading window %p: %s", window, location); ++ g_free (location); ++ } ++ + nautilus_window_allow_stop (window, FALSE); + + /* Now we can free pending_scroll_to, since the load_complete +@@ -1532,10 +1551,17 @@ + const char *id) + { + NautilusFile *file; ++ char *location; + + g_return_if_fail (NAUTILUS_IS_WINDOW (window)); + g_return_if_fail (window->details->location != NULL); + g_return_if_fail (id != NULL); ++ ++ location = nautilus_window_get_location (window); ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "change view of window %p: \"%s\" to \"%s\"", ++ window, location, id); ++ g_free (location); + + if (nautilus_window_content_view_matches_iid (window, id)) { + return; +Index: src/file-manager/fm-directory-view.c +=================================================================== +RCS file: /cvs/gnome/nautilus/src/file-manager/fm-directory-view.c,v +retrieving revision 1.752 +diff -u -p -r1.752 fm-directory-view.c +--- src/file-manager/fm-directory-view.c 19 Oct 2006 14:28:47 -0000 1.752 ++++ src/file-manager/fm-directory-view.c 23 Oct 2006 23:57:23 -0000 +@@ -80,6 +80,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -770,14 +771,18 @@ fm_directory_view_launch_application (Gn + { + NautilusFile *file; + GList *l; ++ GtkWindow *window; + + g_assert (application != NULL); + g_assert (NAUTILUS_IS_FILE (files->data)); + g_assert (FM_IS_DIRECTORY_VIEW (directory_view)); + +- nautilus_launch_application +- (application, files, +- fm_directory_view_get_containing_window (directory_view)); ++ window = fm_directory_view_get_containing_window (directory_view); ++ ++ nautilus_debug_log_with_file_list (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, files, ++ "fm_directory_view_launch_application window=%p", window); ++ ++ nautilus_launch_application (application, files, window); + + for (l = files; l != NULL; l = l->next) { + file = NAUTILUS_FILE (l->data); +@@ -816,6 +821,7 @@ open_location (FMDirectoryView *director + NautilusWindowOpenFlags flags) + { + NautilusFile *file; ++ GtkWindow *window; + + g_assert (FM_IS_DIRECTORY_VIEW (directory_view)); + g_assert (new_uri != NULL); +@@ -830,7 +836,10 @@ open_location (FMDirectoryView *director + monitor_file_for_open_with (directory_view, NULL); + } + nautilus_file_unref (file); +- ++ ++ window = fm_directory_view_get_containing_window (directory_view); ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "directory view open_location window=%p: %s", window, new_uri); + nautilus_window_info_open_location (directory_view->details->window, + new_uri, mode, flags, NULL); + } +@@ -1412,6 +1421,7 @@ action_new_launcher_callback (GtkAction + { + char *parent_uri; + FMDirectoryView *view; ++ GtkWindow *window; + + g_assert (FM_IS_DIRECTORY_VIEW (callback_data)); + +@@ -1419,6 +1429,9 @@ action_new_launcher_callback (GtkAction + + parent_uri = fm_directory_view_get_backing_uri (view); + ++ window = fm_directory_view_get_containing_window (view); ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "directory view create new launcher in window=%p: %s", window, parent_uri); + nautilus_launch_application_from_command (gtk_widget_get_screen (GTK_WIDGET (view)), + "gnome-desktop-item-edit", + "gnome-desktop-item-edit --create-new", +@@ -3097,9 +3110,19 @@ files_added_callback (NautilusDirectory + gpointer callback_data) + { + FMDirectoryView *view; ++ GtkWindow *window; ++ char *uri; + + view = FM_DIRECTORY_VIEW (callback_data); + ++ window = fm_directory_view_get_containing_window (view); ++ uri = fm_directory_view_get_uri (view); ++ nautilus_debug_log_with_file_list (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_ASYNC, files, ++ "files added in window %p: %s", ++ window, ++ uri ? uri : "(no directory)"); ++ g_free (uri); ++ + schedule_changes (view); + + queue_pending_files (view, directory, files, &view->details->new_added_files); +@@ -3114,9 +3137,19 @@ files_changed_callback (NautilusDirector + gpointer callback_data) + { + FMDirectoryView *view; ++ GtkWindow *window; ++ char *uri; + + view = FM_DIRECTORY_VIEW (callback_data); + ++ window = fm_directory_view_get_containing_window (view); ++ uri = fm_directory_view_get_uri (view); ++ nautilus_debug_log_with_file_list (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_ASYNC, files, ++ "files changed in window %p: %s", ++ window, ++ uri ? uri : "(no directory)"); ++ g_free (uri); ++ + schedule_changes (view); + + queue_pending_files (view, directory, files, &view->details->new_changed_files); +@@ -5297,6 +5330,7 @@ run_script_callback (GtkAction *action, + char *quoted_path; + char *old_working_dir; + char *parameters, *command, *name; ++ GtkWindow *window; + + launch_parameters = (ScriptLaunchParameters *) callback_data; + +@@ -5333,6 +5367,10 @@ run_script_callback (GtkAction *action, + + name = nautilus_file_get_name (launch_parameters->file); + /* FIXME: handle errors with dialog? Or leave up to each script? */ ++ window = fm_directory_view_get_containing_window (launch_parameters->directory_view); ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "directory view run_script_callback, window=%p, name=\"%s\", command=\"%s\"", ++ window, name, command); + nautilus_launch_application_from_command (screen, name, command, NULL, FALSE); + g_free (name); + g_free (command); +@@ -7999,9 +8037,17 @@ fm_directory_view_notify_selection_chang + { + NautilusFile *file; + GList *selection; ++ GtkWindow *window; + + g_return_if_fail (FM_IS_DIRECTORY_VIEW (view)); + ++ selection = fm_directory_view_get_selection (view); ++ ++ window = fm_directory_view_get_containing_window (view); ++ nautilus_debug_log_with_file_list (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, selection, ++ "selection changed in window %p", ++ window); ++ + view->details->selection_was_removed = FALSE; + + if (!view->details->selection_change_is_due_to_shell) { +@@ -8030,7 +8076,6 @@ fm_directory_view_notify_selection_chang + /* If there's exactly one item selected we sniff the slower attributes needed + * to activate a file ahead of time to improve interactive response. + */ +- selection = fm_directory_view_get_selection (view); + + if (eel_g_list_exactly_one_item (selection)) { + file = NAUTILUS_FILE (selection->data); +@@ -8049,9 +8094,9 @@ fm_directory_view_notify_selection_chang + NULL, + NULL); + } +- +- nautilus_file_list_free (selection); + } ++ ++ nautilus_file_list_free (selection); + } + + static gboolean +@@ -8293,6 +8338,7 @@ activate_callback (GList *files, gpointe + char *old_working_dir; + ActivationAction action; + GdkScreen *screen; ++ GtkWindow *window; + + parameters = callback_data; + +@@ -8353,12 +8399,18 @@ activate_callback (GList *files, gpointe + } + } + ++ window = fm_directory_view_get_containing_window (parameters->view); + + launch_desktop_files = g_list_reverse (launch_desktop_files); + for (l = launch_desktop_files; l != NULL; l = l->next) { + file = NAUTILUS_FILE (l->data); + + uri = nautilus_file_get_uri (file); ++ ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "directory view activate_callback launch_desktop_file window=%p: %s", ++ window, uri); ++ + nautilus_launch_desktop_file ( + screen, uri, NULL, + fm_directory_view_get_containing_window (view)); +@@ -8370,6 +8422,11 @@ activate_callback (GList *files, gpointe + file = NAUTILUS_FILE (l->data); + + uri = nautilus_file_get_activation_uri (file); ++ ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "directory view activate_callback launch_application_from_command window=%p: %s", ++ window, uri); ++ + nautilus_launch_application_from_command ( + screen, NULL, uri + strlen (NAUTILUS_COMMAND_SPECIFIER), + NULL, FALSE); +@@ -8389,6 +8446,11 @@ activate_callback (GList *files, gpointe + executable_path = gnome_vfs_get_local_path_from_uri (uri); + quoted_path = g_shell_quote (executable_path); + name = nautilus_file_get_name (file); ++ ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "directory view activate_callback launch_file window=%p: %s", ++ window, quoted_path); ++ + nautilus_launch_application_from_command (screen, name, quoted_path, NULL, FALSE); + g_free (name); + g_free (quoted_path); +@@ -8405,6 +8467,11 @@ activate_callback (GList *files, gpointe + executable_path = gnome_vfs_get_local_path_from_uri (uri); + quoted_path = g_shell_quote (executable_path); + name = nautilus_file_get_name (file); ++ ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "directory view activate_callback launch_in_terminal window=%p: %s", ++ window, quoted_path); ++ + nautilus_launch_application_from_command (screen, name, quoted_path, NULL, TRUE); + g_free (name); + g_free (quoted_path); +@@ -8685,12 +8752,18 @@ fm_directory_view_activate_files (FMDire + char *file_name; + char *timed_wait_prompt; + int file_count; ++ GtkWindow *window; + + g_return_if_fail (FM_IS_DIRECTORY_VIEW (view)); + + if (files == NULL) { + return; + } ++ ++ window = fm_directory_view_get_containing_window (view); ++ nautilus_debug_log_with_file_list (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, files, ++ "fm_directory_view_activate_files window=%p", ++ window); + + file_count = g_list_length (files); + +Index: src/file-manager/fm-error-reporting.c +=================================================================== +RCS file: /cvs/gnome/nautilus/src/file-manager/fm-error-reporting.c,v +retrieving revision 1.43 +diff -u -r1.43 fm-error-reporting.c +--- src/file-manager/fm-error-reporting.c 18 Mar 2006 07:27:37 -0000 1.43 ++++ src/file-manager/fm-error-reporting.c 23 Oct 2006 20:30:50 -0000 +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -319,6 +320,7 @@ + { + char *old_name, *wait_message; + FMRenameData *data; ++ char *uri; + + g_return_if_fail (NAUTILUS_IS_FILE (file)); + g_return_if_fail (new_name != NULL); +@@ -345,6 +347,12 @@ + eel_timed_wait_start (cancel_rename_callback, file, wait_message, + NULL); /* FIXME bugzilla.gnome.org 42395: Parent this? */ + g_free (wait_message); ++ ++ uri = nautilus_file_get_uri (file); ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "rename file old=\"%s\", new=\"%s\"", ++ uri, new_name); ++ g_free (uri); + + /* Start the rename. */ + nautilus_file_rename (file, new_name, +Index: src/file-manager/fm-list-view.c +=================================================================== +RCS file: /cvs/gnome/nautilus/src/file-manager/fm-list-view.c,v +retrieving revision 1.274 +diff -u -r1.274 fm-list-view.c +--- src/file-manager/fm-list-view.c 18 Oct 2006 13:20:44 -0000 1.274 ++++ src/file-manager/fm-list-view.c 23 Oct 2006 20:30:51 -0000 +@@ -54,6 +54,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -785,6 +786,15 @@ + view = FM_LIST_VIEW (callback_data); + + if (fm_list_model_load_subdirectory (view->details->model, path, &directory)) { ++ char *uri; ++ ++ uri = nautilus_directory_get_uri (directory); ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "list view row expanded window=%p: %s", ++ fm_directory_view_get_containing_window (FM_DIRECTORY_VIEW (view)), ++ uri); ++ g_free (uri); ++ + fm_directory_view_add_subdirectory (FM_DIRECTORY_VIEW (view), directory); + + if (nautilus_directory_are_all_files_seen (directory)) { +@@ -848,6 +858,7 @@ + GtkTreeIter parent; + struct UnloadDelayData *unload_data; + GtkTreeModel *model; ++ char *uri; + + view = FM_LIST_VIEW (callback_data); + model = GTK_TREE_MODEL (view->details->model); +@@ -863,6 +874,14 @@ + -1); + } + ++ ++ uri = nautilus_file_get_uri (file); ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "list view row collapsed window=%p: %s", ++ fm_directory_view_get_containing_window (FM_DIRECTORY_VIEW (view)), ++ uri); ++ g_free (uri); ++ + unload_data = g_new (struct UnloadDelayData, 1); + unload_data->view = view; + unload_data->file = file; +Index: src/file-manager/fm-tree-view.c +=================================================================== +RCS file: /cvs/gnome/nautilus/src/file-manager/fm-tree-view.c,v +retrieving revision 1.28 +diff -u -r1.28 fm-tree-view.c +--- src/file-manager/fm-tree-view.c 24 Jul 2006 23:40:48 -0000 1.28 ++++ src/file-manager/fm-tree-view.c 23 Oct 2006 20:30:51 -0000 +@@ -61,6 +61,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -344,12 +345,18 @@ + && eel_str_has_prefix (uri, NAUTILUS_COMMAND_SPECIFIER)) { + + uri += strlen (NAUTILUS_COMMAND_SPECIFIER); ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "tree view launch_application_from_command window=%p: %s", ++ view->details->window, uri); + nautilus_launch_application_from_command (screen, NULL, uri, NULL, FALSE); + + } else if (uri != NULL + && eel_str_has_prefix (uri, NAUTILUS_DESKTOP_COMMAND_SPECIFIER)) { + + file_uri = nautilus_file_get_uri (file); ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "tree view launch_desktop_file window=%p: %s", ++ view->details->window, file_uri); + nautilus_launch_desktop_file (screen, file_uri, NULL, NULL); + g_free (file_uri); + +@@ -362,6 +369,9 @@ + + /* Non-local executables don't get launched. They act like non-executables. */ + if (file_uri == NULL) { ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "tree view window_info_open_location window=%p: %s", ++ view->details->window, uri); + nautilus_window_info_open_location + (view->details->window, + uri, +@@ -369,6 +379,9 @@ + 0, + NULL); + } else { ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "tree view launch_application_from_command window=%p: %s", ++ view->details->window, file_uri); + nautilus_launch_application_from_command (screen, NULL, file_uri, NULL, FALSE); + g_free (file_uri); + } +@@ -380,6 +393,9 @@ + g_free (view->details->selection_location); + } + view->details->selection_location = g_strdup (uri); ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, ++ "tree view window_info_open_location window=%p: %s", ++ view->details->window, uri); + nautilus_window_info_open_location + (view->details->window, + uri, diff --git a/nautilus-default-thumbnail-size.diff b/nautilus-default-thumbnail-size.diff new file mode 100644 index 0000000..8b013e0 --- /dev/null +++ b/nautilus-default-thumbnail-size.diff @@ -0,0 +1,17 @@ +http://bugzilla.gnome.org/show_bug.cgi?id=350972 + +Make the default thumbnail size be 64 pixels, so that it matches the +default size for other icons. This makes the icon views look more +aligned. + +--- nautilus-2.12.1.orig/libnautilus-private/nautilus-icon-factory.h 2005-05-23 08:21:47.000000000 -0500 ++++ nautilus-2.12.1/libnautilus-private/nautilus-icon-factory.h 2005-11-16 18:11:57.000000000 -0600 +@@ -72,7 +72,7 @@ typedef enum { + #define NAUTILUS_ICON_SIZE_LARGER 96 + #define NAUTILUS_ICON_SIZE_LARGEST 192 + +-#define NAUTILUS_ICON_SIZE_THUMBNAIL 96 ++#define NAUTILUS_ICON_SIZE_THUMBNAIL 64 + + /* Maximum size of an icon that the icon factory will ever produce */ + #define NAUTILUS_ICON_MAXIMUM_SIZE 320 diff --git a/nautilus-disable-zoom-control-and-view-as-option-menu.patch b/nautilus-disable-zoom-control-and-view-as-option-menu.patch new file mode 100644 index 0000000..89cb45a --- /dev/null +++ b/nautilus-disable-zoom-control-and-view-as-option-menu.patch @@ -0,0 +1,59 @@ +? depcomp +? nautilus-disable-zoom-control-and-view-as-option-menu.patch +? nautilus-folder-handler.desktop +? stamp-h1 +? src/.nautilus-navigation-window.c.swp +? src/nautilus-navigation-window.c.joe +Index: src/nautilus-navigation-window.c +================================================================================ +--- src/nautilus-navigation-window.c ++++ src/nautilus-navigation-window.c +@@ -145,7 +145,9 @@ + GtkUIManager *ui_manager; + GtkWidget *toolbar; + GtkWidget *location_bar; ++#if 0 + GtkWidget *view_as_menu_vbox; ++#endif + GtkToolItem *item; + GtkWidget *hbox, *vbox, *eventbox, *extras_vbox; + +@@ -246,6 +248,7 @@ + window->search_bar, + TRUE, TRUE, 0); + ++#if 0 + /* Option menu for content view types; it's empty here, filled in when a uri is set. + * Pack it into vbox so it doesn't grow vertically when location bar does. + */ +@@ -258,10 +261,13 @@ + gtk_container_add (GTK_CONTAINER (item), view_as_menu_vbox); + gtk_toolbar_insert (GTK_TOOLBAR (location_bar), + item, -1); ++#endif + + window->view_as_combo_box = gtk_combo_box_new_text (); ++#if 0 + gtk_box_pack_end (GTK_BOX (view_as_menu_vbox), window->view_as_combo_box, TRUE, FALSE, 0); + gtk_widget_show (window->view_as_combo_box); ++#endif + + /* Allocate the zoom control and place on the right next to the menu. + * It gets shown later, if the view-frame contains something zoomable. +@@ -279,13 +285,15 @@ + g_signal_connect_object (window->zoom_control, "zoom_to_default", + G_CALLBACK (nautilus_window_zoom_to_default), + window, G_CONNECT_SWAPPED); +- ++ ++#if 0 + item = gtk_tool_item_new (); + gtk_container_set_border_width (GTK_CONTAINER (item), GNOME_PAD_SMALL); + gtk_widget_show (GTK_WIDGET (item)); + gtk_container_add (GTK_CONTAINER (item), window->zoom_control); + gtk_toolbar_insert (GTK_TOOLBAR (location_bar), + item, 1); ++#endif + + gtk_widget_show (location_bar); + diff --git a/nautilus-docpath.patch b/nautilus-docpath.patch new file mode 100644 index 0000000..efaa1b7 --- /dev/null +++ b/nautilus-docpath.patch @@ -0,0 +1,21 @@ +Index: nautilus.desktop.in +================================================================================ +--- nautilus.desktop.in ++++ nautilus.desktop.in +@@ -1,7 +1,7 @@ + [Desktop Entry] + Encoding=UTF-8 + _Name=File Browser +-_Comment=Browse the file system with the file manager ++_GenericName=Browse the file system with the file manager + TryExec=nautilus + Exec=nautilus --no-desktop --browser %U + Icon=gnome-fs-directory +@@ -10,6 +10,7 @@ + Type=Application + Categories=GNOME;Application;System;Utility;Core; + OnlyShowIn=GNOME; ++DocPath=user-guide#gosnautilus-1 + X-GNOME-Bugzilla-Bugzilla=GNOME + X-GNOME-Bugzilla-Product=nautilus + X-GNOME-Bugzilla-Component=general diff --git a/nautilus-drives-and-volumes-on-desktop.diff b/nautilus-drives-and-volumes-on-desktop.diff new file mode 100644 index 0000000..a83438a --- /dev/null +++ b/nautilus-drives-and-volumes-on-desktop.diff @@ -0,0 +1,1226 @@ +2006-11-08 Federico Mena Quintero + + Fix https://bugzilla.novell.com/show_bug.cgi?id=215351, the icon + for a floppy drive disappears after unmounting the floppy. Also, + unmounting an NFS volume makes the icon disappear. + + Fix the little bug where a recently-unmounted drive still + shows an "Unmount Volume" menu item. + + * libnautilus-private/nautilus-desktop-link-monitor.c + (drive_has_volumes_apart_from): New function; checks whether a + drive has any mounted volumes apart from a given one. We need + this to check that corresponds to a volume that is being + unmounted, since within the volume_unmounted callback, the drive + still thinks it is mounted (as the volume in question has not been + removed from it yet). + (should_show_drive): Check whether the drive has any volumes left + over aside from the volume being unmounted. + (volume_unmounted_callback): Pass the volume to should_show_drive(). + + * libnautilus-private/nautilus-desktop-icon-file.c + (update_info_from_link): If the link acquires a volume, remove the + drive from the corresponding NautilusFile. And the converse: if + the link acquires a drive, remove the volume from the + corresponding NautilusFile. Files can have volumes XOR drives, or + none. This fixes the bug where you mount a drive, then umount the + corresponding volume, and the menu on the drive icon still shows + "unmount volume". + + * libnautilus-private/nautilus-desktop-link.c + (nautilus_desktop_link_update_from_volume): Removed spurious + comment. + +2006-11-07 Federico Mena Quintero + + Deal with a race condition when mounting drives. The callback + from gnome_vfs_drive_mount() can be called before the + GnomeVFSVolumeMonitor is notified that the drive is actually + mounted. + + * src/file-manager/fm-directory-view.c (ActivateParameters): + Replace the "pending_mounts" counter with a list of + drives_being_mounted. + (DriveBeingMounted): New struct used as a closure for a drive + being mounted, or a drive waiting for its corresponding + NautilusFile to be notified of changes from the volume monitor. + (cancel_activate): Replace pending_mounts with + drives_being_mounted. + (activate_activation_uris_ready_callback): Don't use the + not_yet_mounted list. Instead, build the list of + parameters->drives_being_mounted out of DriveBeingMounted + structures. Mount the drives directly here (instead of using + g_list_foreach()) so that we can pass a DriveBeingMounted closure + to gnome_vfs_drive_mount(). + (fm_directory_view_activate_files): Replace pending_mounts with + drives_being_mounted. + (try_to_finish_drive_activation): New function. Moved the code to + finish activation of drives from + activation_drive_mounted_callback() to here. + (activation_drive_mounted_callback): This is our "drive was + mounted" callback, but the GnomeVFSDrive itself may not think that + it is mounted yet. This is a race condition where the + GnomeVFSVolumeMonitor has not been notified yet. In this case, + wait until the corresponding NautilusFile changes; we'll check + again that the drive is mounted in the "changed" callback. + (activation_file_changed_after_drive_mounted): New callback for + NautilusFile::changed. This gets called when a NautilusFile + changes after a drive was reported as being mounted. Here, we try + to finish the drive activation. + +2006-10-05 Federico Mena Quintero + + Support displaying drive icons in the desktop, even if the drives + are not mounted. Do this only for drives which are supposed to be + user-visible (i.e. those that do not support media checks and so + we cannot know when the user inserts media in them). + + Also, support drives with multiple partitions, which will lead to + multiple volumes for the same drive. + + To do this, we add several things: + + 1. The ability for NautilusDesktopLink to represent a drive as + well as a volume. + + 2. The ability to "transform" a NautilusDesktopLink which + represented a drive, into one that represents a volume. This + happens when a drive is mounted. + + 3. Keep the invariant that drives are only displayed if they are + unmounted and user visible. If they are mounted, they get + replaced with volume links. + + * libnautilus-private/nautilus-desktop-link-monitor.c (struct + NautilusDesktopLinkMonitorDetails): Added "connected_id" and + "disconnected_id" fields for the signal IDs of GnomeVFSDrive. + (volume_delete_dialog): Added message about not being able to move + a drive to the trash. Support drives or volumes. + (should_show_drive): New utility function. Drives are shown if + they are user-visible, they are not mounted, and the preference to + show desktop volumes is turned on. + (should_show_volume): New utility function. Volumes are shown if + they are user visible and the preference to show desktop volumes + is turned on. + (create_drive_link): New utility function; creates a + NautilusDesktopLink for a GnomeVFSDrive. + (create_volume_link): Use should_show_volume(). + (link_corresponds_to_drive): New function. A NautilusDesktopLink + corresponds to a drive if it represents the drive itself, or if it + represents a volume relative to that drive. + (find_unique_link_for_drive): New function. Returns the + NautilusDesktopLink in the desktop that corresponds uniquely to a + given drive; if there is more than one volume link for a drive + (e.g. a drive with multiple partitions), returns NULL. + (drive_connected_callback): New callback. When a drive is + connected, we create a link for it if appropriate. + (drive_disconnected_callback): New callback. When a drive is + disconnected, we remove all the links that correspond to it: a + single drive link for an unmounted drive, or one or more volume + links for a mounted drive. + (volume_mounted_callback): If the volume has a drive, and there is + an existing link for that drive, update the link to represent the + volume instead. Otherwise, create volume link as usual. + (find_link_for_volume): New utility function; returns the link on + the desktop which corresponds to a particular volume. + (volume_unmounted_callback): If unmounting a volume would yield a + drive that is user visible, transform the corresponding link from + representing the volume, into one that represents the drive. + Otherwise, remove the link as usual. + (refresh_volume_links): New function; does the initial population + of the links for drives and volumes. + (desktop_volumes_visible_changed): New callback; use + refresh_volume_links(). + (nautilus_desktop_link_monitor_init): Use refresh_volume_links() + instead of doing things by hand here. Also, connect to + "drive_connected" and "drive_disconnected" on the volume monitor. + + * libnautilus-private/nautilus-desktop-icon-file.c + (update_info_from_link): Accept a drive or a volume, not just + volumes. + + * libnautilus-private/nautilus-desktop-link.h + (nautilus_desktop_link_new_from_drive_or_volume): New prototype. + Replaces nautilus_desktop_link_new_from_volume(). + (nautilus_desktop_link_get_drive_or_volume): New prototype. + Replaces nautilus_desktop_link_get_volume(). + (nautilus_desktop_link_update_from_volume): New prototype. + + * libnautilus-private/nautilus-desktop-link.c (struct + NautilusDesktopLinkDetails): Replaced the "volume" field with + "drive_or_volume". + (reread_drive_or_volume): Refresh the link as appropriate from a + drive or a volume. + (desktop_link_finalize): Unref the drive or volume appropriately. + (nautilus_desktop_link_new_from_drive_or_volume): Replacement for + nautilus_desktop_link_new_from_volume(). + (nautilus_desktop_link_get_drive_or_volume): Replacement for + nautilus_desktop_link_get_volume(). + (nautilus_desktop_link_update_from_volume): New public function; + replaces nautilus_desktop_link_new_from_volume(). Updates the + link's information from a volume. This does the actual + transformation of a link from a drive to volume when an unmounted + drive gets first mounted, and vice-versa. + +--- nautilus/libnautilus-private/nautilus-desktop-icon-file.c 2006-03-20 07:35:57.000000000 -0600 ++++ nautilus/libnautilus-private/nautilus-desktop-icon-file.c 2006-11-08 13:17:55.000000000 -0600 +@@ -179,7 +179,7 @@ update_info_from_link (NautilusDesktopIc + NautilusFile *file; + GnomeVFSFileInfo *file_info; + NautilusDesktopLink *link; +- GnomeVFSVolume *volume; ++ GObject *drive_or_volume; + + file = NAUTILUS_FILE (icon_file); + +@@ -216,9 +216,25 @@ update_info_from_link (NautilusDesktopIc + GNOME_VFS_FILE_INFO_FIELDS_ACCESS | + GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT; + +- volume = nautilus_desktop_link_get_volume (link); +- nautilus_file_set_volume (file, volume); +- gnome_vfs_volume_unref (volume); ++ drive_or_volume = nautilus_desktop_link_get_drive_or_volume (link); ++ ++ if (GNOME_IS_VFS_VOLUME (drive_or_volume)) { ++ GnomeVFSVolume *volume; ++ ++ volume = GNOME_VFS_VOLUME (drive_or_volume); ++ nautilus_file_set_volume (file, volume); ++ gnome_vfs_volume_unref (volume); ++ ++ nautilus_file_set_drive (file, NULL); ++ } else { ++ GnomeVFSDrive *drive; ++ ++ drive = GNOME_VFS_DRIVE (drive_or_volume); ++ nautilus_file_set_drive (file, drive); ++ gnome_vfs_drive_unref (drive); ++ ++ nautilus_file_set_volume (file, NULL); ++ } + + file->details->file_info_is_up_to_date = TRUE; + +--- nautilus/libnautilus-private/nautilus-desktop-link-monitor.c 2006-03-20 07:35:57.000000000 -0600 ++++ nautilus/libnautilus-private/nautilus-desktop-link-monitor.c 2006-11-08 11:40:09.000000000 -0600 +@@ -52,13 +52,14 @@ struct NautilusDesktopLinkMonitorDetails + NautilusDesktopLink *trash_link; + NautilusDesktopLink *network_link; + ++ gulong connected_id; ++ gulong disconnected_id; + gulong mount_id; + gulong unmount_id; + + GList *volume_links; + }; + +- + static void nautilus_desktop_link_monitor_init (gpointer object, + gpointer klass); + static void nautilus_desktop_link_monitor_class_init (gpointer klass); +@@ -69,6 +70,8 @@ EEL_CLASS_BOILERPLATE (NautilusDesktopLi + + static NautilusDesktopLinkMonitor *the_link_monitor = NULL; + ++static void refresh_volume_links (NautilusDesktopLinkMonitor *monitor); ++ + static void + destroy_desktop_link_monitor (void) + { +@@ -104,41 +107,48 @@ static void + volume_delete_dialog (GtkWidget *parent_view, + NautilusDesktopLink *link) + { +- GnomeVFSVolume *volume; ++ GObject *drive_or_volume; + char *dialog_str; ++ char *detail_str; + char *display_name; + +- volume = nautilus_desktop_link_get_volume (link); ++ drive_or_volume = nautilus_desktop_link_get_drive_or_volume (link); ++ if (drive_or_volume == NULL) ++ return; ++ ++ display_name = nautilus_desktop_link_get_display_name (link); + +- if (volume != NULL) { +- display_name = nautilus_desktop_link_get_display_name (link); ++ if (GNOME_IS_VFS_VOLUME (drive_or_volume)) { + dialog_str = g_strdup_printf (_("You cannot move the volume \"%s\" to the trash."), + display_name); +- g_free (display_name); + +- if (eject_for_type (gnome_vfs_volume_get_device_type (volume))) { +- eel_run_simple_dialog +- (parent_view, +- FALSE, +- GTK_MESSAGE_ERROR, +- dialog_str, +- _("If you want to eject the volume, please use \"Eject\" in the " +- "popup menu of the volume."), +- GTK_STOCK_OK, NULL); ++ if (eject_for_type (gnome_vfs_volume_get_device_type (GNOME_VFS_VOLUME (drive_or_volume)))) { ++ detail_str = _("If you want to eject the volume, please use \"Eject\" in the " ++ "popup menu of the volume."); + } else { +- eel_run_simple_dialog +- (parent_view, +- FALSE, +- GTK_MESSAGE_ERROR, +- dialog_str, +- _("If you want to unmount the volume, please use \"Unmount Volume\" in the " +- "popup menu of the volume."), +- GTK_STOCK_OK, NULL); ++ detail_str = _("If you want to unmount the volume, please use \"Unmount Volume\" in the " ++ "popup menu of the volume."); + } ++ } else { ++ dialog_str = g_strdup_printf (_("You cannot move the drive \"%s\" to the trash."), ++ display_name); + +- gnome_vfs_volume_unref (volume); +- g_free (dialog_str); ++ detail_str = NULL; ++ } ++ ++ eel_run_simple_dialog (parent_view, FALSE, GTK_MESSAGE_ERROR, ++ dialog_str, ++ detail_str, ++ NULL, GTK_STOCK_OK, NULL); ++ ++ if (GNOME_IS_VFS_VOLUME (drive_or_volume)) { ++ gnome_vfs_volume_unref (GNOME_VFS_VOLUME (drive_or_volume)); ++ } else { ++ gnome_vfs_drive_unref (GNOME_VFS_DRIVE (drive_or_volume)); + } ++ ++ g_free (display_name); ++ g_free (dialog_str); + } + + void +@@ -196,6 +206,67 @@ nautilus_desktop_link_monitor_make_filen + return unique_name; + } + ++static gboolean ++drive_has_volumes_apart_from (GnomeVFSDrive *drive, GnomeVFSVolume *possibly_last_volume) ++{ ++ GList *volumes; ++ GList *l; ++ gboolean has_other_volumes; ++ ++ has_other_volumes = FALSE; ++ ++ volumes = gnome_vfs_drive_get_mounted_volumes (drive); ++ ++ for (l = volumes; l; l = l->next) { ++ GnomeVFSVolume *volume; ++ ++ volume = GNOME_VFS_VOLUME (l->data); ++ if (volume != possibly_last_volume) ++ has_other_volumes = TRUE; ++ ++ gnome_vfs_volume_unref (volume); ++ } ++ ++ g_list_free (volumes); ++ ++ return has_other_volumes; ++} ++ ++static gboolean ++should_show_drive (GnomeVFSDrive *drive, GnomeVFSVolume *possibly_last_volume) ++{ ++ gboolean should_show; ++ ++ if (possibly_last_volume) ++ should_show = !drive_has_volumes_apart_from (drive, possibly_last_volume); ++ else ++ should_show = !gnome_vfs_drive_is_mounted (drive); ++ ++ return (gnome_vfs_drive_is_user_visible (drive) ++ && should_show ++ && eel_preferences_get_boolean (NAUTILUS_PREFERENCES_DESKTOP_VOLUMES_VISIBLE)); ++} ++ ++static gboolean ++should_show_volume (GnomeVFSVolume *volume) ++{ ++ return (gnome_vfs_volume_is_user_visible (volume) ++ && eel_preferences_get_boolean (NAUTILUS_PREFERENCES_DESKTOP_VOLUMES_VISIBLE)); ++} ++ ++static void ++create_drive_link (NautilusDesktopLinkMonitor *monitor, ++ GnomeVFSDrive *drive) ++{ ++ NautilusDesktopLink *link; ++ ++ if (!should_show_drive (drive, NULL)) ++ return; ++ ++ link = nautilus_desktop_link_new_from_drive_or_volume (G_OBJECT (drive)); ++ monitor->details->volume_links = g_list_prepend (monitor->details->volume_links, link); ++} ++ + static void + create_volume_link (NautilusDesktopLinkMonitor *monitor, + GnomeVFSVolume *volume) +@@ -204,24 +275,198 @@ create_volume_link (NautilusDesktopLinkM + + link = NULL; + +- if (!gnome_vfs_volume_is_user_visible (volume)) { ++ if (!should_show_volume (volume)) { + return; + } + +- if (eel_preferences_get_boolean (NAUTILUS_PREFERENCES_DESKTOP_VOLUMES_VISIBLE)) { +- link = nautilus_desktop_link_new_from_volume (volume); +- monitor->details->volume_links = g_list_prepend (monitor->details->volume_links, link); ++ link = nautilus_desktop_link_new_from_drive_or_volume (G_OBJECT (volume)); ++ monitor->details->volume_links = g_list_prepend (monitor->details->volume_links, link); ++} ++ ++static gboolean ++link_corresponds_to_drive (NautilusDesktopLink *link, ++ GnomeVFSDrive *drive) ++{ ++ GObject *drive_or_volume; ++ gboolean same; ++ ++ drive_or_volume = nautilus_desktop_link_get_drive_or_volume (link); ++ same = FALSE; ++ ++ if (GNOME_IS_VFS_DRIVE (drive_or_volume)) { ++ GnomeVFSDrive *link_drive; ++ ++ link_drive = GNOME_VFS_DRIVE (drive_or_volume); ++ ++ if (link_drive == drive) { ++ same = TRUE; ++ } ++ ++ gnome_vfs_drive_unref (link_drive); ++ } else { ++ GnomeVFSVolume *link_volume; ++ GnomeVFSDrive *link_drive; ++ ++ link_volume = GNOME_VFS_VOLUME (drive_or_volume); ++ link_drive = gnome_vfs_volume_get_drive (link_volume); ++ ++ if (link_drive == drive) { ++ same = TRUE; ++ } ++ ++ if (link_drive) { ++ gnome_vfs_drive_unref (link_drive); ++ } ++ ++ gnome_vfs_volume_unref (link_volume); ++ } ++ ++ return same; ++} ++ ++static NautilusDesktopLink * ++find_unique_link_for_drive (NautilusDesktopLinkMonitor *monitor, ++ GnomeVFSDrive *drive) ++{ ++ GList *l; ++ NautilusDesktopLink *first_volume_link_for_drive; ++ ++ first_volume_link_for_drive = NULL; ++ ++ for (l = monitor->details->volume_links; l; l = l->next) { ++ NautilusDesktopLink *link; ++ ++ link = NAUTILUS_DESKTOP_LINK (l->data); ++ ++ if (link_corresponds_to_drive (link, drive)) { ++ if (first_volume_link_for_drive == NULL) { ++ first_volume_link_for_drive = link; ++ } else { ++ return NULL; /* We know that we have more than ++ * one link for volumes that belong ++ * to the same drive, so there is ++ * no unique link for the drive. ++ */ ++ } ++ } + } ++ ++ return first_volume_link_for_drive; ++} ++ ++static void ++drive_connected_callback (GnomeVFSVolumeMonitor *volume_monitor, ++ GnomeVFSDrive *drive, ++ NautilusDesktopLinkMonitor *monitor) ++{ ++ NautilusDesktopLink *link; ++ ++ /* fprintf (stderr, "drive connected!\n"); */ ++ ++ link = find_unique_link_for_drive (monitor, drive); ++ ++ if (link) ++ return; /* huh, we already have a link for that drive... */ ++ ++ create_drive_link (monitor, drive); + } + ++static void ++drive_disconnected_callback (GnomeVFSVolumeMonitor *volume_monitor, ++ GnomeVFSDrive *drive, ++ NautilusDesktopLinkMonitor *monitor) ++{ ++ GList *l; ++ ++ /* fprintf (stderr, "drive disconnected!\n"); */ ++ ++ /* Remove all the links that correspond to that drive, even if they have ++ * mounted volumes. ++ */ ++ ++ l = monitor->details->volume_links; ++ ++ while (l) { ++ GList *next; ++ NautilusDesktopLink *link; + ++ next = l->next; ++ link = NAUTILUS_DESKTOP_LINK (l->data); ++ ++ if (link_corresponds_to_drive (link, drive)) { ++ g_object_unref (link); ++ monitor->details->volume_links = g_list_remove_link (monitor->details->volume_links, l); ++ g_list_free_1 (l); ++ } ++ ++ l = next; ++ } ++} + + static void + volume_mounted_callback (GnomeVFSVolumeMonitor *volume_monitor, + GnomeVFSVolume *volume, + NautilusDesktopLinkMonitor *monitor) + { +- create_volume_link (monitor, volume); ++ GnomeVFSDrive *drive; ++ ++ /* fprintf (stderr, "volume mounted!\n"); */ ++ ++ drive = gnome_vfs_volume_get_drive (volume); ++ ++ if (drive) { ++ NautilusDesktopLink *link; ++ ++ /* We may have an existing link for the drive, which needs to be ++ * updated for the volume. Or we may have several volumes ++ * within the same drive; in this case, we need to create a ++ * completely new link. ++ */ ++ ++ link = find_unique_link_for_drive (monitor, drive); ++ gnome_vfs_drive_unref (drive); ++ ++ if (link) { ++ /* fprintf (stderr, "updating desktop link from mounted volume\n"); */ ++ nautilus_desktop_link_update_from_volume (link, volume); ++ } else { ++ /* fprintf (stderr, "creating desktop link\n"); */ ++ create_volume_link (monitor, volume); ++ } ++ } else { ++ /* fprintf (stderr, "creating desktop link\n"); */ ++ create_volume_link (monitor, volume); ++ } ++} ++ ++static NautilusDesktopLink * ++find_link_for_volume (NautilusDesktopLinkMonitor *monitor, ++ GnomeVFSVolume *volume) ++{ ++ GList *l; ++ ++ for (l = monitor->details->volume_links; l != NULL; l = l->next) { ++ NautilusDesktopLink *link; ++ GObject *drive_or_volume; ++ gboolean same; ++ ++ link = NAUTILUS_DESKTOP_LINK (l->data); ++ drive_or_volume = nautilus_desktop_link_get_drive_or_volume (link); ++ ++ same = FALSE; ++ ++ if (GNOME_IS_VFS_VOLUME (drive_or_volume)) { ++ same = (GNOME_VFS_VOLUME (drive_or_volume) == volume); ++ gnome_vfs_volume_unref (GNOME_VFS_VOLUME (drive_or_volume)); ++ } else { ++ gnome_vfs_drive_unref (GNOME_VFS_DRIVE (drive_or_volume)); ++ } ++ ++ if (same) ++ return link; ++ } ++ ++ return NULL; + } + + +@@ -230,22 +475,31 @@ volume_unmounted_callback (GnomeVFSVolum + GnomeVFSVolume *volume, + NautilusDesktopLinkMonitor *monitor) + { +- GList *l; + NautilusDesktopLink *link; +- GnomeVFSVolume *other_volume; ++ GnomeVFSDrive *drive; ++ gboolean remove_link; + +- link = NULL; +- for (l = monitor->details->volume_links; l != NULL; l = l->next) { +- other_volume = nautilus_desktop_link_get_volume (l->data); +- if (volume == other_volume) { +- gnome_vfs_volume_unref (other_volume); +- link = l->data; +- break; ++ /* fprintf (stderr, "volume unmounted!\n"); */ ++ ++ link = find_link_for_volume (monitor, volume); ++ if (!link) { ++ return; ++ } ++ ++ remove_link = FALSE; ++ ++ drive = gnome_vfs_volume_get_drive (volume); ++ if (drive) { ++ if (should_show_drive (drive, volume)) { ++ nautilus_desktop_link_update_from_volume (link, volume); ++ } else { ++ remove_link = TRUE; + } +- gnome_vfs_volume_unref (other_volume); ++ } else { ++ remove_link = TRUE; + } + +- if (link) { ++ if (remove_link) { + monitor->details->volume_links = g_list_remove (monitor->details->volume_links, link); + g_object_unref (link); + } +@@ -322,32 +576,60 @@ desktop_network_visible_changed (gpointe + } + + static void +-desktop_volumes_visible_changed (gpointer callback_data) ++refresh_volume_links (NautilusDesktopLinkMonitor *monitor) + { + GnomeVFSVolumeMonitor *volume_monitor; +- NautilusDesktopLinkMonitor *monitor; +- GList *l, *volumes; + + volume_monitor = gnome_vfs_get_volume_monitor (); +- monitor = NAUTILUS_DESKTOP_LINK_MONITOR (callback_data); ++ ++ /* Free existing links */ ++ ++ g_list_foreach (monitor->details->volume_links, (GFunc)g_object_unref, NULL); ++ g_list_free (monitor->details->volume_links); ++ monitor->details->volume_links = NULL; ++ ++ /* Scan the links again */ + + if (eel_preferences_get_boolean (NAUTILUS_PREFERENCES_DESKTOP_VOLUMES_VISIBLE)) { +- if (monitor->details->volume_links == NULL) { +- volumes = gnome_vfs_volume_monitor_get_mounted_volumes (volume_monitor); +- for (l = volumes; l != NULL; l = l->next) { +- create_volume_link (monitor, l->data); +- gnome_vfs_volume_unref (l->data); +- } +- g_list_free (volumes); ++ GList *l; ++ GList *volumes, *drives; ++ ++ /* Unmounted drives */ ++ ++ drives = gnome_vfs_volume_monitor_get_connected_drives (volume_monitor); ++ for (l = drives; l != NULL; l = l->next) { ++ GnomeVFSDrive *drive; ++ ++ drive = GNOME_VFS_DRIVE (l->data); ++ create_drive_link (monitor, drive); ++ gnome_vfs_drive_unref (drive); + } +- } else { +- g_list_foreach (monitor->details->volume_links, (GFunc)g_object_unref, NULL); +- g_list_free (monitor->details->volume_links); +- monitor->details->volume_links = NULL; ++ g_list_free (drives); ++ ++ /* Volumes */ ++ ++ volumes = gnome_vfs_volume_monitor_get_mounted_volumes (volume_monitor); ++ for (l = volumes; l != NULL; l = l->next) { ++ GnomeVFSVolume *volume; ++ ++ volume = GNOME_VFS_VOLUME (l->data); ++ create_volume_link (monitor, volume); ++ gnome_vfs_volume_unref (volume); ++ } ++ g_list_free (volumes); + } + } + + static void ++desktop_volumes_visible_changed (gpointer callback_data) ++{ ++ NautilusDesktopLinkMonitor *monitor; ++ ++ monitor = NAUTILUS_DESKTOP_LINK_MONITOR (callback_data); ++ refresh_volume_links (monitor); ++} ++ ++static void + create_link_and_add_preference (NautilusDesktopLink **link_ref, + NautilusDesktopLinkType link_type, + const char *preference_key, +@@ -365,8 +647,6 @@ static void + nautilus_desktop_link_monitor_init (gpointer object, gpointer klass) + { + NautilusDesktopLinkMonitor *monitor; +- GList *l, *volumes; +- GnomeVFSVolume *volume; + GnomeVFSVolumeMonitor *volume_monitor; + + monitor = NAUTILUS_DESKTOP_LINK_MONITOR (object); +@@ -404,22 +684,22 @@ nautilus_desktop_link_monitor_init (gpoi + desktop_network_visible_changed, + monitor); + +- /* Volume links */ ++ /* Drives and volumes */ + +- volume_monitor = gnome_vfs_get_volume_monitor (); +- +- volumes = gnome_vfs_volume_monitor_get_mounted_volumes (volume_monitor); +- for (l = volumes; l != NULL; l = l->next) { +- volume = l->data; +- create_volume_link (monitor, volume); +- gnome_vfs_volume_unref (volume); +- } +- g_list_free (volumes); ++ refresh_volume_links (monitor); + + eel_preferences_add_callback (NAUTILUS_PREFERENCES_DESKTOP_VOLUMES_VISIBLE, + desktop_volumes_visible_changed, + monitor); + ++ volume_monitor = gnome_vfs_get_volume_monitor (); ++ ++ monitor->details->connected_id = g_signal_connect_object (volume_monitor, "drive_connected", ++ G_CALLBACK (drive_connected_callback), ++ monitor, 0); ++ monitor->details->disconnected_id = g_signal_connect_object (volume_monitor, "drive_disconnected", ++ G_CALLBACK (drive_disconnected_callback), ++ monitor, 0); + monitor->details->mount_id = g_signal_connect_object (volume_monitor, "volume_mounted", + G_CALLBACK (volume_mounted_callback), monitor, 0); + monitor->details->unmount_id = g_signal_connect_object (volume_monitor, "volume_unmounted", +--- nautilus/libnautilus-private/nautilus-desktop-link.c 2006-03-20 07:35:57.000000000 -0600 ++++ nautilus/libnautilus-private/nautilus-desktop-link.c 2006-11-08 13:15:10.000000000 -0600 +@@ -53,8 +53,8 @@ struct NautilusDesktopLinkDetails { + /* Just for trash icons: */ + gulong trash_state_handler; + +- /* Just for volume icons: */ +- GnomeVFSVolume *volume; ++ /* Just for drive/volume icons */ ++ GObject *drive_or_volume; + }; + + static void nautilus_desktop_link_init (gpointer object, +@@ -192,28 +192,52 @@ nautilus_desktop_link_new (NautilusDeskt + return link; + } + +-NautilusDesktopLink * +-nautilus_desktop_link_new_from_volume (GnomeVFSVolume *volume) ++static void ++reread_drive_or_volume (NautilusDesktopLink *link) + { +- NautilusDesktopLink *link; +- GnomeVFSDrive *drive; + char *name, *filename; ++ char *display_name, *activation_uri, *icon; + +- link = NAUTILUS_DESKTOP_LINK (g_object_new (NAUTILUS_TYPE_DESKTOP_LINK, NULL)); +- +- link->details->type = NAUTILUS_DESKTOP_LINK_VOLUME; ++ g_assert (link->details->type == NAUTILUS_DESKTOP_LINK_VOLUME); ++ g_assert (link->details->drive_or_volume != NULL); ++ ++ g_free (link->details->filename); ++ g_free (link->details->display_name); ++ g_free (link->details->activation_uri); ++ g_free (link->details->icon); + +- link->details->volume = gnome_vfs_volume_ref (volume); ++ if (GNOME_IS_VFS_VOLUME (link->details->drive_or_volume)) { ++ GnomeVFSVolume *volume; ++ GnomeVFSDrive *drive; ++ ++ volume = GNOME_VFS_VOLUME (link->details->drive_or_volume); ++ ++ /* We try to use the drive name to get somewhat stable filenames ++ for metadata */ ++ drive = gnome_vfs_volume_get_drive (volume); ++ if (drive != NULL) { ++ name = gnome_vfs_drive_get_display_name (drive); ++ } else { ++ name = gnome_vfs_volume_get_display_name (volume); ++ } ++ gnome_vfs_drive_unref (drive); + +- /* We try to use the drive name to get somewhat stable filenames +- for metadata */ +- drive = gnome_vfs_volume_get_drive (volume); +- if (drive != NULL) { +- name = gnome_vfs_drive_get_display_name (drive); ++ display_name = gnome_vfs_volume_get_display_name (volume); ++ activation_uri = gnome_vfs_volume_get_activation_uri (volume); ++ icon = gnome_vfs_volume_get_icon (volume); + } else { +- name = gnome_vfs_volume_get_display_name (volume); ++ GnomeVFSDrive *drive; ++ ++ g_assert (GNOME_IS_VFS_DRIVE (link->details->drive_or_volume)); ++ ++ drive = GNOME_VFS_DRIVE (link->details->drive_or_volume); ++ ++ name = gnome_vfs_drive_get_display_name (drive); ++ ++ display_name = gnome_vfs_drive_get_display_name (drive); ++ activation_uri = NULL; /* We don't know the activation URI until the drive gets mounted */ ++ icon = gnome_vfs_drive_get_icon (drive); + } +- gnome_vfs_drive_unref (drive); + + filename = g_strconcat (name, ".volume", NULL); + link->details->filename = +@@ -221,21 +245,51 @@ nautilus_desktop_link_new_from_volume (G + filename); + g_free (filename); + g_free (name); ++ ++ link->details->display_name = display_name; ++ link->details->activation_uri = activation_uri; ++ link->details->icon = icon; ++} ++ ++NautilusDesktopLink * ++nautilus_desktop_link_new_from_drive_or_volume (GObject *object) ++{ ++ NautilusDesktopLink *link; ++ gboolean is_volume; ++ ++ is_volume = GNOME_IS_VFS_VOLUME (object); ++ ++ g_return_val_if_fail (GNOME_IS_VFS_DRIVE (object) || is_volume, NULL); ++ ++ link = NAUTILUS_DESKTOP_LINK (g_object_new (NAUTILUS_TYPE_DESKTOP_LINK, NULL)); + +- link->details->display_name = gnome_vfs_volume_get_display_name (volume); +- +- link->details->activation_uri = gnome_vfs_volume_get_activation_uri (volume); +- link->details->icon = gnome_vfs_volume_get_icon (volume); ++ link->details->type = NAUTILUS_DESKTOP_LINK_VOLUME; + ++ if (is_volume) { ++ GnomeVFSVolume *volume; ++ ++ volume = gnome_vfs_volume_ref (GNOME_VFS_VOLUME (object)); ++ link->details->drive_or_volume = G_OBJECT (volume); ++ } else { ++ GnomeVFSDrive *drive; ++ ++ drive = gnome_vfs_drive_ref (GNOME_VFS_DRIVE (object)); ++ link->details->drive_or_volume = G_OBJECT (drive); ++ } ++ ++ reread_drive_or_volume (link); + create_icon_file (link); + + return link; + } + +-GnomeVFSVolume * +-nautilus_desktop_link_get_volume (NautilusDesktopLink *link) ++GObject * ++nautilus_desktop_link_get_drive_or_volume (NautilusDesktopLink *link) + { +- return gnome_vfs_volume_ref (link->details->volume); ++ if (GNOME_IS_VFS_VOLUME (link->details->drive_or_volume)) ++ return G_OBJECT (gnome_vfs_volume_ref (GNOME_VFS_VOLUME (link->details->drive_or_volume))); ++ else ++ return G_OBJECT (gnome_vfs_drive_ref (GNOME_VFS_DRIVE (link->details->drive_or_volume))); + } + + +@@ -389,7 +443,11 @@ desktop_link_finalize (GObject *object) + } + + if (link->details->type == NAUTILUS_DESKTOP_LINK_VOLUME) { +- gnome_vfs_volume_unref (link->details->volume); ++ if (GNOME_IS_VFS_VOLUME (link->details->drive_or_volume)) { ++ gnome_vfs_volume_unref (GNOME_VFS_VOLUME (link->details->drive_or_volume)); ++ } else { ++ gnome_vfs_drive_unref (GNOME_VFS_DRIVE (link->details->drive_or_volume)); ++ } + } + + g_free (link->details->filename); +@@ -411,3 +469,61 @@ nautilus_desktop_link_class_init (gpoint + object_class->finalize = desktop_link_finalize; + + } ++ ++void ++nautilus_desktop_link_update_from_volume (NautilusDesktopLink *link, ++ GnomeVFSVolume *volume) ++{ ++ g_return_if_fail (NAUTILUS_IS_DESKTOP_LINK (link)); ++ g_return_if_fail (GNOME_IS_VFS_VOLUME (volume)); ++ ++ g_assert (link->details->type == NAUTILUS_DESKTOP_LINK_VOLUME); ++ g_assert (link->details->drive_or_volume != NULL); ++ ++ if (GNOME_IS_VFS_DRIVE (link->details->drive_or_volume)) { ++ GnomeVFSDrive *drive; ++ ++ drive = gnome_vfs_volume_get_drive (volume); ++ ++ g_assert (G_OBJECT (drive) == G_OBJECT (link->details->drive_or_volume)); ++ gnome_vfs_drive_unref (drive); ++ ++ /* The link is for a drive. If the new volume is mounted, ++ * replace the link's object with the volume. If the new volume ++ * is unmounted, just refresh the link (who knows why we didn't ++ * get the mount notification before). ++ */ ++ ++ if (gnome_vfs_volume_is_mounted (volume)) { ++ gnome_vfs_drive_unref (GNOME_VFS_DRIVE (link->details->drive_or_volume)); ++ ++ gnome_vfs_volume_ref (volume); ++ link->details->drive_or_volume = G_OBJECT (volume); ++ } ++ ++ /* The link will get updated below */ ++ } else { ++ g_assert (GNOME_IS_VFS_VOLUME (link->details->drive_or_volume)); ++ g_assert (GNOME_VFS_VOLUME (link->details->drive_or_volume) == volume); ++ ++ /* If the volume got unmounted, restore the link's object to the ++ * corresponding drive. Otherwise, we shouldn't need to be ++ * called, but just update the link in that case. ++ */ ++ ++ if (!gnome_vfs_volume_is_mounted (volume)) { ++ GnomeVFSDrive *drive; ++ ++ drive = gnome_vfs_volume_get_drive (volume); ++ ++ gnome_vfs_volume_unref (GNOME_VFS_VOLUME (link->details->drive_or_volume)); ++ ++ link->details->drive_or_volume = G_OBJECT (drive); ++ } ++ ++ /* The link will get updated below */ ++ } ++ ++ reread_drive_or_volume (link); ++ nautilus_desktop_link_changed (link); ++} +--- nautilus/libnautilus-private/nautilus-desktop-link.h 10 Dec 2005 02:40:35 -0000 1.4 ++++ nautilus/libnautilus-private/nautilus-desktop-link.h 6 Oct 2006 00:32:43 -0000 +@@ -26,6 +26,7 @@ + #define NAUTILUS_DESKTOP_LINK_H + + #include ++#include + #include + + #define NAUTILUS_TYPE_DESKTOP_LINK \ +@@ -61,7 +62,7 @@ typedef enum { + GType nautilus_desktop_link_get_type (void); + + NautilusDesktopLink * nautilus_desktop_link_new (NautilusDesktopLinkType type); +-NautilusDesktopLink * nautilus_desktop_link_new_from_volume (GnomeVFSVolume *volume); ++NautilusDesktopLink * nautilus_desktop_link_new_from_drive_or_volume (GObject *object); + NautilusDesktopLinkType nautilus_desktop_link_get_link_type (NautilusDesktopLink *link); + char * nautilus_desktop_link_get_file_name (NautilusDesktopLink *link); + char * nautilus_desktop_link_get_display_name (NautilusDesktopLink *link); +@@ -70,10 +71,12 @@ char * nautilus_desktop + gboolean nautilus_desktop_link_get_date (NautilusDesktopLink *link, + NautilusDateType date_type, + time_t *date); +-GnomeVFSVolume * nautilus_desktop_link_get_volume (NautilusDesktopLink *link); ++GObject * nautilus_desktop_link_get_drive_or_volume (NautilusDesktopLink *link); + + gboolean nautilus_desktop_link_can_rename (NautilusDesktopLink *link); + gboolean nautilus_desktop_link_rename (NautilusDesktopLink *link, + const char *name); ++void nautilus_desktop_link_update_from_volume (NautilusDesktopLink *link, ++ GnomeVFSVolume *volume); + + #endif /* NAUTILUS_DESKTOP_LINK_H */ +--- nautilus/src/file-manager/fm-directory-view.c 2006-11-07 19:43:42.000000000 -0600 ++++ nautilus/src/file-manager/fm-directory-view.c 2006-11-07 19:44:17.000000000 -0600 +@@ -303,11 +303,19 @@ typedef struct { + NautilusWindowOpenMode mode; + NautilusWindowOpenFlags flags; + gboolean mount_success; +- unsigned int pending_mounts; ++ GList *drives_being_mounted; + gboolean cancelled; + } ActivateParameters; + + typedef struct { ++ ActivateParameters *parameters; ++ ++ GnomeVFSDrive *drive; ++ NautilusFile *file; ++ guint file_changed_id; ++} DriveBeingMounted; ++ ++typedef struct { + NautilusFile *file; + NautilusDirectory *directory; + } FileAndDirectory; +@@ -8184,7 +8192,7 @@ cancel_activate (gpointer callback_data) + + parameters->cancelled = TRUE; + +- if (parameters->pending_mounts == 0) { ++ if (parameters->drives_being_mounted == NULL) { + nautilus_file_list_cancel_call_when_ready (parameters->files_handle); + nautilus_file_list_free (parameters->files); + g_free (parameters); +@@ -8556,16 +8564,81 @@ activate_callback (GList *files, gpointe + } + + static void ++try_to_finish_drive_activation (ActivateParameters *parameters) ++{ ++ if (parameters->drives_being_mounted != NULL) { ++ /* wait for other mounts to finish... */ ++ return; ++ } ++ ++ if (parameters->cancelled || !parameters->mount_success) { ++ stop_activate (parameters); ++ ++ nautilus_file_list_free (parameters->files); ++ g_free (parameters); ++ return; ++ } ++ ++ /* all drives were mounted successfully */ ++ activate_activation_uris_ready_callback (parameters->files, ++ parameters); ++} ++ ++static void ++remove_drive_being_mounted (DriveBeingMounted *drive_being_mounted) ++{ ++ ActivateParameters *parameters; ++ ++ parameters = drive_being_mounted->parameters; ++ ++ if (drive_being_mounted->file_changed_id != 0) { ++ g_signal_handler_disconnect (drive_being_mounted->file, drive_being_mounted->file_changed_id); ++ } ++ ++ nautilus_file_unref (drive_being_mounted->file); ++ gnome_vfs_drive_unref (drive_being_mounted->drive); ++ ++ parameters->drives_being_mounted = g_list_remove (parameters->drives_being_mounted, ++ drive_being_mounted); ++ g_free (drive_being_mounted); ++} ++ ++static void ++activation_file_changed_after_drive_mounted (NautilusFile *file, ++ gpointer data) ++{ ++ DriveBeingMounted *drive_being_mounted; ++ ActivateParameters *parameters; ++ ++ drive_being_mounted = data; ++ parameters = drive_being_mounted->parameters; ++ ++ if (!gnome_vfs_drive_is_mounted (drive_being_mounted->drive)) { ++ /* Huh? The NautilusFile changed, but the drive is not mounted ++ * yet. So, wait some more until the file gets another change ++ * and the drive gets mounted. ++ */ ++ return; ++ } ++ ++ remove_drive_being_mounted (drive_being_mounted); ++ ++ try_to_finish_drive_activation (parameters); ++} ++ ++static void + activation_drive_mounted_callback (gboolean succeeded, + char *error, + char *detailed_error, + gpointer callback_data) + { ++ DriveBeingMounted *drive_being_mounted; + ActivateParameters *parameters; + +- parameters = callback_data; ++ drive_being_mounted = callback_data; ++ parameters = drive_being_mounted->parameters; + +- parameters->mount_success &= succeeded; ++ parameters->mount_success = parameters->mount_success && succeeded; + + if (!succeeded && !parameters->cancelled) { + if (*error == 0 && +@@ -8578,29 +8651,25 @@ activation_drive_mounted_callback (gbool + } + } + +- if (--parameters->pending_mounts > 0) { +- /* wait for other mounts to finish... */ +- return; +- } +- +- if (parameters->cancelled || !parameters->mount_success) { +- stop_activate (parameters); ++ if (gnome_vfs_drive_is_mounted (drive_being_mounted->drive)) { ++ remove_drive_being_mounted (drive_being_mounted); ++ } else { ++ /* Here, the drive is already mounted, but ++ * gnome-vfs-volume-monitor thinks that it is not. This is ++ * because gnome-vfs-daemon has not yet notified it. So we'll ++ * wait for the NautilusFile to change: this will happen ++ * when gnome-vfs-volume-monitor actually picks up and emits the ++ * volume_mounted notification, and the NautilusDesktopLink ++ * modifies the NautilusFile. ++ */ + +- nautilus_file_list_free (parameters->files); +- g_free (parameters); +- return; ++ drive_being_mounted->file_changed_id = g_signal_connect ( ++ drive_being_mounted->file, "changed", ++ G_CALLBACK (activation_file_changed_after_drive_mounted), ++ drive_being_mounted); + } + +- /* all drives were mounted successfully */ +- activate_activation_uris_ready_callback (parameters->files, +- parameters); +-} +- +-static void +-mount_foreach (gpointer drive, +- gpointer callback_data) +-{ +- gnome_vfs_drive_mount (drive, activation_drive_mounted_callback, callback_data); ++ try_to_finish_drive_activation (parameters); + } + + static void +@@ -8608,7 +8677,6 @@ activate_activation_uris_ready_callback + gpointer callback_data) + { + ActivateParameters *parameters; +- GList *not_yet_mounted; + GList *l, *next; + NautilusFile *file; + NautilusFile *actual_file; +@@ -8617,7 +8685,6 @@ activate_activation_uris_ready_callback + char *uri; + + parameters = callback_data; +- not_yet_mounted = NULL; + + for (l = parameters->files; l != NULL; l = next) { + file = NAUTILUS_FILE (l->data); +@@ -8640,24 +8707,46 @@ activate_activation_uris_ready_callback + drive = nautilus_file_get_drive (file); + if (drive != NULL && + !gnome_vfs_drive_is_mounted (drive)) { +- not_yet_mounted = g_list_prepend (not_yet_mounted, drive); +- parameters->pending_mounts++; ++ DriveBeingMounted *drive_being_mounted; ++ ++ drive_being_mounted = g_new (DriveBeingMounted, 1); ++ drive_being_mounted->parameters = parameters; ++ drive_being_mounted->drive = gnome_vfs_drive_ref (drive); ++ drive_being_mounted->file = nautilus_file_ref (file); ++ drive_being_mounted->file_changed_id = 0; ++ ++ parameters->drives_being_mounted = g_list_prepend (parameters->drives_being_mounted, ++ drive_being_mounted); + } + } + } + + if (parameters->files == NULL) { +- g_assert (not_yet_mounted == NULL); ++ g_assert (parameters->drives_being_mounted == NULL); + + stop_activate (parameters); + g_free (parameters); + return; + } + +- if (not_yet_mounted != NULL) { +- not_yet_mounted = g_list_reverse (not_yet_mounted); +- g_list_foreach (not_yet_mounted, mount_foreach, callback_data); +- g_list_free (not_yet_mounted); ++ if (parameters->drives_being_mounted != NULL) { ++ GList *l; ++ ++ parameters->drives_being_mounted = g_list_reverse (parameters->drives_being_mounted); ++ ++ for (l = parameters->drives_being_mounted; l; l = l->next) { ++ DriveBeingMounted *drive_being_mounted; ++ ++ drive_being_mounted = l->data; ++ ++ /* @#$% gnome_vfs_drive_mount() doesn't tell the ++ * callback *which* drive was mounted. So, we pass the ++ * drive as part of the drive_being_mounted closure. ++ */ ++ gnome_vfs_drive_mount (drive_being_mounted->drive, ++ activation_drive_mounted_callback, ++ drive_being_mounted); ++ } + + /* activation_drive_mounted_callback will reveal whether all mounts were successful */ + parameters->mount_success = TRUE; +@@ -8781,7 +8870,7 @@ fm_directory_view_activate_files (FMDire + parameters->mode = mode; + parameters->flags = flags; + parameters->mount_success = FALSE; +- parameters->pending_mounts = 0; ++ parameters->drives_being_mounted = NULL; + parameters->cancelled = FALSE; + + if (file_count == 1) { diff --git a/nautilus-icon.patch b/nautilus-icon.patch new file mode 100644 index 0000000..371fb07 --- /dev/null +++ b/nautilus-icon.patch @@ -0,0 +1,51 @@ +http://bugzilla.gnome.org/show_bug.cgi?id=350962 + +https://bugzilla.novell.com/show_bug.cgi?id=117333 + +Use "gnome-fs-directory" instead of "file-manager" as an icon. A +folder is more recognizable than a filing cabinet. + +--- nautilus-2.15.4/nautilus-file-management-properties.desktop.in ++++ nautilus-2.15.4/nautilus-file-management-properties.desktop.in +@@ -3,7 +3,7 @@ + _Name=File Management + _Comment=Change how files are managed + Exec=nautilus-file-management-properties +-Icon=file-manager ++Icon=gnome-fs-directory + Terminal=false + Type=Application + StartupNotify=true +--- nautilus-2.15.4/nautilus.desktop.in ++++ nautilus-2.15.4/nautilus.desktop.in +@@ -4,7 +4,7 @@ + _Comment=Browse the file system with the file manager + TryExec=nautilus + Exec=nautilus --no-desktop --browser %U +-Icon=file-manager ++Icon=gnome-fs-directory + Terminal=false + StartupNotify=true + Type=Application +--- nautilus-2.15.4/src/nautilus-file-management-properties.c ++++ nautilus-2.15.4/src/nautilus-file-management-properties.c +@@ -632,7 +632,7 @@ + G_CALLBACK (nautilus_file_management_properties_dialog_response_cb), + xml_dialog); + +- gtk_window_set_icon_name (GTK_WINDOW (dialog), "file-manager"); ++ gtk_window_set_icon_name (GTK_WINDOW (dialog), "gnome-fs-directory"); + + if (window) { + gtk_window_set_screen (GTK_WINDOW (dialog), gtk_window_get_screen(window)); +--- nautilus-2.15.4/src/nautilus-navigation-window.c ++++ nautilus-2.15.4/src/nautilus-navigation-window.c +@@ -851,7 +851,7 @@ + static char * + real_get_icon_name (NautilusWindow *window) + { +- return g_strdup ("file-manager"); ++ return g_strdup ("gnome-fs-directory"); + } + + static void diff --git a/nautilus-mime.patch b/nautilus-mime.patch new file mode 100644 index 0000000..750330f --- /dev/null +++ b/nautilus-mime.patch @@ -0,0 +1,10 @@ +--- nautilus.desktop.in ++++ nautilus.desktop.in +@@ -9,6 +9,7 @@ + StartupNotify=true + Type=Application + Categories=GNOME;Application;System;Utility;Core; ++MimeType=inode/directory + OnlyShowIn=GNOME; + DocPath=user-guide#gosnautilus-1 + X-GNOME-Bugzilla-Bugzilla=GNOME diff --git a/nautilus-name-length.patch b/nautilus-name-length.patch new file mode 100644 index 0000000..a96cab3 --- /dev/null +++ b/nautilus-name-length.patch @@ -0,0 +1,360 @@ +http://bugzilla.gnome.org/show_bug.cgi?id=364843 + +Keep the generated names for "reallylongfilename (copy).txt" from +overflowing the maximum allowed length for path names. Patch by +Dave Camp . + +Index: libnautilus-private/nautilus-file-operations.c +================================================================================ +--- libnautilus-private/nautilus-file-operations.c ++++ libnautilus-private/nautilus-file-operations.c +@@ -1163,19 +1163,58 @@ + } + } + ++ ++static char * ++shorten_string (const char *base, int reduce_by) ++{ ++ int len; ++ char *ret; ++ const char *p; ++ ++ len = strlen (base); ++ len -= reduce_by; ++ ++ if (len <= 0) { ++ return NULL; ++ } ++ ++ ret = g_malloc (len + 1); ++ ++ p = base; ++ while (len) { ++ char *next; ++ next = g_utf8_next_char (p); ++ if (next - p > len || *next == '\0') { ++ break; ++ } ++ ++ len -= next - p; ++ p = next; ++ } ++ ++ if (p - base == 0) { ++ g_free (ret); ++ return NULL; ++ } else { ++ memcpy (ret, base, p - base); ++ ret[p-base] = '\0'; ++ return ret; ++ } ++} ++ + /* Note that we have these two separate functions with separate format + * strings for ease of localization. + */ + + static char * +-get_link_name (char *name, int count) ++get_link_name (char *name, int count, int max_length) + { + char *result; + char *unescaped_name; + char *unescaped_tmp_name; + char *unescaped_result; + char *new_file; +- ++ int unescaped_result_size; + const char *format; + + g_assert (name != NULL); +@@ -1210,6 +1249,17 @@ + break; + } + unescaped_result = g_strdup_printf (format, unescaped_name); ++ if (max_length > 0 && (unescaped_result_size = strlen (unescaped_result)) > max_length) { ++ char *new_name; ++ ++ new_name = shorten_string (unescaped_name, unescaped_result_size - max_length); ++ if (new_name) { ++ g_free (unescaped_result); ++ unescaped_result = g_strdup_printf (format, new_name); ++ g_assert (strlen (unescaped_result) <= max_length); ++ g_free (new_name); ++ } ++ } + + } else { + /* Handle special cases for the first few numbers of each ten. +@@ -1238,6 +1288,17 @@ + break; + } + unescaped_result = g_strdup_printf (format, count, unescaped_name); ++ if (max_length > 0 && (unescaped_result_size = strlen (unescaped_result)) > max_length) { ++ char *new_name; ++ ++ new_name = shorten_string (unescaped_name, unescaped_result_size - max_length); ++ if (new_name) { ++ g_free (unescaped_result); ++ unescaped_result = g_strdup_printf (format, count, new_name); ++ g_assert (strlen (unescaped_result) <= max_length); ++ g_free (new_name); ++ } ++ } + } + new_file = g_filename_from_utf8 (unescaped_result, -1, NULL, NULL, NULL); + result = gnome_vfs_escape_path_string (new_file); +@@ -1434,11 +1495,11 @@ + } + + static char * +-make_next_duplicate_name (const char *base, const char *suffix, int count) ++make_next_duplicate_name (const char *base, const char *suffix, int count, int max_length) + { + const char *format; + char *result; +- ++ int name_size; + + if (count < 1) { + g_warning ("bad count %d in get_duplicate_name", count); +@@ -1463,6 +1524,18 @@ + + } + result = g_strdup_printf (format, base, suffix); ++ ++ if (max_length > 0 && (name_size = strlen (result)) > max_length) { ++ char *new_base; ++ ++ new_base = shorten_string (base, name_size - max_length); ++ if (new_base) { ++ g_free (result); ++ result = g_strdup_printf (format, new_base, suffix); ++ g_assert (strlen (result) <= max_length); ++ g_free (new_base); ++ } ++ } + } else { + + /* Handle special cases for the first few numbers of each ten. +@@ -1506,13 +1579,25 @@ + } + + result = g_strdup_printf (format, base, count, suffix); ++ if (max_length > 0 && (name_size = strlen (result)) > max_length) { ++ char *new_base; ++ ++ new_base = shorten_string (base, name_size - max_length); ++ if (new_base) { ++ g_free (result); ++ result = g_strdup_printf (format, new_base, count, suffix); ++ g_assert (strlen (result) <= max_length); ++ g_free (new_base); ++ ++ } ++ } + } + + return result; + } + + static char * +-get_duplicate_name (const char *name, int count_increment) ++get_duplicate_name (const char *name, int count_increment, int max_length) + { + char *result; + char *name_base; +@@ -1520,7 +1605,7 @@ + int count; + + parse_previous_duplicate_name (name, &name_base, &suffix, &count); +- result = make_next_duplicate_name (name_base, suffix, count + count_increment); ++ result = make_next_duplicate_name (name_base, suffix, count + count_increment, max_length); + + g_free (name_base); + +@@ -1528,7 +1613,7 @@ + } + + static char * +-get_next_duplicate_name (char *name, int count_increment) ++get_next_duplicate_name (char *name, int count_increment, int max_length) + { + char *unescaped_name; + char *unescaped_tmp_name; +@@ -1554,7 +1639,7 @@ + + g_free (unescaped_tmp_name); + +- unescaped_result = get_duplicate_name (unescaped_name, count_increment); ++ unescaped_result = get_duplicate_name (unescaped_name, count_increment, max_length); + g_free (unescaped_name); + + new_file = g_filename_from_utf8 (unescaped_result, -1, NULL, NULL, NULL); +@@ -1565,21 +1650,74 @@ + } + + static int ++get_max_name_length (const char *text_uri) ++{ ++ int max_length; ++ GnomeVFSURI *uri; ++ char *dir; ++ long max_path; ++ long max_name; ++ ++ max_length = -1; ++ ++ uri = gnome_vfs_uri_new (text_uri); ++ if (!uri) { ++ return max_length; ++ } ++ ++ if (strcmp (gnome_vfs_uri_get_scheme (uri), "file") != 0) { ++ gnome_vfs_uri_unref (uri); ++ return max_length; ++ } ++ ++ dir = gnome_vfs_uri_extract_dirname (uri); ++ ++ max_path = pathconf (dir, _PC_PATH_MAX); ++ max_name = pathconf (dir, _PC_NAME_MAX); ++ ++ if (max_name == -1 && max_path == -1) { ++ max_length = -1; ++ } else if (max_name == -1 && max_path != -1) { ++ max_length = max_path - (strlen (dir) + 1); ++ } else if (max_name != -1 && max_path == -1) { ++ max_length = max_name; ++ } else { ++ int leftover; ++ ++ leftover = max_path - (strlen (dir) + 1); ++ ++ max_length = MIN (leftover, max_name); ++ } ++ ++ g_free (dir); ++ ++ gnome_vfs_uri_unref (uri); ++ ++ return max_length; ++} ++ ++static int + handle_transfer_duplicate (GnomeVFSXferProgressInfo *progress_info, + TransferInfo *transfer_info) + { ++ int max_length; ++ ++ max_length = get_max_name_length (progress_info->target_name); ++ + switch (transfer_info->kind) { + case TRANSFER_LINK: + progress_info->duplicate_name = get_link_name + (progress_info->duplicate_name, +- progress_info->duplicate_count); ++ progress_info->duplicate_count, ++ max_length); + break; + + case TRANSFER_COPY: + case TRANSFER_MOVE_TO_TRASH: + progress_info->duplicate_name = get_next_duplicate_name + (progress_info->duplicate_name, +- progress_info->duplicate_count); ++ progress_info->duplicate_count, ++ max_length); + break; + default: + break; +@@ -2722,47 +2860,47 @@ + setlocale (LC_MESSAGES, "C"); + + /* test the next duplicate name generator */ +- EEL_CHECK_STRING_RESULT (get_duplicate_name (" (copy)", 1), " (another copy)"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo", 1), "foo (copy)"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name (".bashrc", 1), ".bashrc (copy)"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name (".foo.txt", 1), ".foo (copy).txt"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo foo", 1), "foo foo (copy)"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo.txt", 1), "foo (copy).txt"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo foo.txt", 1), "foo foo (copy).txt"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo foo.txt txt", 1), "foo foo (copy).txt txt"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo...txt", 1), "foo (copy)...txt"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo...", 1), "foo (copy)..."); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo. (copy)", 1), "foo. (another copy)"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (copy)", 1), "foo (another copy)"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (copy).txt", 1), "foo (another copy).txt"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (another copy)", 1), "foo (3rd copy)"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (another copy).txt", 1), "foo (3rd copy).txt"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo foo (another copy).txt", 1), "foo foo (3rd copy).txt"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (13th copy)", 1), "foo (14th copy)"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (13th copy).txt", 1), "foo (14th copy).txt"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (21st copy)", 1), "foo (22nd copy)"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (21st copy).txt", 1), "foo (22nd copy).txt"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (22nd copy)", 1), "foo (23rd copy)"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (22nd copy).txt", 1), "foo (23rd copy).txt"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (23rd copy)", 1), "foo (24th copy)"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (23rd copy).txt", 1), "foo (24th copy).txt"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (24th copy)", 1), "foo (25th copy)"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (24th copy).txt", 1), "foo (25th copy).txt"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo foo (24th copy)", 1), "foo foo (25th copy)"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo foo (24th copy).txt", 1), "foo foo (25th copy).txt"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo foo (100000000000000th copy).txt", 1), "foo foo (copy).txt"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (10th copy)", 1), "foo (11th copy)"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (10th copy).txt", 1), "foo (11th copy).txt"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (11th copy)", 1), "foo (12th copy)"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (11th copy).txt", 1), "foo (12th copy).txt"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (12th copy)", 1), "foo (13th copy)"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (12th copy).txt", 1), "foo (13th copy).txt"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (110th copy)", 1), "foo (111th copy)"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (110th copy).txt", 1), "foo (111th copy).txt"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (122nd copy)", 1), "foo (123rd copy)"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (122nd copy).txt", 1), "foo (123rd copy).txt"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (123rd copy)", 1), "foo (124th copy)"); +- EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (123rd copy).txt", 1), "foo (124th copy).txt"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name (" (copy)", 1, -1), " (another copy)"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo", 1, -1), "foo (copy)"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name (".bashrc", 1, -1), ".bashrc (copy)"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name (".foo.txt", 1, -1), ".foo (copy).txt"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo foo", 1, -1), "foo foo (copy)"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo.txt", 1, -1), "foo (copy).txt"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo foo.txt", 1, -1), "foo foo (copy).txt"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo foo.txt txt", 1, -1), "foo foo (copy).txt txt"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo...txt", 1, -1), "foo (copy)...txt"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo...", 1, -1), "foo (copy)..."); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo. (copy)", 1, -1), "foo. (another copy)"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (copy)", 1, -1), "foo (another copy)"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (copy).txt", 1, -1), "foo (another copy).txt"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (another copy)", 1, -1), "foo (3rd copy)"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (another copy).txt", 1, -1), "foo (3rd copy).txt"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo foo (another copy).txt", 1, -1), "foo foo (3rd copy).txt"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (13th copy)", 1, -1), "foo (14th copy)"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (13th copy).txt", 1, -1), "foo (14th copy).txt"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (21st copy)", 1, -1), "foo (22nd copy)"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (21st copy).txt", 1, -1), "foo (22nd copy).txt"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (22nd copy)", 1, -1), "foo (23rd copy)"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (22nd copy).txt", 1, -1), "foo (23rd copy).txt"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (23rd copy)", 1, -1), "foo (24th copy)"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (23rd copy).txt", 1, -1), "foo (24th copy).txt"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (24th copy)", 1, -1), "foo (25th copy)"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (24th copy).txt", 1, -1), "foo (25th copy).txt"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo foo (24th copy)", 1, -1), "foo foo (25th copy)"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo foo (24th copy).txt", 1, -1), "foo foo (25th copy).txt"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo foo (100000000000000th copy).txt", 1, -1), "foo foo (copy).txt"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (10th copy)", 1, -1), "foo (11th copy)"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (10th copy).txt", 1, -1), "foo (11th copy).txt"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (11th copy)", 1, -1), "foo (12th copy)"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (11th copy).txt", 1, -1), "foo (12th copy).txt"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (12th copy)", 1, -1), "foo (13th copy)"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (12th copy).txt", 1, -1), "foo (13th copy).txt"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (110th copy)", 1, -1), "foo (111th copy)"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (110th copy).txt", 1, -1), "foo (111th copy).txt"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (122nd copy)", 1, -1), "foo (123rd copy)"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (122nd copy).txt", 1, -1), "foo (123rd copy).txt"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (123rd copy)", 1, -1), "foo (124th copy)"); ++ EEL_CHECK_STRING_RESULT (get_duplicate_name ("foo (123rd copy).txt", 1, -1), "foo (124th copy).txt"); + + setlocale (LC_MESSAGES, ""); + } diff --git a/nautilus-onlyshowin.patch b/nautilus-onlyshowin.patch new file mode 100644 index 0000000..2569da8 --- /dev/null +++ b/nautilus-onlyshowin.patch @@ -0,0 +1,25 @@ +http://bugzilla.gnome.org/show_bug.cgi?id=350947 + +Make the .desktop files for Computer and arbitrary folders only show +up in GNOME. + +--- nautilus-2.15.4/nautilus-computer.desktop.in ++++ nautilus-2.15.4/nautilus-computer.desktop.in +@@ -9,6 +9,7 @@ + StartupNotify=true + Type=Application + Categories=Application;Core; ++OnlyShowIn=GNOME; + X-GNOME-Bugzilla-Bugzilla=GNOME + X-GNOME-Bugzilla-Product=nautilus + X-GNOME-Bugzilla-Component=general +--- nautilus-2.15.4/nautilus-folder-handler.desktop.in ++++ nautilus-2.15.4/nautilus-folder-handler.desktop.in +@@ -7,6 +7,7 @@ + Terminal=false + StartupNotify=true + Type=Application ++OnlyShowIn=GNOME; + MimeType=x-directory/gnome-default-handler;x-directory/normal;inode/directory;application/x-gnome-saved-search + X-GNOME-Bugzilla-Bugzilla=GNOME + X-GNOME-Bugzilla-Product=nautilus diff --git a/nautilus-search-desktop.patch b/nautilus-search-desktop.patch new file mode 100644 index 0000000..ecdab83 --- /dev/null +++ b/nautilus-search-desktop.patch @@ -0,0 +1,146 @@ +http://bugzilla.gnome.org/show_bug.cgi?id=350950 + +Install a nautilus-search.desktop for "Search for Files". + +? depcomp +? jpr@macintyre.suse.de +? nautilus-folder-handler.desktop +? nautilus-search-desktop.patch +? stamp-h1 +? test/test-nautilus-directory-async +? test/test-nautilus-search-engine +Index: Makefile.am +=================================================================== +RCS file: /cvs/gnome/nautilus/Makefile.am,v +retrieving revision 1.86 +diff -u -r1.86 Makefile.am +--- Makefile.am 9 Feb 2005 10:51:53 -0000 1.86 ++++ Makefile.am 28 Aug 2005 19:45:27 -0000 +@@ -8,6 +8,7 @@ + nautilus.desktop.in \ + nautilus-home.desktop.in \ + nautilus-computer.desktop.in \ ++ nautilus-search.desktop.in \ + nautilus-folder-handler.desktop.in \ + nautilus-file-management-properties.desktop.in + +Index: nautilus-search.desktop.in +=================================================================== +RCS file: nautilus-search.desktop.in +diff -N nautilus-search.desktop.in +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ nautilus-search.desktop.in 28 Aug 2005 19:45:28 -0000 +@@ -0,0 +1,113 @@ ++[Desktop Entry] ++Encoding=UTF-8 ++Name=Search for Files... ++Name[bg]=Търсене за файлове... ++Name[ca]=Cerca fitxers... ++Name[cs]=Hledat soubory... ++Name[cy]=Chwilio am Ffeiliau... ++Name[da]=Søg efter filer... ++Name[de]=Nach Dateien suchen... ++Name[el]=Αναζήτηση για αρχεία... ++Name[en_CA]=Search for Files... ++Name[en_GB]=Search for Files... ++Name[es]=Buscar archivos... ++Name[et]=Otsi faile... ++Name[fa]=جستجوی پرونده‌ها... ++Name[fi]=Etsi tiedostoja... ++Name[fr]=Rechercher des fichiers... ++Name[gl]=Buscar ficheiros... ++Name[gu]=ફાઈલો માટે શોધો... ++Name[he]=חפש קבצים... ++Name[hi]=फ़ाइलों हेतु ढूंढें... ++Name[hu]=Fájlok keresése... ++Name[id]=Cari Berkas... ++Name[it]=Cerca file... ++Name[ja]=ファイルの検索... ++Name[ko]=파일 찾기... ++Name[lt]=Ieškoti bylų... ++Name[mk]=Барај датотеки... ++Name[nb]=Søk etter filer... ++Name[ne]=...फाइलहरूलाई खोज्नुहोस् ++Name[nl]=Bestanden zoeken... ++Name[no]=Søk etter filer... ++Name[pa]=ਫਾਇਲਾਂ ਦੀ ਖੋਜ... ++Name[pl]=Wyszukaj pliki... ++Name[pt]=Procurar Ficheiros... ++Name[pt_BR]=Procurar por Arquivos... ++Name[ro]=Caută fişiere... ++Name[ru]=Поиск файлов... ++Name[sq]=Kërko për files... ++Name[sr]=Тражи датотеке... ++Name[sr@Latn]=Traži datoteke... ++Name[sv]=Sök efter filer... ++Name[th]=ค้นหาแฟ้ม... ++Name[tr]=Dosya Ara... ++Name[uk]=Пошук файлів... ++Name[vi]=Tìm kiếm tập tin... ++Name[xh]=Khangela iiFayili... ++Name[zh_CN]=搜索文件... ++Name[zh_TW]=搜尋檔案... ++Comment=Find files, folders, and documents on your computer ++Comment[ar]=إيجاد ملفّات و مجلّدات و مستندات على حاسوبك ++Comment[az]=Kompüterinizdəki faylları, qovluqları və sənədləri tapın ++Comment[bg]=Намиране на файлове, папки и документи на вашия компютър ++Comment[bs]=Nalazi datoteke, direktorije, i dokumente na vašem računaru ++Comment[ca]=Cerca fitxers, carpetes i documents al vostre ordinador ++Comment[cs]=Hledat soubory, adresáře a dokumenty ve vašem počítači ++Comment[cy]=Canfod ffeiliau, ffolderi a dogfennau ar eich cyfrifiadur ++Comment[da]=Find filer, mapper og dokumenter på din maskine ++Comment[de]=Dateien, Ordner und Dokumente auf Ihrem Computer finden ++Comment[el]=Εύρεση αρχείων, φακέλων και εγγράφων στον υπολογιστή σας ++Comment[en_CA]=Find files, folders, and documents on your computer ++Comment[en_GB]=Find files, folders, and documents on your computer ++Comment[es]=Busca archivos, carpetas y documentos en su equipo ++Comment[et]=Failide, kataloogide ja dokumentide otsimine ++Comment[eu]=Aurkitu fitxategiak, karpetak eta dokumentuak zure ordenagailuan ++Comment[fa]=پیدا کردن پرونده‌ها، پوشه‌ها و نوشتارها در کامپیوتر شما ++Comment[fi]=Etsi tiedostoja, kansioita ja asiakirjoja tietokoneeltasi ++Comment[fr]=Recherche des fichiers, des dossiers et des documents dans votre ordinateur ++Comment[gl]=Bucar ficheiros, carpetas, e documentos no seu ordenador ++Comment[gu]=તમારા કમ્પ્યૂટર પર ફાઈલો, ફોલ્ડરો અને દસ્તાવેજો શોધો ++Comment[he]=מצא קבצים, תיקיות ומסמכים במחשב שלך ++Comment[hi]=कंप्यूटर में फ़ाइल, फ़ोल्डर और दस्तावेज़ ढूंढें ++Comment[hu]=Fájlok, mappák és dokumentumok keresése a számítógépen ++Comment[id]=Cari berkas, folder, dan dokumen dalam komputer ++Comment[it]=Trova file, cartelle e documenti nel computer ++Comment[ja]=お使いのコンピュータにあるファイルやフォルダ、ドキュメントを検索します ++Comment[ko]=컴퓨터에 들어 있는 파일, 폴더, 문서 찾기 ++Comment[lt]=Raskite bylas, aplankus ir dokumentus esančius Jūsų kompiuteryje ++Comment[mk]=Најдете датотеки, папки и документи на Вашиот компјутер ++Comment[ms]=Cari fail, folder, dan dokumen pada komputer anda ++Comment[nb]=Finn filer, mapper og dokumenter på din datamaskin ++Comment[ne]=कम्प्युटरका फाइलहरू, फोल्डरहरू, र कागजातहरू फेला पार्नुहोस् ++Comment[nl]=Bestanden, mappen en documenten zoeken op uw computer ++Comment[nn]=Finn filer, mapper og dokument på datamaskinen ++Comment[no]=Finn filer, mapper og dokumenter på din datamaskin ++Comment[pa]=ਆਪਣੇ ਕੰਪਿਊਟਰ ਤੇ ਫਾਇਲਾਂ, ਫੋਲਡਰ ਤੇ ਦਸਤਾਵੇਜ਼ ਲੱਭੋ ++Comment[pl]=Wyszukuje pliki, foldery i dokumenty na komputerze ++Comment[pt]=Procurar ficheiros, pastas e documentos no seu computador ++Comment[pt_BR]=Encontre arquivos, pastas e documentos em seu computador ++Comment[ro]=Caută fişiere, dosare şi documente pe calculatorul dumneavoastră ++Comment[ru]=Поиск файлов, папок и документов на вашем компьютере ++Comment[sk]=Hľadať súbory, priečinky a dokumenty na vašom počítači ++Comment[sq]=Gjej files, kartela, dhe dokumentë në kompjuterin tuaj ++Comment[sr]=Тражите датотеке, фасцикле и документе на вашем рачунару ++Comment[sr@Latn]=Tražite datoteke, fascikle i dokumente na vašem računaru ++Comment[sv]=Sök filer, mappar och dokument på din dator ++Comment[ta]=உங்கள் கணினியில் உள்ள கோப்புகள்,அடைவுகள் மற்றும் ஆவணங்களை கண்டுபிடி ++Comment[th]=ค้นหาแฟ้ม โฟลเดอร์ หรือเอกสาร ในคอมพิวเตอร์เครื่องนี้ ++Comment[tr]=Bilgisayarınızdaki dosyaları, klasörleri ve belgeleri bulun ++Comment[uk]=Пошук файлів, тек та документів на вашому комп'ютері ++Comment[vi]=Tìm tập tin, thư mục và tài liệu trên máy tính. ++Comment[xh]=Ukufumana iifayili, iziqulathi zeefayili, namaxwebhu kwikhompyutha yakho ++Comment[zh_CN]=在您的计算机上查找文件、文件夹和文档 ++Comment[zh_TW]=在電腦中搜尋檔案、資料夾和文件 ++Exec=nautilus x-nautilus-search: ++Icon=gnome-searchtool ++Terminal=false ++Type=Application ++StartupNotify=true ++Categories=Application;Core; ++X-GNOME-Bugzilla-Bugzilla=GNOME ++X-GNOME-Bugzilla-Product=nautilus ++X-GNOME-Bugzilla-Component=general diff --git a/nautilus.changes b/nautilus.changes new file mode 100644 index 0000000..f1485a2 --- /dev/null +++ b/nautilus.changes @@ -0,0 +1,1160 @@ +------------------------------------------------------------------- +Mon Dec 18 14:33:50 CET 2006 - sbrabec@suse.cz + +- Prefix changed to /usr. +- Spec file cleanup. + +------------------------------------------------------------------- +Tue Nov 21 16:20:51 CET 2006 - sbrabec@suse.cz + +- Do not explicitly require mDNSResponder-lib blocking avahi compat + package. + +------------------------------------------------------------------- +Wed Nov 8 21:42:33 CET 2006 - federico@novell.com + +- Updated nautilus-drives-and-volumes-on-desktop.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=215351. Floppy icons + disappeared from the desktop after unmounting the floppy. This also + fixes https://bugzilla.novell.com/show_bug.cgi?id=218910, where + there was a race condition when mounting drives. This caused the + activation URIs of the corresponding NautilusFiles not to be updated + correctly. + +------------------------------------------------------------------- +Wed Nov 1 19:58:44 CET 2006 - federico@novell.com + +- Removed nautilus-hide-desktop-files.patch. This was used for the + old "applications://" VFS scheme, which is deprecated now. +- Removed nautilus-submount.patch, since we no longer use submount (subfs). +- Removed nautilus-142860-vfs-drive-for-extensions.diff, since that + feature appeared upstream since Nautilus 2.14. This is what lets + Nautilus extensions look at the GnomeVFSDrive for a file, so that + they can install menu items specific to drives (e.g. like + nautilus-cd-burner). +- Removed nautilus-172870-support-drives-and-volumes.diff and + nautilus-155010-desktop-volume-policy.diff, since they need to be + reworked for the code in Nautilus-2.16. +- Added nautilus-6014-network-servers-in-places-sidebar.diff, to fix + the part of https://bugzilla.novell.com/show_bug.cgi?id=6014 that is + not yet in Nautilus 2.16. This adds a "Network Servers" item in the + Places sidebar. +- Added nautilus-206369-desktop-icon-overlap.diff as an updated + and consolidated version of + nautilus-155337-icon-positioning-on-reload.diff and + nautilus-174766-fix-lazy-positioning.diff. This is to fix the bug + where desktop icons get overlapped or rearranged when a new volume + icon appears, or when the desktop is reloaded. +- Added nautilus-drives-and-volumes-on-desktop.diff as a partly + updated version of nautilus-172870-support-drives-and-volumes.diff. +- Added nautilus-debug-log.diff. This provides logging functionality + to aid debugging. +- Updated descriptions inside the rest of the patches. +- Renumbered patches. + +------------------------------------------------------------------- +Tue Oct 31 20:21:44 CET 2006 - joeshaw@suse.de + +- Add a patch to ensure that the search entry bar is displayed + when navigating to the x-nautilus-search:/// URI. (bnc #212649) + +------------------------------------------------------------------- +Sat Oct 14 17:59:28 CEST 2006 - danw@suse.de + +- Remove dead patches + +------------------------------------------------------------------- +Tue Oct 3 00:06:18 CEST 2006 - jhargadon@suse.de + +- update to version 2.16.1 +- Default to search in current directory for non-indexed search +- Fix clash with symbol names in gtk+ + +------------------------------------------------------------------- +Wed Sep 20 18:22:02 CEST 2006 - sbrabec@suse.cz + +- Update MIME database in scriptlets (#201729). + +------------------------------------------------------------------- +Thu Sep 14 01:05:47 CEST 2006 - jhargadon@suse.de + +- update to version 2.16.0 +- Handle enter activation when using typeahead search +- Avoid using gnome_vfs_is_local in wrong places +- Translations + +------------------------------------------------------------------- +Wed Aug 30 22:28:34 CEST 2006 - jhargadon@suse.de + +- update to version 2.15.92.1 +- Fix crash on startup +- Fix crash on changing owner/group of file +- Fix double free +- Make sure all strings are displayed translated + +------------------------------------------------------------------- +Fri Aug 18 17:14:15 CEST 2006 - jhargadon@suse.de + +- update to version 2.15.91 +- Use gtk recent files code +- Fix file change notification regression +- Don't display raw form of selinux contexts +- Import lates EggSequence with bugfixes +- DnD fixes +- Read .hidden symlinks +- Fix down navigation in last column, next to last row +- Submenu support for extensions +- Improved beagle daemon detection +- Enable D'n'D reordering in the places sidebar +- New icons for trash operations +- Add a button/text toggle button to the location bar +- Fix leak + +------------------------------------------------------------------- +Mon Aug 7 19:48:51 CEST 2006 - gekker@suse.de + +- Update to version 2.15.4 +- Remove upstreamed patches +* New permission dialog with recursion and selinx support +* Improve extension interface +* Add complete session management +* Handle removal of the displayed location more elegantly +* Support dropping uris, urls and text to subfolders +* Don't allow formating of mounted floppies +* Perfomance fixes +* Don't use deprecated eel features +* Improve startup performance +* Use GOption +* Fix selection box width calculation +* Improve file permission handling +* Add volume operations to the file menu, tree and places sidebar +* New po/LINGUAS handling +* Smarter date handling for images +* HIG fixes +* Fix crashes +* Fixes for icons and thumbnailing +* Show network volumes in the places sidebar +* Fix progress dialog showing the wrong file +* Translation updates +* Use --no-desktop option for all desktop files +* Startup performance improvements +* Make files copied from read-only source writeable +* Don't allow bookmarking x-desktop:/// +* Add help buttons to several dialogs +* Fix SVG file identification +* Properly break down URIs for connect to server ui +* Show unmounted but user-visible drives in the places sidebar +* Display more info in the progress dialog when preparing +* Smarter DnD target selection +* GnomeGoals: Use po/LINGUAS +* Fix deadlock when dragging over list view in some conditions +* Don't show folder count for smb shares +* Close window when folder moves to trash +* Fix deep count in properties dialog in some cases +* Avoid calculating mime lists for activation +* Remove blank error dialog on mount when using gnome-mount +* Better filename linebreaking at punctuation marks. +* List view: If a rename moves the file in the view, scroll to the new position +* Better handling of broken filename encoding for link targets +* Browser mode: don't close window on up if current directory has been removed +* Pass original files, not target files to property page providers. + This allows property page extensions to look at desktop files and symlinks. +* Fix opening saved searches file from outside nautilus +* Add option to always use the location bar to the preferences dialog +* Show detailed file size in the properties dialog +* Open modules with BIND_LOCAL +* Add Network to places menu +* Fix sort by atime +* Add support for searching for custom mime type +* Much better activation of multiple files +* Handle new background image zooming mode +* Add optional support for Tracker indexer +* Added initial support for search +* Better handling of opening multiple files +* View update optimizations +* No titles for alert dialogs +* Use access() to determine permissions +* Fix mime list problem introduced with sort change +* Finally fix tree sidebar crash +* ctrl-shift-g goes backwards in typeahead +* Add Skip all button in copy/move conflict dialog +* Position new files/folders correctly in manual layout mode +* Fix desktop redraw issues on non-100% zoom levels +* Adds volume/drive api for modules +* GtkTreeView style typeahead +* '/' opens location dialog/entry +* middle click in browser mode opens new window +* Handle cancellation of authentication better +* Add format menu item for floppy drives + +------------------------------------------------------------------- +Wed Jun 7 18:33:29 CEST 2006 - jpr@suse.de + +- Don't update the .desktop file if it doesn't exist +(really fix #177551) + +------------------------------------------------------------------- +Thu Jun 1 21:07:09 CEST 2006 - federico@novell.com + +- Added nautilus-172870-support-drives-and-volumes.diff. This fixes + https://bugzilla.novell.com/show_bug.cgi?id=172870 by adding proper + support for displaying unmounted drives as well as mounted volumes. + This also makes floppies work from the desktop. +- Added nautilus-174766-fix-lazy-positioning.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=174766. This makes + volume icons not overlap with other icons in the desktop when + volumes get mounted. + +------------------------------------------------------------------- +Tue May 23 00:17:28 CEST 2006 - federico@novell.com + +- Updated nautilus-158158-ignore-foreign-desktop-files.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=177777. All .desktop + files were being filtered erroneously if they didn't have + OnlyShowIn/NotShowIn keys. + +------------------------------------------------------------------- +Mon May 22 22:34:54 CEST 2006 - joeshaw@suse.de + +- Only patch in the nautilus-search.desktop file on SL, not SLE, + since the new main menu has search built-in. (bnc #177551) + +------------------------------------------------------------------- +Wed May 17 19:28:46 CEST 2006 - sbrabec@suse.cz + +- nautilus-search-bar.c added to POTFILES.in. + +------------------------------------------------------------------- +Wed May 17 18:46:25 CEST 2006 - sbrabec@suse.cz + +- Fixed I18N problems: + * untranslatable Search string (#173448) + * uninitialized locale (#173448#c3) + +------------------------------------------------------------------- +Wed May 17 01:01:49 CEST 2006 - federico@novell.com + +- Updated nautilus-158158-ignore-foreign-desktop-files.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=176123. The + "OnlyShowIn" key in desktop files can contain multiple items. Also + pay attention to the "NotShowIn" key. + +------------------------------------------------------------------- +Mon May 15 23:00:35 CEST 2006 - federico@novell.com + +- Added nautilus-158279-add-location-toggle-button.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=158279. This adds a + toggle button to the left of path bar in navigation windows. + Pressing this button will switch to using a location entry instead + of the path bar. + +------------------------------------------------------------------- +Fri May 12 02:37:44 CEST 2006 - federico@novell.com + +- Updated nautilus-155010-desktop-volume-policy.diff; this fixes + https://bugzilla.novell.com/show_bug.cgi?id=175076. This fixes a + crash when dragging a volume to the trash. + +------------------------------------------------------------------- +Wed May 10 23:18:39 CEST 2006 - joeshaw@suse.de + +- Update search patch to remove annoying "queuing " + debug spew. + +------------------------------------------------------------------- +Wed May 10 03:23:11 CEST 2006 - federico@novell.com + +- Added nautilus-142860-vfs-drive-for-extensions.diff to fix the + Nautilus part of bug + https://bugzilla.novell.com/show_bug.cgi?id=142860. This lets + Nautilus extensions see the drives that may correspond to desktop + icons. + +------------------------------------------------------------------- +Mon May 8 20:50:30 CEST 2006 - federico@novell.com + +- Added nautilus-66073-update-progress-dialog.diff to fix bug + https://bugzilla.novell.com/show_bug.cgi?id=66073. The progress + dialog for file operations now gets updated correctly if several + small files get copied before a large file. + +------------------------------------------------------------------- +Mon May 1 20:35:51 CEST 2006 - dobey@suse.de + +- Added nautilus-trash-icon.patch to use the theme's trash icon, + rather than the delete icon, for the "Move to Trash" menu items + +------------------------------------------------------------------- +Thu Apr 27 16:24:29 CEST 2006 - federico@novell.com + +- Updated nautilus-155010-desktop-volume-policy.diff to fix bug + https://bugzilla.novell.com/show_bug.cgi?id=168280. This makes + Nautilus not display two volume icons for no-media-check devices. + +------------------------------------------------------------------- +Wed Apr 19 00:26:50 CEST 2006 - federico@suse.de + +- Removed dot-hidden.dif. This fixes bug #158158 completely; that + patch is obsoleted by the updated + nautilus-158158-ignore-foreign-desktop-files.diff. + +------------------------------------------------------------------- +Tue Apr 18 22:58:16 CEST 2006 - federico@novell.com + +- Added nautilus-158158-ignore-foreign-desktop-files.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=158158. This makes + Nautilus ignore .desktop files whose OnlyShowIn property indicates + that they are specific to another desktop environment. + +------------------------------------------------------------------- +Tue Apr 18 16:47:09 CEST 2006 - joeshaw@suse.de + +- Update nautilus-search patch to correctly handle a search URI + being passed into nautilus on the command-line. (bnc #166158) + +------------------------------------------------------------------- +Tue Apr 18 00:44:40 CEST 2006 - federico@novell.com + +- Added nautilus-155010-desktop-volume-policy.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=155010. This makes + Nautilus display the same set of drives and volumes as GTK+'s file + chooser. It will also display certain drives on the desktop for + easy access (in particular, drives that do not support notification + of inserted media, so we always need them to be accessible through + the GUI, as opposed to being automounted). + +------------------------------------------------------------------- +Wed Mar 29 17:56:58 CEST 2006 - sbrabec@suse.cz + +- Handle inode/directory MIME type (#161824). + +------------------------------------------------------------------- +Wed Mar 22 17:19:46 CET 2006 - dobey@suse.de + +- Added nautilus-unscaled-sidebar-menu-icons.patch to avoid scaling + icons in the sidebar and where those same icons are used in menus + +------------------------------------------------------------------- +Mon Mar 20 19:00:18 CET 2006 - federico@novell.com + +- Added nautilus-155337-icon-positioning-on-reload.diff to fix bug + #155337. Now icons in the desktop are not repositioned if the + desktop gets reloaded. + +------------------------------------------------------------------- +Fri Mar 17 02:51:14 CET 2006 - federico@novell.com + +- Added nautilus-perf-no-burn-uri-for-desktop.diff. This makes + Nautilus not do unnecessary work when initializing the desktop, + saving 1 second during login. +- Added nautilus-icon-registration.diff. This makes Nautilus do less + work when registering its stock icons, saving about 1.5 seconds + during login. + +------------------------------------------------------------------- +Tue Mar 14 13:03:46 CET 2006 - ro@suse.de + +- use beagle on ppc64 as well + +------------------------------------------------------------------- +Thu Mar 2 12:49:01 CET 2006 - sbrabec@suse.cz + +- Translations from upstream moved to gnome-patch-translation. + +------------------------------------------------------------------- +Fri Feb 24 04:41:11 CET 2006 - federico@novell.com + +- Added nautilus-130796-bad-icon-placement.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=130796. This makes + desktop icons with very wide labels be placed correctly, instead of + being placed flush left with the edge of the screen. +- Removed nautilus-115467-dont-overlap-volume-icons.diff as it is + integrated into the new patch. + +------------------------------------------------------------------- +Wed Feb 22 17:27:51 CET 2006 - joeshaw@suse.de + +- Update nautilus search patch to not display UI when beagled + isn't running. + +------------------------------------------------------------------- +Sun Feb 19 17:43:04 CET 2006 - aj@suse.de + +- Reduce BuildRequires. + +------------------------------------------------------------------- +Sat Feb 18 01:00:00 CET 2006 - gekker@suse.de + +- ficup .desktop files for UI team + +------------------------------------------------------------------- +Mon Feb 13 23:32:00 CET 2006 - federico@novell.com + +- Added nautilus-130796-bad-icon-placement.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=130796. This makes + desktop icons with very wide labels be placed correctly, instead of + being placed flush left with the edge of the screen. + +------------------------------------------------------------------- +Thu Feb 9 21:55:59 CET 2006 - federico@novell.com + +- Updated nautilus-6014-network-servers-desktop-icon.diff. Now we + hide the "Network Servers" icon in the desktop by default, but we + have new such items in the Places sidebar and the Go menu. This + fixes https://bugzilla.novell.com/show_bug.cgi?id=149685 + +------------------------------------------------------------------- +Wed Feb 1 17:19:38 CET 2006 - sbrabec@suse.cz + +- Use translation compendium gnome-patch-translation. + +------------------------------------------------------------------- +Tue Jan 31 20:25:44 CET 2006 - federico@novell.com + +- Added nautilus-146947-rename-bad-parameters-message.diff to fix bug + #146947. If you try to use illegal characters when renaming a file + in an SMB share, Nautilus will now give you a better error message + instead of a generic "couldn't rename" one. + +------------------------------------------------------------------- +Wed Jan 25 21:32:33 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Mon Jan 23 17:38:54 CET 2006 - joeshaw@suse.de + +- Update search patch to only search the files backend + +------------------------------------------------------------------- +Wed Jan 18 02:49:35 CET 2006 - gekker@suse.de + +- Remove Requires: on control-center2 and gnome-themes (#142237) + +------------------------------------------------------------------- +Tue Dec 6 12:43:13 CET 2005 - sbrabec@suse.cz + +- Do not require beagle on ppc64. +- Enabled parallel build. + +------------------------------------------------------------------- +Mon Dec 5 23:09:18 CET 2005 - federico@novell.com + +- Removed nautilus-136167-no-default-window.diff. This is not the right fix, as external + apps rely on being to call just "nautilus" without command-line arguments, so that + Nautilus will open a window showing your Home directory. Moreover, there's no way for + Nautilus to tell if it was (re)started by the session manager upon login, or as a result + of exiting abnormally. + +------------------------------------------------------------------- +Thu Dec 1 20:54:09 CET 2005 - federico@novell.com + +- Updated nautilus-6014-network-servers-desktop-icon.diff. When doing "Clean up + by Name", the Network Servers icon will now be put after your Home icon. + +------------------------------------------------------------------- +Thu Dec 1 01:31:34 CET 2005 - federico@novell.com + +- Added nautilus-6014-network-servers-desktop-icon.diff to fix bug #6014. This + Creates a "Network Servers" icon in the desktop. +- Added nautilus-136167-no-default-window.diff to fix bug #136167. + When restarted abnormally, Nautilus will no longer open a window for + your home directory. + +------------------------------------------------------------------- +Wed Nov 30 23:39:12 CET 2005 - gekker@suse.de + +- Update to version 2.12.2 + +------------------------------------------------------------------- +Mon Nov 28 23:23:52 CET 2005 - gekker@suse.de + +- Enable nauilus sidebar by default (#132383). + +------------------------------------------------------------------- +Thu Nov 17 02:23:25 CET 2005 - federico@novell.com + +- Added nautilus-default-thumbnail-size.diff. This makes the default size for + thumbnails be 64 pixels, which looks better with the default theme than the + old value of 96 pixels. + +------------------------------------------------------------------- +Mon Nov 14 21:05:25 CET 2005 - joeshaw@suse.de + +- Update nautilus-search patch to 20051101. +- Add patch to hide the zoom and "view as" controls from the + location bar. + +------------------------------------------------------------------- +Tue Nov 8 03:10:13 CET 2005 - federico@novell.com + +- Added nautilus-115467-dont-overlap-volume-icons.diff to fix part of + bug #115467. With this, Nautilus will not overlap the icons when + you insert a CD or USB stick. + +------------------------------------------------------------------- +Wed Nov 2 04:18:05 CET 2005 - federico@novell.com + +- Updated nautilus-submount.patch to fix bug #127509. With this, the + "Unmount volume" command will appear again for network volumes. + +------------------------------------------------------------------- +Thu Oct 13 23:16:18 CEST 2005 - gekker@suse.de + +- Update to version 2.12.1 +- Remove upstreamed patch +- Re-diff some patches so that they apply to new version + +------------------------------------------------------------------- +Fri Oct 7 22:05:21 CEST 2005 - jpr@suse.de + +- Update beagle search patch + +------------------------------------------------------------------- +Thu Oct 6 22:32:13 CEST 2005 - federico@novell.com + +- Added nautilus-desktop-file-fallback-icons.diff so that .desktop + files which don't have an Icon property will fall back to some + reasonable icons depending on the type of the .desktop file. + +------------------------------------------------------------------- +Thu Oct 6 20:40:24 CEST 2005 - gekker@suse.de + +- Add DocPath to .desktop file + +------------------------------------------------------------------- +Thu Oct 6 14:23:59 CEST 2005 - sbrabec@suse.de + +- Require gnome-themes. + +------------------------------------------------------------------- +Wed Oct 5 02:33:09 CEST 2005 - federico@novell.com + +- Added nautilus-consistent-home-folder-name.diff to make the name of + $HOME consistent between the path bar and side bar in Nautilus and + GtkFileChooser. + +------------------------------------------------------------------- +Thu Sep 22 22:45:46 CEST 2005 - clahey@suse.de + +- Turn off computer icon by default. + +------------------------------------------------------------------- +Thu Sep 15 23:09:05 CEST 2005 - clahey@suse.de + +- Added nautilus-icon.patch to change main icon. bug #117333 + +------------------------------------------------------------------- +Thu Sep 8 21:54:02 CEST 2005 - federico@novell.com + +- Added nautilus-114914-trash-unmount-removable-volume.diff to fix bug + #114914. With this, trash windows will display the correct contents + if there are mounted removable volumes. + +------------------------------------------------------------------- +Thu Sep 8 16:40:29 CEST 2005 - adrian@suse.de + +- do not show up in konqueror menus (#115880) +- Computer menu entry broken other desktops + +------------------------------------------------------------------- +Mon Sep 5 19:29:04 CEST 2005 - gekker@suse.de + +- Add submount patch (90584) +- Fix spec to apply both desktop search patches + +------------------------------------------------------------------- +Mon Sep 5 11:46:32 CEST 2005 - mmj@suse.de + +- Update to version 2.12.0 (GNOME 2.12) + +------------------------------------------------------------------- +Sun Aug 28 21:07:12 CEST 2005 - jpr@suse.de + +- Default to browser mode (113690) + +- Add nautilus-search.desktop so gnome-panel has something to launch + for file searches (113691) + +------------------------------------------------------------------- +Tue Aug 23 12:06:53 CEST 2005 - rodrigo@suse.de + +- Update to version 2.11.92 + +------------------------------------------------------------------- +Tue Aug 16 14:52:29 CEST 2005 - sbrabec@suse.cz + +- Updated nautilus-search patch from Joe Shaw. + +------------------------------------------------------------------- +Thu Aug 11 22:19:34 CEST 2005 - gekker@suse.de + +- Update to version 2.11.91 + +------------------------------------------------------------------- +Tue Aug 2 22:58:57 CEST 2005 - gekker@suse.de + +- Update to version 2.11.90 + +------------------------------------------------------------------- +Wed Jul 13 13:56:01 CEST 2005 - sbrabec@suse.cz + +- Updated to version 2.11.2. +- Added x-nautilus-search beagle integration patch. +- Removed static modules and .la files for libnautilus-private. + +------------------------------------------------------------------- +Mon Jun 20 17:18:06 CEST 2005 - sbrabec@suse.cz + +- Updated to version 2.11.2. + +------------------------------------------------------------------- +Wed Jun 1 19:01:35 CEST 2005 - sbrabec@suse.cz + +- Fixed devel requirements. + +------------------------------------------------------------------- +Fri May 27 14:23:52 CEST 2005 - sbrabec@suse.cz + +- Removed obsolete PKG_CONFIG_PATH line. + +------------------------------------------------------------------- +Wed May 18 18:38:38 CEST 2005 - sbrabec@suse.cz + +- Updated to version 2.10.1. + +------------------------------------------------------------------- +Tue Mar 22 21:46:07 CET 2005 - clahey@suse.de + +- Fixes the bug where Places->Connect to server doesn't work + properly with SSH. + +------------------------------------------------------------------- +Mon Mar 21 18:13:14 CET 2005 - hhetter@suse.de + +- create .hidden if it does not exist on startup to hide some + kde services (#58875) + +------------------------------------------------------------------- +Mon Mar 14 09:49:41 CET 2005 - clahey@suse.de + +- Remove nautilus-background-memory.patch. Fixes 72063. + +------------------------------------------------------------------- +Wed Mar 9 22:40:19 CET 2005 - gekker@suse.de + +- Update to version 2.10.0 (GNOME 2.10). + +------------------------------------------------------------------- +Mon Mar 7 13:08:28 CET 2005 - gekker@suse.de + +- Add nautilus-background-memory.patch + +------------------------------------------------------------------- +Fri Mar 4 01:07:24 CET 2005 - gekker@suse.de + +- Update to version 2.9.92 + +------------------------------------------------------------------- +Fri Feb 11 16:12:21 CET 2005 - gekker@suse.de + +- Update to 2.9.91 +- Remove upstreamed libexif patch + +------------------------------------------------------------------- +Mon Feb 7 19:00:20 CET 2005 - gekker@suse.de + +- Update to version 2.9.90 + +------------------------------------------------------------------- +Mon Feb 7 11:16:59 CET 2005 - ro@suse.de + +- added gnome-menus to neededforbuild + +------------------------------------------------------------------- +Tue Feb 1 15:57:50 CET 2005 - ro@suse.de + +- fix last change + +------------------------------------------------------------------- +Mon Jan 31 15:22:34 CET 2005 - ro@suse.de + +- create directory in build-root before packaging + +------------------------------------------------------------------- +Fri Jan 28 16:19:20 CET 2005 - sbrabec@suse.cz + +- Packaged empty directory for extensions. + +------------------------------------------------------------------- +Wed Jan 19 20:03:01 CET 2005 - clahey@suse.de + +- Updated to version 2.9.2. + +------------------------------------------------------------------- +Sun Jan 16 20:04:52 CET 2005 - schwab@suse.de + +- Fix requires. + +------------------------------------------------------------------- +Thu Dec 16 18:08:03 CET 2004 - hvogel@suse.de + +- fix filelist + +------------------------------------------------------------------- +Thu Dec 16 17:56:17 CET 2004 - hvogel@suse.de + +- require gnome-icon-theme for the desktop file icons + +------------------------------------------------------------------- +Wed Dec 15 22:49:48 CET 2004 - hvogel@suse.de + +- fix desktop file + +------------------------------------------------------------------- +Tue Nov 23 15:50:32 CET 2004 - hhetter@suse.de + +- require gnome2-user-docs (#48272) + +------------------------------------------------------------------- +Fri Nov 19 14:20:09 CET 2004 - ro@suse.de + +- removed extra aclocal include directive + +------------------------------------------------------------------- +Mon Nov 1 10:43:33 CET 2004 - mmj@suse.de + +- Locale rename no to nb + +------------------------------------------------------------------- +Tue Oct 19 16:41:11 CEST 2004 - sbrabec@suse.cz + +- Fixed support for libexif > 0.5.12. + http://bugzilla.gnome.org/show_bug.cgi?id=143743 + +------------------------------------------------------------------- +Tue Oct 12 13:57:45 CEST 2004 - sbrabec@suse.cz + +- Fixed libexecdir for bi-arch (#47050). + +------------------------------------------------------------------- +Tue Oct 5 13:22:08 CEST 2004 - hhetter@suse.de + +- register more nautilus desktop files (#46811) + +------------------------------------------------------------------- +Mon Oct 4 19:42:43 CEST 2004 - clahey@suse.de + +- Updated string in browser-pref patch. + +------------------------------------------------------------------- +Wed Sep 29 18:09:45 CEST 2004 - sbrabec@suse.cz + +- Implemented Open button for mime check warning (#46070), + +------------------------------------------------------------------- +Wed Sep 29 13:25:00 CEST 2004 - hhetter@suse.de + +- fix Computer to drives location + +------------------------------------------------------------------- +Tue Sep 21 16:18:06 CEST 2004 - hhetter@suse.de + +- show "drives:" location instead of "computer:" and recognize + /var/lib/Desktop + +------------------------------------------------------------------- +Wed Sep 8 02:05:36 CEST 2004 - clahey@suse.de + +- Added OnlyShowIn=GNOME;. + +------------------------------------------------------------------- +Tue Aug 24 16:33:16 CEST 2004 - dave@suse.de + +- Added nautilus-location-crash.patch, ximian bug #63445 + +------------------------------------------------------------------- +Thu Aug 19 22:11:06 CEST 2004 - dave@suse.de + +- Added nautilus-submount.patch, fixes ximian bug #63101 + +------------------------------------------------------------------- +Tue Aug 17 21:01:25 CEST 2004 - dave@suse.de + +- Added nautilus-startup-notify.patch, fixes ximian bug #62605 + +------------------------------------------------------------------- +Thu Aug 12 22:01:33 CEST 2004 - dave@suse.de + +- Added patches: + nautilus-hide-desktop-files.patch - Update of + nautilus-hide-separators.patch, fixes ximian bug #62339 + nautilus-trim-desktop-menu.patch - fixes ximian bug #59110 + +------------------------------------------------------------------- +Thu Jul 29 22:44:56 CEST 2004 - dave@suse.de + +- Added patches: + nautilus-desktop-keybindings.patch + nautilus-hide-separators.patch + nautilus-name-length.patch + nautilus-netscape-url-dnd-format.patch + +------------------------------------------------------------------- +Wed Jun 23 00:41:26 CEST 2004 - dave@suse.de + +- Added nautilus-view-dispose.patch + +------------------------------------------------------------------- +Thu Jun 17 20:18:57 CEST 2004 - dave@suse.de + +- Updated to nautilus-2.6.3 + +------------------------------------------------------------------- +Fri Jun 4 21:34:32 CEST 2004 - clahey@suse.de + +- Updated to nautilus-2.6.2. + +------------------------------------------------------------------- +Tue May 11 20:59:33 CEST 2004 - clahey@suse.de + +- Added mailto patch. + +------------------------------------------------------------------- +Tue May 04 15:44:40 CEST 2004 - sbrabec@suse.cz + +- Updated to version 2.6.1 (GNOME 2.6). + +------------------------------------------------------------------- +Fri Apr 2 10:47:25 CEST 2004 - hhetter@suse.de + +- add drives:// to the uri schemes (Bug Id#37848) + +------------------------------------------------------------------- +Thu Apr 1 11:50:21 CEST 2004 - hhetter@suse.de + +- nautilus-uri-schemes.dif: add yast-settings:// and suse-menu:// + to the list of uris which desktop files are interpreted + (Bug Id#37848) + +------------------------------------------------------------------- +Mon Mar 22 17:42:59 CET 2004 - sbrabec@suse.cz + +- Provide and obsolete nautilus2-devel. + +------------------------------------------------------------------- +Mon Mar 15 14:50:07 CET 2004 - hhetter@suse.de + +- install MyComputer Icon on first user startup + +------------------------------------------------------------------- +Wed Mar 10 10:42:11 CET 2004 - sbrabec@suse.cz + +- Fixed gconf schemas installation (#33114). + +------------------------------------------------------------------- +Wed Mar 3 14:17:12 CET 2004 - hhetter@suse.de + +- remove control-center2 from #neededforbuild + +------------------------------------------------------------------- +Wed Feb 25 11:31:36 CET 2004 - hhetter@suse.de + +- apply nautilus-config-defaults.patch: start with sidebar + disabled, disable sound preview +- remove deprecated filesharing patch + +------------------------------------------------------------------- +Fri Feb 20 13:55:24 CET 2004 - sbrabec@suse.cz + +- Package renamed to nautilus. + +------------------------------------------------------------------- +Thu Feb 12 14:27:04 CET 2004 - hhetter@suse.de + +- gconf schema (de-)installation in %post and %postun + +------------------------------------------------------------------- +Mon Feb 9 15:33:59 CET 2004 - hhetter@suse.de + +- updated to version 2.4.2 [GNOME2.4.2] +- cs-typo patch has gone upstream, removed + +------------------------------------------------------------------- +Sat Jan 10 11:06:58 CET 2004 - adrian@suse.de + +- let -devel package require libgnomeui-devel + +------------------------------------------------------------------- +Mon Oct 27 12:41:09 CET 2003 - sbrabec@suse.cz + +- Updated to version 2.4.1. + +------------------------------------------------------------------- +Fri Oct 24 17:33:11 CEST 2003 - sbrabec@suse.cz + +- Fill start-here:// with more usable items. + +------------------------------------------------------------------- +Tue Oct 21 13:19:51 CEST 2003 - sbrabec@suse.cz + +- Typo fix (cs.po). + +------------------------------------------------------------------- +Tue Oct 07 17:29:38 CEST 2003 - sbrabec@suse.cz + +- Updated to version 2.4.0 (GNOME 2.4). + +------------------------------------------------------------------- +Mon Sep 22 11:21:28 CEST 2003 - sbrabec@suse.cz + +- Obsolete medusa1. + +------------------------------------------------------------------- +Wed Sep 17 14:31:52 CEST 2003 - kukuk@suse.de + +- Replace nautilus + +------------------------------------------------------------------- +Sun Sep 7 15:05:33 CEST 2003 - adrian@suse.de + +- add Categories + +------------------------------------------------------------------- +Mon Aug 25 11:45:57 CEST 2003 - hhetter@suse.de + +- add filesharing patches +- add filesharing setup tool + +------------------------------------------------------------------- +Tue Aug 19 15:25:52 CEST 2003 - sbrabec@suse.cz + +- Updated neededforbuild (rename of librsvg2, eel2). + +------------------------------------------------------------------- +Mon Jul 14 15:17:41 CEST 2003 - sbrabec@suse.cz + +- Fixed aclocal command. + +------------------------------------------------------------------- +Mon Jul 14 14:51:50 CEST 2003 - sbrabec@suse.cz + +- GNOME prefix change to /opt/gnome. + +------------------------------------------------------------------- +Wed Jun 25 19:04:18 CEST 2003 - sbrabec@suse.cz + +- Updated to version 2.2.4. +- Updated neededforbuild. +- Turned on cdparanoia interface. +- Fixed unpackaged files. +- Packaged more docs. +- Require control-center2. +- Use %find_lang. + +------------------------------------------------------------------- +Wed Mar 19 11:14:50 CET 2003 - hhetter@suse.de + +- updated to version 2.2.2 + +------------------------------------------------------------------- +Tue Feb 25 12:20:10 CET 2003 - hhetter@suse.de + +- launch nautilus with --no-desktop in desktop files + to prevent it from overtaking the desktop in other environments + as GNOME (#24105) + +------------------------------------------------------------------- +Thu Feb 20 16:44:01 CET 2003 - hhetter@suse.de + +- remove the starthere - link hack which was only for + 2.0.x versions of nautilus + +------------------------------------------------------------------- +Thu Feb 13 12:25:49 CET 2003 - sbrabec@suse.cz + +- Updated to version 2.2.1. + +------------------------------------------------------------------- +Mon Feb 3 16:23:20 CET 2003 - ro@suse.de + +- added startup-notification to neededforbuild + +------------------------------------------------------------------- +Wed Jan 29 09:28:26 CET 2003 - hhetter@suse.de + +- updated to version 2.2.0.2 + +------------------------------------------------------------------- +Mon Jan 20 17:51:00 CET 2003 - ro@suse.de + +- update to 2.1.91 + +------------------------------------------------------------------- +Mon Dec 16 16:03:47 CET 2002 - sbrabec@suse.cz + +- FHS fix. +- Updated %files. +- Quick fix of starthere icon look. + +------------------------------------------------------------------- +Thu Dec 12 13:38:08 CET 2002 - sbrabec@suse.cz + +- Added /media path patch (fixes desktop icon look for removable + devices). + +------------------------------------------------------------------- +Fri Nov 29 09:25:34 CET 2002 - hhetter@suse.de + +- updated to version 2.0.8 [GNOME 2.0.3] + +------------------------------------------------------------------- +Thu Oct 24 16:22:06 CEST 2002 - hhetter@suse.de + +- applied new ja-patch from mfabian (partly upstream) +- updated to version 2.0.7 + +------------------------------------------------------------------- +Mon Oct 21 16:42:12 CEST 2002 - mfabian@suse.de + +- fix corrupted character in ja.po + +------------------------------------------------------------------- +Tue Sep 24 10:15:00 CEST 2002 - sbrabec@suse.cz + +- Added alsa-devel to neededforbuild, because esound-devel can require it. + +------------------------------------------------------------------- +Thu Sep 19 11:03:36 CEST 2002 - sbrabec@suse.cz + +- Added alsa to neededforbuild, because esound can depend on it. + +------------------------------------------------------------------- +Tue Sep 17 15:39:06 CEST 2002 - hhetter@suse.de + +- added better hu po-file from tvamosi + +------------------------------------------------------------------- +Tue Sep 17 09:48:37 CEST 2002 - hhetter@suse.de + +- fix hungarian translation + +------------------------------------------------------------------- +Tue Aug 20 11:22:36 CEST 2002 - hhetter@suse.de + +- added PreReq: filesystem + +------------------------------------------------------------------- +Tue Aug 6 11:36:03 CEST 2002 - hhetter@suse.de + +- updated to version 2.0.3 + * Drag and drop has been implemented in the list view. + * Performance enhancements in the icon factory. + * Various bugfixes. + +------------------------------------------------------------------- +Sat Jul 27 15:40:52 CEST 2002 - adrian@suse.de + +- fix neededforbuild +- use %run_ldconfig + +------------------------------------------------------------------- +Fri Jul 26 08:58:12 CEST 2002 - hhetter@suse.de + +- updated to version 2.0.2 + * List view does not hang anymore + * reflect changes in eel 2.0.2 (background api) + * fix crash when invoking nautilus -q" + +------------------------------------------------------------------- +Thu Jul 25 14:35:06 CEST 2002 - hhetter@suse.de + +- fix filelist + +------------------------------------------------------------------- +Tue Jul 23 09:49:17 CEST 2002 - hhetter@suse.de + +- updated to version 2.0.1 + * Various UI cleanups from the ui review + * Various bugfixes + * The Gnome Nautilus theme now follows the gtk+ theme + better + * Window geometry is stored even in + open-directories-in-same-window + * All executable bonobo components moved into libexec. + * Some performance improvements + * Accessibility fixes + * Add support for kernel supermount patch + * Read desktop file icons according to the icon theme + specification + * New throbber for the gnome theme + * large version of trash icon + * Better handling of disk ejecting + * Proper handling of launching desktop files according + to the spec + +------------------------------------------------------------------- +Thu Jun 20 16:55:21 CEST 2002 - hhetter@suse.de + +- don't install schemas while make install + +------------------------------------------------------------------- +Fri Jun 14 11:47:32 CEST 2002 - hhetter@suse.de + +- filelist lookover +- supply schema file + +------------------------------------------------------------------- +Tue Jun 11 15:28:17 CEST 2002 - hhetter@suse.de + +- updated to version 2.0.0 + +------------------------------------------------------------------- +Fri Jun 7 12:10:23 CEST 2002 - hhetter@suse.de + +- gnome-common in #neededforbuild + +------------------------------------------------------------------- +Fri Jun 7 09:40:41 CEST 2002 - hhetter@suse.de + +- really build nautilus treeview and notes + +------------------------------------------------------------------- +Thu Jun 6 01:27:37 CEST 2002 - ro@suse.de + +- fix libdir usage + +------------------------------------------------------------------- +Wed Jun 5 16:19:54 CEST 2002 - hhetter@suse.de + +- added missing pkgtool files + +------------------------------------------------------------------- +Wed Jun 5 09:32:52 CEST 2002 - hhetter@suse.de + +- updated to version 1.1.19, source frozen +- seperation from mozilla and gtkhtml modules + +------------------------------------------------------------------- +Wed May 22 16:03:31 CEST 2002 - meissner@suse.de + +- changed neededforbuild so we can run autoconf/aclocal, also added + libjpeg. +- %_lib fixes. + +------------------------------------------------------------------- +Tue May 7 12:09:21 CEST 2002 - ro@suse.de + +- up to 1.1.15 +- added gail to neededforbuild (for eel2) + +------------------------------------------------------------------- +Fri Feb 1 00:26:05 CET 2002 - ro@suse.de + +- changed neededforbuild to + +------------------------------------------------------------------- +Thu Jan 24 16:01:49 CET 2002 - hhetter@suse.de + +- initial SuSE package for GNOME 2.0 platform + diff --git a/nautilus.spec b/nautilus.spec new file mode 100644 index 0000000..7994379 --- /dev/null +++ b/nautilus.spec @@ -0,0 +1,807 @@ +# +# spec file for package nautilus (Version 2.16.1) +# +# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. +# This file and all modifications and additions to the pristine +# package are under the same license as the package itself. +# +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + +# norootforbuild + +Name: nautilus +BuildRequires: cdparanoia eel-devel gnome-common gnome-icon-theme gnome-patch-translation intltool libbeagle-devel libexif libgnomeui-devel libidl librsvg-devel mDNSResponder-devel perl-XML-Parser update-desktop-files +License: GNU General Public License (GPL) +Group: Productivity/File utilities +Version: 2.16.1 +Release: 41 +Summary: The GNOME 2.x Desktop File Manager +Source: ftp://ftp.gnome.org/pub/gnome/sources/nautilus/2.16/%{name}-%{version}.tar.bz2 +URL: http://www.gnome.org +BuildRoot: %{_tmppath}/%{name}-%{version}-build +Patch1: nautilus-config-defaults.patch +Patch2: nautilus-name-length.patch +Patch3: nautilus-onlyshowin.patch +Patch4: nautilus-search-desktop.patch +Patch5: nautilus-icon.patch +Patch6: nautilus-docpath.patch +Patch7: nautilus-disable-zoom-control-and-view-as-option-menu.patch +Patch8: nautilus-default-thumbnail-size.diff +Patch9: nautilus-146947-rename-bad-parameters-message.diff +Patch10: nautilus-mime.patch +Patch11: nautilus-158158-ignore-foreign-desktop-files.diff +Patch12: nautilus-212649-search-bar-visibility.patch +Patch13: nautilus-6014-network-servers-in-places-sidebar.diff +Patch14: nautilus-206369-desktop-icon-overlap.diff +Patch15: nautilus-drives-and-volumes-on-desktop.diff +Patch16: nautilus-debug-log.diff +Requires: gnome2-user-docs gnome-icon-theme +Provides: nautilus2 +Obsoletes: nautilus2 +Obsoletes: medusa < 0.6 +Autoreqprov: on + +%gconf_schemas_prereq + +%description +This package contains Nautilus, the advanced file manager for the GNOME +2.x Desktop platform. + + + +%package devel +Summary: Development Package for Nautilus +Group: Development/Libraries/GNOME +Requires: %{name} = %{version} libgnomeui-devel glib2-devel gtk2-devel gnome-vfs2-devel +Provides: nautilus2-devel +Obsoletes: nautilus2-devel + +%description devel +This package contains all files needed to develop programs that use +features of the Nautilus file manager. + + + +%prep +%setup -q +gnome-patch-translation-prepare +%patch1 -p1 +%patch2 -p0 +%patch3 -p1 +%if ! %sles_version +%patch4 +%endif +%patch5 -p1 +%patch6 -p0 +%patch7 +%patch8 -p1 +%patch9 -p0 +%patch10 +%patch11 -p1 +%patch12 +%patch13 -p1 +%patch14 -p1 +%patch15 -p1 +%patch16 -p0 +# FIXME: this code updates translation for upstreamed patches. +cd po +intltool-update --pot +for PO in *.po ; do + if test -f ../po-update/$PO ; then + msgmerge --compendium=../po-update/$PO -o $PO.new $PO nautilus.pot + mv $PO.new $PO + fi +done +cd .. +# END +gnome-patch-translation-update + +%build +autoreconf -f -i +# needed for nautilus-2.16.1: +export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" +%configure\ + --disable-update-mimedb +# only for patch2: +make nautilus.desktop src/network-scheme.desktop +make %{?jobs:-j%jobs} + +%install +make install DESTDIR=$RPM_BUILD_ROOT +rm docs/Makefile* +ln -s ../icons/gnome/24x24/devices/gnome-fs-client.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/ +ln -s ../icons/gnome/24x24/places/gnome-fs-home.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/ +ln -s ../icons/gnome/48x48/apps/gnome-searchtool.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/ +%suse_update_desktop_file -N "Nautilus" -G "File Browser" -D "user-guide/user-guide.xml?gosnautilus-1" nautilus System FileManager +%suse_update_desktop_file -G "File Browser" -D "user-guide/user-guide.xml?gosnautilus-1" network-scheme System Network +%suse_update_desktop_file -D "user-guide/user-guide.xml?gosnautilus-1" nautilus-computer System FileManager +%if ! %sles_version +%suse_update_desktop_file -G "Nautilus Search Tool" -D "user-guide/user-guide.xml?gosnautilus-1" nautilus-search System FileManager +%endif +%suse_update_desktop_file -G "File Browser" -D "user-guide/user-guide.xml?gosnautilus-1" nautilus-home System FileManager +mkdir -p $RPM_BUILD_ROOT/%{_libdir}/nautilus/extensions-1.0 +%find_lang %{name} +%find_gconf_schemas +cat %{name}.lang %{name}.schemas_list >%{name}.lst + +%clean +rm -rf $RPM_BUILD_ROOT + +%pre -f %{name}.schemas_pre + +%post +%run_ldconfig +if test -x usr/bin/update-mime-database ; then + usr/bin/update-mime-database usr/share/mime >/dev/null +fi + +%posttrans -f %{name}.schemas_posttrans + +%preun -f %{name}.schemas_preun + +%postun +%run_ldconfig +if test -x usr/bin/update-mime-database ; then + usr/bin/update-mime-database usr/share/mime >/dev/null +fi + +%files -f %{name}.lst +%defattr(-,root,root) +%doc AUTHORS COPYING COPYING-DOCS ChangeLog MAINTAINERS NEWS README THANKS TODO docs/* +%{_bindir}/* +%{_datadir}/applications/*.desktop +%{_datadir}/mime/packages/*.xml +%{_datadir}/nautilus +%{_datadir}/pixmaps/nautilus +%{_datadir}/pixmaps/*.png +%{_libdir}/*.so.* +%{_libdir}/bonobo/servers/*.server +%dir %{_libdir}/nautilus +%dir %{_libdir}/nautilus/extensions-1.0 + +%files devel +%defattr(-,root,root) +%{_libdir}/*.so +%{_libdir}/*.*a +%{_includedir}/* +%{_libdir}/pkgconfig/*.pc + +%changelog -n nautilus +* Mon Dec 18 2006 - sbrabec@suse.cz +- Prefix changed to /usr. +- Spec file cleanup. +* Tue Nov 21 2006 - sbrabec@suse.cz +- Do not explicitly require mDNSResponder-lib blocking avahi compat + package. +* Wed Nov 08 2006 - federico@novell.com +- Updated nautilus-drives-and-volumes-on-desktop.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=215351. Floppy icons + disappeared from the desktop after unmounting the floppy. This also + fixes https://bugzilla.novell.com/show_bug.cgi?id=218910, where + there was a race condition when mounting drives. This caused the + activation URIs of the corresponding NautilusFiles not to be updated + correctly. +* Wed Nov 01 2006 - federico@novell.com +- Removed nautilus-hide-desktop-files.patch. This was used for the + old "applications://" VFS scheme, which is deprecated now. +- Removed nautilus-submount.patch, since we no longer use submount (subfs). +- Removed nautilus-142860-vfs-drive-for-extensions.diff, since that + feature appeared upstream since Nautilus 2.14. This is what lets + Nautilus extensions look at the GnomeVFSDrive for a file, so that + they can install menu items specific to drives (e.g. like + nautilus-cd-burner). +- Removed nautilus-172870-support-drives-and-volumes.diff and + nautilus-155010-desktop-volume-policy.diff, since they need to be + reworked for the code in Nautilus-2.16. +- Added nautilus-6014-network-servers-in-places-sidebar.diff, to fix + the part of https://bugzilla.novell.com/show_bug.cgi?id=6014 that is + not yet in Nautilus 2.16. This adds a "Network Servers" item in the + Places sidebar. +- Added nautilus-206369-desktop-icon-overlap.diff as an updated + and consolidated version of + nautilus-155337-icon-positioning-on-reload.diff and + nautilus-174766-fix-lazy-positioning.diff. This is to fix the bug + where desktop icons get overlapped or rearranged when a new volume + icon appears, or when the desktop is reloaded. +- Added nautilus-drives-and-volumes-on-desktop.diff as a partly + updated version of nautilus-172870-support-drives-and-volumes.diff. +- Added nautilus-debug-log.diff. This provides logging functionality + to aid debugging. +- Updated descriptions inside the rest of the patches. +- Renumbered patches. +* Tue Oct 31 2006 - joeshaw@suse.de +- Add a patch to ensure that the search entry bar is displayed + when navigating to the x-nautilus-search:/// URI. (bnc #212649) +* Sat Oct 14 2006 - danw@suse.de +- Remove dead patches +* Tue Oct 03 2006 - jhargadon@suse.de +- update to version 2.16.1 +- Default to search in current directory for non-indexed search +- Fix clash with symbol names in gtk+ +* Wed Sep 20 2006 - sbrabec@suse.cz +- Update MIME database in scriptlets (#201729). +* Thu Sep 14 2006 - jhargadon@suse.de +- update to version 2.16.0 +- Handle enter activation when using typeahead search +- Avoid using gnome_vfs_is_local in wrong places +- Translations +* Wed Aug 30 2006 - jhargadon@suse.de +- update to version 2.15.92.1 +- Fix crash on startup +- Fix crash on changing owner/group of file +- Fix double free +- Make sure all strings are displayed translated +* Fri Aug 18 2006 - jhargadon@suse.de +- update to version 2.15.91 +- Use gtk recent files code +- Fix file change notification regression +- Don't display raw form of selinux contexts +- Import lates EggSequence with bugfixes +- DnD fixes +- Read .hidden symlinks +- Fix down navigation in last column, next to last row +- Submenu support for extensions +- Improved beagle daemon detection +- Enable D'n'D reordering in the places sidebar +- New icons for trash operations +- Add a button/text toggle button to the location bar +- Fix leak +* Mon Aug 07 2006 - gekker@suse.de +- Update to version 2.15.4 +- Remove upstreamed patches + * New permission dialog with recursion and selinx support + * Improve extension interface + * Add complete session management + * Handle removal of the displayed location more elegantly + * Support dropping uris, urls and text to subfolders + * Don't allow formating of mounted floppies + * Perfomance fixes + * Don't use deprecated eel features + * Improve startup performance + * Use GOption + * Fix selection box width calculation + * Improve file permission handling + * Add volume operations to the file menu, tree and places sidebar + * New po/LINGUAS handling + * Smarter date handling for images + * HIG fixes + * Fix crashes + * Fixes for icons and thumbnailing + * Show network volumes in the places sidebar + * Fix progress dialog showing the wrong file + * Translation updates + * Use --no-desktop option for all desktop files + * Startup performance improvements + * Make files copied from read-only source writeable + * Don't allow bookmarking x-desktop:/// + * Add help buttons to several dialogs + * Fix SVG file identification + * Properly break down URIs for connect to server ui + * Show unmounted but user-visible drives in the places sidebar + * Display more info in the progress dialog when preparing + * Smarter DnD target selection + * GnomeGoals: Use po/LINGUAS + * Fix deadlock when dragging over list view in some conditions + * Don't show folder count for smb shares + * Close window when folder moves to trash + * Fix deep count in properties dialog in some cases + * Avoid calculating mime lists for activation + * Remove blank error dialog on mount when using gnome-mount + * Better filename linebreaking at punctuation marks. + * List view: If a rename moves the file in the view, scroll to the new position + * Better handling of broken filename encoding for link targets + * Browser mode: don't close window on up if current directory has been removed + * Pass original files, not target files to property page providers. + This allows property page extensions to look at desktop files and symlinks. + * Fix opening saved searches file from outside nautilus + * Add option to always use the location bar to the preferences dialog + * Show detailed file size in the properties dialog + * Open modules with BIND_LOCAL + * Add Network to places menu + * Fix sort by atime + * Add support for searching for custom mime type + * Much better activation of multiple files + * Handle new background image zooming mode + * Add optional support for Tracker indexer + * Added initial support for search + * Better handling of opening multiple files + * View update optimizations + * No titles for alert dialogs + * Use access() to determine permissions + * Fix mime list problem introduced with sort change + * Finally fix tree sidebar crash + * ctrl-shift-g goes backwards in typeahead + * Add Skip all button in copy/move conflict dialog + * Position new files/folders correctly in manual layout mode + * Fix desktop redraw issues on non-100%% zoom levels + * Adds volume/drive api for modules + * GtkTreeView style typeahead + * '/' opens location dialog/entry + * middle click in browser mode opens new window + * Handle cancellation of authentication better + * Add format menu item for floppy drives +* Wed Jun 07 2006 - jpr@suse.de +- Don't update the .desktop file if it doesn't exist + (really fix #177551) +* Thu Jun 01 2006 - federico@novell.com +- Added nautilus-172870-support-drives-and-volumes.diff. This fixes + https://bugzilla.novell.com/show_bug.cgi?id=172870 by adding proper + support for displaying unmounted drives as well as mounted volumes. + This also makes floppies work from the desktop. +- Added nautilus-174766-fix-lazy-positioning.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=174766. This makes + volume icons not overlap with other icons in the desktop when + volumes get mounted. +* Tue May 23 2006 - federico@novell.com +- Updated nautilus-158158-ignore-foreign-desktop-files.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=177777. All .desktop + files were being filtered erroneously if they didn't have + OnlyShowIn/NotShowIn keys. +* Mon May 22 2006 - joeshaw@suse.de +- Only patch in the nautilus-search.desktop file on SL, not SLE, + since the new main menu has search built-in. (bnc #177551) +* Wed May 17 2006 - sbrabec@suse.cz +- nautilus-search-bar.c added to POTFILES.in. +* Wed May 17 2006 - sbrabec@suse.cz +- Fixed I18N problems: + * untranslatable Search string (#173448) + * uninitialized locale (#173448#c3) +* Wed May 17 2006 - federico@novell.com +- Updated nautilus-158158-ignore-foreign-desktop-files.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=176123. The + "OnlyShowIn" key in desktop files can contain multiple items. Also + pay attention to the "NotShowIn" key. +* Mon May 15 2006 - federico@novell.com +- Added nautilus-158279-add-location-toggle-button.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=158279. This adds a + toggle button to the left of path bar in navigation windows. + Pressing this button will switch to using a location entry instead + of the path bar. +* Fri May 12 2006 - federico@novell.com +- Updated nautilus-155010-desktop-volume-policy.diff; this fixes + https://bugzilla.novell.com/show_bug.cgi?id=175076. This fixes a + crash when dragging a volume to the trash. +* Wed May 10 2006 - joeshaw@suse.de +- Update search patch to remove annoying "queuing " + debug spew. +* Wed May 10 2006 - federico@novell.com +- Added nautilus-142860-vfs-drive-for-extensions.diff to fix the + Nautilus part of bug + https://bugzilla.novell.com/show_bug.cgi?id=142860. This lets + Nautilus extensions see the drives that may correspond to desktop + icons. +* Mon May 08 2006 - federico@novell.com +- Added nautilus-66073-update-progress-dialog.diff to fix bug + https://bugzilla.novell.com/show_bug.cgi?id=66073. The progress + dialog for file operations now gets updated correctly if several + small files get copied before a large file. +* Mon May 01 2006 - dobey@suse.de +- Added nautilus-trash-icon.patch to use the theme's trash icon, + rather than the delete icon, for the "Move to Trash" menu items +* Thu Apr 27 2006 - federico@novell.com +- Updated nautilus-155010-desktop-volume-policy.diff to fix bug + https://bugzilla.novell.com/show_bug.cgi?id=168280. This makes + Nautilus not display two volume icons for no-media-check devices. +* Wed Apr 19 2006 - federico@suse.de +- Removed dot-hidden.dif. This fixes bug #158158 completely; that + patch is obsoleted by the updated + nautilus-158158-ignore-foreign-desktop-files.diff. +* Tue Apr 18 2006 - federico@novell.com +- Added nautilus-158158-ignore-foreign-desktop-files.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=158158. This makes + Nautilus ignore .desktop files whose OnlyShowIn property indicates + that they are specific to another desktop environment. +* Tue Apr 18 2006 - joeshaw@suse.de +- Update nautilus-search patch to correctly handle a search URI + being passed into nautilus on the command-line. (bnc #166158) +* Tue Apr 18 2006 - federico@novell.com +- Added nautilus-155010-desktop-volume-policy.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=155010. This makes + Nautilus display the same set of drives and volumes as GTK+'s file + chooser. It will also display certain drives on the desktop for + easy access (in particular, drives that do not support notification + of inserted media, so we always need them to be accessible through + the GUI, as opposed to being automounted). +* Wed Mar 29 2006 - sbrabec@suse.cz +- Handle inode/directory MIME type (#161824). +* Wed Mar 22 2006 - dobey@suse.de +- Added nautilus-unscaled-sidebar-menu-icons.patch to avoid scaling + icons in the sidebar and where those same icons are used in menus +* Mon Mar 20 2006 - federico@novell.com +- Added nautilus-155337-icon-positioning-on-reload.diff to fix bug + [#155337]. Now icons in the desktop are not repositioned if the + desktop gets reloaded. +* Fri Mar 17 2006 - federico@novell.com +- Added nautilus-perf-no-burn-uri-for-desktop.diff. This makes + Nautilus not do unnecessary work when initializing the desktop, + saving 1 second during login. +- Added nautilus-icon-registration.diff. This makes Nautilus do less + work when registering its stock icons, saving about 1.5 seconds + during login. +* Tue Mar 14 2006 - ro@suse.de +- use beagle on ppc64 as well +* Thu Mar 02 2006 - sbrabec@suse.cz +- Translations from upstream moved to gnome-patch-translation. +* Fri Feb 24 2006 - federico@novell.com +- Added nautilus-130796-bad-icon-placement.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=130796. This makes + desktop icons with very wide labels be placed correctly, instead of + being placed flush left with the edge of the screen. +- Removed nautilus-115467-dont-overlap-volume-icons.diff as it is + integrated into the new patch. +* Wed Feb 22 2006 - joeshaw@suse.de +- Update nautilus search patch to not display UI when beagled + isn't running. +* Sun Feb 19 2006 - aj@suse.de +- Reduce BuildRequires. +* Sat Feb 18 2006 - gekker@suse.de +- ficup .desktop files for UI team +* Mon Feb 13 2006 - federico@novell.com +- Added nautilus-130796-bad-icon-placement.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=130796. This makes + desktop icons with very wide labels be placed correctly, instead of + being placed flush left with the edge of the screen. +* Thu Feb 09 2006 - federico@novell.com +- Updated nautilus-6014-network-servers-desktop-icon.diff. Now we + hide the "Network Servers" icon in the desktop by default, but we + have new such items in the Places sidebar and the Go menu. This + fixes https://bugzilla.novell.com/show_bug.cgi?id=149685 +* Wed Feb 01 2006 - sbrabec@suse.cz +- Use translation compendium gnome-patch-translation. +* Tue Jan 31 2006 - federico@novell.com +- Added nautilus-146947-rename-bad-parameters-message.diff to fix bug + [#146947]. If you try to use illegal characters when renaming a file + in an SMB share, Nautilus will now give you a better error message + instead of a generic "couldn't rename" one. +* Wed Jan 25 2006 - mls@suse.de +- converted neededforbuild to BuildRequires +* Mon Jan 23 2006 - joeshaw@suse.de +- Update search patch to only search the files backend +* Wed Jan 18 2006 - gekker@suse.de +- Remove Requires: on control-center2 and gnome-themes (#142237) +* Tue Dec 06 2005 - sbrabec@suse.cz +- Do not require beagle on ppc64. +- Enabled parallel build. +* Mon Dec 05 2005 - federico@novell.com +- Removed nautilus-136167-no-default-window.diff. This is not the right fix, as external + apps rely on being to call just "nautilus" without command-line arguments, so that + Nautilus will open a window showing your Home directory. Moreover, there's no way for + Nautilus to tell if it was (re)started by the session manager upon login, or as a result + of exiting abnormally. +* Thu Dec 01 2005 - federico@novell.com +- Updated nautilus-6014-network-servers-desktop-icon.diff. When doing "Clean up + by Name", the Network Servers icon will now be put after your Home icon. +* Thu Dec 01 2005 - federico@novell.com +- Added nautilus-6014-network-servers-desktop-icon.diff to fix bug #6014. This + Creates a "Network Servers" icon in the desktop. +- Added nautilus-136167-no-default-window.diff to fix bug #136167. + When restarted abnormally, Nautilus will no longer open a window for + your home directory. +* Wed Nov 30 2005 - gekker@suse.de +- Update to version 2.12.2 +* Mon Nov 28 2005 - gekker@suse.de +- Enable nauilus sidebar by default (#132383). +* Thu Nov 17 2005 - federico@novell.com +- Added nautilus-default-thumbnail-size.diff. This makes the default size for + thumbnails be 64 pixels, which looks better with the default theme than the + old value of 96 pixels. +* Mon Nov 14 2005 - joeshaw@suse.de +- Update nautilus-search patch to 20051101. +- Add patch to hide the zoom and "view as" controls from the + location bar. +* Tue Nov 08 2005 - federico@novell.com +- Added nautilus-115467-dont-overlap-volume-icons.diff to fix part of + bug #115467. With this, Nautilus will not overlap the icons when + you insert a CD or USB stick. +* Wed Nov 02 2005 - federico@novell.com +- Updated nautilus-submount.patch to fix bug #127509. With this, the + "Unmount volume" command will appear again for network volumes. +* Thu Oct 13 2005 - gekker@suse.de +- Update to version 2.12.1 +- Remove upstreamed patch +- Re-diff some patches so that they apply to new version +* Fri Oct 07 2005 - jpr@suse.de +- Update beagle search patch +* Thu Oct 06 2005 - federico@novell.com +- Added nautilus-desktop-file-fallback-icons.diff so that .desktop + files which don't have an Icon property will fall back to some + reasonable icons depending on the type of the .desktop file. +* Thu Oct 06 2005 - gekker@suse.de +- Add DocPath to .desktop file +* Thu Oct 06 2005 - sbrabec@suse.de +- Require gnome-themes. +* Wed Oct 05 2005 - federico@novell.com +- Added nautilus-consistent-home-folder-name.diff to make the name of + $HOME consistent between the path bar and side bar in Nautilus and + GtkFileChooser. +* Thu Sep 22 2005 - clahey@suse.de +- Turn off computer icon by default. +* Thu Sep 15 2005 - clahey@suse.de +- Added nautilus-icon.patch to change main icon. bug #117333 +* Thu Sep 08 2005 - federico@novell.com +- Added nautilus-114914-trash-unmount-removable-volume.diff to fix bug + [#114914]. With this, trash windows will display the correct contents + if there are mounted removable volumes. +* Thu Sep 08 2005 - adrian@suse.de +- do not show up in konqueror menus (#115880) +- Computer menu entry broken other desktops +* Mon Sep 05 2005 - gekker@suse.de +- Add submount patch (90584) +- Fix spec to apply both desktop search patches +* Mon Sep 05 2005 - mmj@suse.de +- Update to version 2.12.0 (GNOME 2.12) +* Sun Aug 28 2005 - jpr@suse.de +- Default to browser mode (113690) +- Add nautilus-search.desktop so gnome-panel has something to launch + for file searches (113691) +* Tue Aug 23 2005 - rodrigo@suse.de +- Update to version 2.11.92 +* Tue Aug 16 2005 - sbrabec@suse.cz +- Updated nautilus-search patch from Joe Shaw. +* Thu Aug 11 2005 - gekker@suse.de +- Update to version 2.11.91 +* Tue Aug 02 2005 - gekker@suse.de +- Update to version 2.11.90 +* Wed Jul 13 2005 - sbrabec@suse.cz +- Updated to version 2.11.2. +- Added x-nautilus-search beagle integration patch. +- Removed static modules and .la files for libnautilus-private. +* Mon Jun 20 2005 - sbrabec@suse.cz +- Updated to version 2.11.2. +* Wed Jun 01 2005 - sbrabec@suse.cz +- Fixed devel requirements. +* Fri May 27 2005 - sbrabec@suse.cz +- Removed obsolete PKG_CONFIG_PATH line. +* Wed May 18 2005 - sbrabec@suse.cz +- Updated to version 2.10.1. +* Tue Mar 22 2005 - clahey@suse.de +- Fixes the bug where Places->Connect to server doesn't work + properly with SSH. +* Mon Mar 21 2005 - hhetter@suse.de +- create .hidden if it does not exist on startup to hide some + kde services (#58875) +* Mon Mar 14 2005 - clahey@suse.de +- Remove nautilus-background-memory.patch. Fixes 72063. +* Wed Mar 09 2005 - gekker@suse.de +- Update to version 2.10.0 (GNOME 2.10). +* Mon Mar 07 2005 - gekker@suse.de +- Add nautilus-background-memory.patch +* Fri Mar 04 2005 - gekker@suse.de +- Update to version 2.9.92 +* Fri Feb 11 2005 - gekker@suse.de +- Update to 2.9.91 +- Remove upstreamed libexif patch +* Mon Feb 07 2005 - gekker@suse.de +- Update to version 2.9.90 +* Mon Feb 07 2005 - ro@suse.de +- added gnome-menus to neededforbuild +* Tue Feb 01 2005 - ro@suse.de +- fix last change +* Mon Jan 31 2005 - ro@suse.de +- create directory in build-root before packaging +* Fri Jan 28 2005 - sbrabec@suse.cz +- Packaged empty directory for extensions. +* Wed Jan 19 2005 - clahey@suse.de +- Updated to version 2.9.2. +* Sun Jan 16 2005 - schwab@suse.de +- Fix requires. +* Thu Dec 16 2004 - hvogel@suse.de +- fix filelist +* Thu Dec 16 2004 - hvogel@suse.de +- require gnome-icon-theme for the desktop file icons +* Wed Dec 15 2004 - hvogel@suse.de +- fix desktop file +* Tue Nov 23 2004 - hhetter@suse.de +- require gnome2-user-docs (#48272) +* Fri Nov 19 2004 - ro@suse.de +- removed extra aclocal include directive +* Mon Nov 01 2004 - mmj@suse.de +- Locale rename no to nb +* Tue Oct 19 2004 - sbrabec@suse.cz +- Fixed support for libexif > 0.5.12. + http://bugzilla.gnome.org/show_bug.cgi?id=143743 +* Tue Oct 12 2004 - sbrabec@suse.cz +- Fixed libexecdir for bi-arch (#47050). +* Tue Oct 05 2004 - hhetter@suse.de +- register more nautilus desktop files (#46811) +* Mon Oct 04 2004 - clahey@suse.de +- Updated string in browser-pref patch. +* Wed Sep 29 2004 - sbrabec@suse.cz +- Implemented Open button for mime check warning (#46070), +* Wed Sep 29 2004 - hhetter@suse.de +- fix Computer to drives location +* Tue Sep 21 2004 - hhetter@suse.de +- show "drives:" location instead of "computer:" and recognize + /var/lib/Desktop +* Wed Sep 08 2004 - clahey@suse.de +- Added OnlyShowIn=GNOME;. +* Tue Aug 24 2004 - dave@suse.de +- Added nautilus-location-crash.patch, ximian bug #63445 +* Thu Aug 19 2004 - dave@suse.de +- Added nautilus-submount.patch, fixes ximian bug #63101 +* Tue Aug 17 2004 - dave@suse.de +- Added nautilus-startup-notify.patch, fixes ximian bug #62605 +* Thu Aug 12 2004 - dave@suse.de +- Added patches: + nautilus-hide-desktop-files.patch - Update of + nautilus-hide-separators.patch, fixes ximian bug #62339 + nautilus-trim-desktop-menu.patch - fixes ximian bug #59110 +* Thu Jul 29 2004 - dave@suse.de +- Added patches: + nautilus-desktop-keybindings.patch + nautilus-hide-separators.patch + nautilus-name-length.patch + nautilus-netscape-url-dnd-format.patch +* Wed Jun 23 2004 - dave@suse.de +- Added nautilus-view-dispose.patch +* Thu Jun 17 2004 - dave@suse.de +- Updated to nautilus-2.6.3 +* Fri Jun 04 2004 - clahey@suse.de +- Updated to nautilus-2.6.2. +* Tue May 11 2004 - clahey@suse.de +- Added mailto patch. +* Tue May 04 2004 - sbrabec@suse.cz +- Updated to version 2.6.1 (GNOME 2.6). +* Fri Apr 02 2004 - hhetter@suse.de +- add drives:// to the uri schemes (Bug Id#37848) +* Thu Apr 01 2004 - hhetter@suse.de +- nautilus-uri-schemes.dif: add yast-settings:// and suse-menu:// + to the list of uris which desktop files are interpreted + (Bug Id#37848) +* Mon Mar 22 2004 - sbrabec@suse.cz +- Provide and obsolete nautilus2-devel. +* Mon Mar 15 2004 - hhetter@suse.de +- install MyComputer Icon on first user startup +* Wed Mar 10 2004 - sbrabec@suse.cz +- Fixed gconf schemas installation (#33114). +* Wed Mar 03 2004 - hhetter@suse.de +- remove control-center2 from #neededforbuild +* Wed Feb 25 2004 - hhetter@suse.de +- apply nautilus-config-defaults.patch: start with sidebar + disabled, disable sound preview +- remove deprecated filesharing patch +* Fri Feb 20 2004 - sbrabec@suse.cz +- Package renamed to nautilus. +* Thu Feb 12 2004 - hhetter@suse.de +- gconf schema (de-)installation in %%post and %%postun +* Mon Feb 09 2004 - hhetter@suse.de +- updated to version 2.4.2 [GNOME2.4.2] +- cs-typo patch has gone upstream, removed +* Sat Jan 10 2004 - adrian@suse.de +- let -devel package require libgnomeui-devel +* Mon Oct 27 2003 - sbrabec@suse.cz +- Updated to version 2.4.1. +* Fri Oct 24 2003 - sbrabec@suse.cz +- Fill start-here:// with more usable items. +* Tue Oct 21 2003 - sbrabec@suse.cz +- Typo fix (cs.po). +* Tue Oct 07 2003 - sbrabec@suse.cz +- Updated to version 2.4.0 (GNOME 2.4). +* Mon Sep 22 2003 - sbrabec@suse.cz +- Obsolete medusa1. +* Wed Sep 17 2003 - kukuk@suse.de +- Replace nautilus +* Sun Sep 07 2003 - adrian@suse.de +- add Categories +* Mon Aug 25 2003 - hhetter@suse.de +- add filesharing patches +- add filesharing setup tool +* Tue Aug 19 2003 - sbrabec@suse.cz +- Updated neededforbuild (rename of librsvg2, eel2). +* Mon Jul 14 2003 - sbrabec@suse.cz +- Fixed aclocal command. +* Mon Jul 14 2003 - sbrabec@suse.cz +- GNOME prefix change to /opt/gnome. +* Wed Jun 25 2003 - sbrabec@suse.cz +- Updated to version 2.2.4. +- Updated neededforbuild. +- Turned on cdparanoia interface. +- Fixed unpackaged files. +- Packaged more docs. +- Require control-center2. +- Use %%find_lang. +* Wed Mar 19 2003 - hhetter@suse.de +- updated to version 2.2.2 +* Tue Feb 25 2003 - hhetter@suse.de +- launch nautilus with --no-desktop in desktop files + to prevent it from overtaking the desktop in other environments + as GNOME (#24105) +* Thu Feb 20 2003 - hhetter@suse.de +- remove the starthere - link hack which was only for + 2.0.x versions of nautilus +* Thu Feb 13 2003 - sbrabec@suse.cz +- Updated to version 2.2.1. +* Mon Feb 03 2003 - ro@suse.de +- added startup-notification to neededforbuild +* Wed Jan 29 2003 - hhetter@suse.de +- updated to version 2.2.0.2 +* Mon Jan 20 2003 - ro@suse.de +- update to 2.1.91 +* Mon Dec 16 2002 - sbrabec@suse.cz +- FHS fix. +- Updated %%files. +- Quick fix of starthere icon look. +* Thu Dec 12 2002 - sbrabec@suse.cz +- Added /media path patch (fixes desktop icon look for removable + devices). +* Fri Nov 29 2002 - hhetter@suse.de +- updated to version 2.0.8 [GNOME 2.0.3] +* Thu Oct 24 2002 - hhetter@suse.de +- applied new ja-patch from mfabian (partly upstream) +- updated to version 2.0.7 +* Mon Oct 21 2002 - mfabian@suse.de +- fix corrupted character in ja.po +* Tue Sep 24 2002 - sbrabec@suse.cz +- Added alsa-devel to neededforbuild, because esound-devel can require it. +* Thu Sep 19 2002 - sbrabec@suse.cz +- Added alsa to neededforbuild, because esound can depend on it. +* Tue Sep 17 2002 - hhetter@suse.de +- added better hu po-file from tvamosi +* Tue Sep 17 2002 - hhetter@suse.de +- fix hungarian translation +* Tue Aug 20 2002 - hhetter@suse.de +- added PreReq: filesystem +* Tue Aug 06 2002 - hhetter@suse.de +- updated to version 2.0.3 + * Drag and drop has been implemented in the list view. + * Performance enhancements in the icon factory. + * Various bugfixes. +* Sat Jul 27 2002 - adrian@suse.de +- fix neededforbuild +- use %%run_ldconfig +* Fri Jul 26 2002 - hhetter@suse.de +- updated to version 2.0.2 + * List view does not hang anymore + * reflect changes in eel 2.0.2 (background api) + * fix crash when invoking nautilus -q" +* Thu Jul 25 2002 - hhetter@suse.de +- fix filelist +* Tue Jul 23 2002 - hhetter@suse.de +- updated to version 2.0.1 + * Various UI cleanups from the ui review + * Various bugfixes + * The Gnome Nautilus theme now follows the gtk+ theme + better + * Window geometry is stored even in + open-directories-in-same-window + * All executable bonobo components moved into libexec. + * Some performance improvements + * Accessibility fixes + * Add support for kernel supermount patch + * Read desktop file icons according to the icon theme + specification + * New throbber for the gnome theme + * large version of trash icon + * Better handling of disk ejecting + * Proper handling of launching desktop files according + to the spec +* Thu Jun 20 2002 - hhetter@suse.de +- don't install schemas while make install +* Fri Jun 14 2002 - hhetter@suse.de +- filelist lookover +- supply schema file +* Tue Jun 11 2002 - hhetter@suse.de +- updated to version 2.0.0 +* Fri Jun 07 2002 - hhetter@suse.de +- gnome-common in #neededforbuild +* Fri Jun 07 2002 - hhetter@suse.de +- really build nautilus treeview and notes +* Thu Jun 06 2002 - ro@suse.de +- fix libdir usage +* Wed Jun 05 2002 - hhetter@suse.de +- added missing pkgtool files +* Wed Jun 05 2002 - hhetter@suse.de +- updated to version 1.1.19, source frozen +- seperation from mozilla and gtkhtml modules +* Wed May 22 2002 - meissner@suse.de +- changed neededforbuild so we can run autoconf/aclocal, also added + libjpeg. +- %%_lib fixes. +* Tue May 07 2002 - ro@suse.de +- up to 1.1.15 +- added gail to neededforbuild (for eel2) +* Fri Feb 01 2002 - ro@suse.de +- changed neededforbuild to +* Thu Jan 24 2002 - hhetter@suse.de +- initial SuSE package for GNOME 2.0 platform diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4