summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntónio Fernandes <antoniof@gnome.org>2018-01-04 01:58:37 +0000
committerErnestas Kulik <ernestask@gnome.org>2018-03-24 20:15:46 +0200
commit6e246d78339d881b360c52bd28a0f1373883a84b (patch)
treef80c43a3fdf80fa4ea426ac6e723d6ff4fc999e3
parent2f1f7ee1e62c21a5defbb8f4ca70b419551f6671 (diff)
downloadnautilus-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.c10
-rw-r--r--src/nautilus-file-utilities.c19
-rw-r--r--src/nautilus-file-utilities.h2
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);