diff options
author | António Fernandes <antoniof@gnome.org> | 2018-01-04 01:58:37 +0000 |
---|---|---|
committer | Ernestas Kulik <ernestask@gnome.org> | 2018-03-24 20:15:46 +0200 |
commit | 6e246d78339d881b360c52bd28a0f1373883a84b (patch) | |
tree | f80c43a3fdf80fa4ea426ac6e723d6ff4fc999e3 | |
parent | 2f1f7ee1e62c21a5defbb8f4ca70b419551f6671 (diff) | |
download | nautilus-6e246d78339d881b360c52bd28a0f1373883a84b.tar.gz |
bookmark-list: Disable bookmarking recent:// and trash://
These locations are listed in the sidebar already. Bookmarking duplicates them.
We already disable bookmarking Home, XDG User Dirs, and Other Locations.
Do the same thing for Recent and Trash.
As a side effect, this will disable bookmarking child folders inside Trash.
Fixes: #189
-rw-r--r-- | src/nautilus-bookmark-list.c | 10 | ||||
-rw-r--r-- | src/nautilus-file-utilities.c | 19 | ||||
-rw-r--r-- | src/nautilus-file-utilities.h | 2 |
3 files changed, 31 insertions, 0 deletions
diff --git a/src/nautilus-bookmark-list.c b/src/nautilus-bookmark-list.c index d7a0ea092..295b616a3 100644 --- a/src/nautilus-bookmark-list.c +++ b/src/nautilus-bookmark-list.c @@ -643,6 +643,16 @@ nautilus_bookmark_list_can_bookmark_location (NautilusBookmarkList *list, return FALSE; } + if (nautilus_is_recent_directory (location)) + { + return FALSE; + } + + if (nautilus_is_trash_directory (location)) + { + return FALSE; + } + bookmark = nautilus_bookmark_new (location, NULL); is_builtin = nautilus_bookmark_get_is_builtin (bookmark); g_object_unref (bookmark); diff --git a/src/nautilus-file-utilities.c b/src/nautilus-file-utilities.c index 828b829aa..9a84d2862 100644 --- a/src/nautilus-file-utilities.c +++ b/src/nautilus-file-utilities.c @@ -593,6 +593,25 @@ nautilus_is_search_directory (GFile *dir) } gboolean +nautilus_is_recent_directory (GFile *dir) +{ + g_autofree gchar *uri = NULL; + + uri = g_file_get_uri (dir); + + return eel_uri_is_recent (uri); +} + +gboolean +nautilus_is_trash_directory (GFile *dir) +{ + g_autofree gchar *uri = NULL; + + uri = g_file_get_uri (dir); + return eel_uri_is_trash (uri); +} + +gboolean nautilus_is_other_locations_directory (GFile *dir) { g_autofree gchar *uri = NULL; diff --git a/src/nautilus-file-utilities.h b/src/nautilus-file-utilities.h index e9b9a2218..b567611f3 100644 --- a/src/nautilus-file-utilities.h +++ b/src/nautilus-file-utilities.h @@ -45,6 +45,8 @@ gboolean nautilus_is_home_directory_file (GFile *dir, const char *filename); gboolean nautilus_is_in_system_dir (GFile *location); gboolean nautilus_is_search_directory (GFile *dir); +gboolean nautilus_is_recent_directory (GFile *dir); +gboolean nautilus_is_trash_directory (GFile *dir); gboolean nautilus_is_other_locations_directory (GFile *dir); GMount * nautilus_get_mounted_mount_for_root (GFile *location); |