[nautilus/189-recent-can-be-bookmarked] bookmark-list: Disable bookmarking recent:// and trash://



commit 90799c2af799af79843baeaf36e9e29a65f5160f
Author: António Fernandes <antoniof gnome org>
Date:   Thu Jan 4 01:58:37 2018 +0000

    bookmark-list: Disable bookmarking recent:// and trash://
    
    These locations are listed in the sidebar already. Bookmarking duplicates them.
    
    We already disable bookmarking Home, Favories, XDG User Firs, 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

 src/nautilus-bookmark-list.c  | 10 ++++++++++
 src/nautilus-file-utilities.c | 19 +++++++++++++++++++
 src/nautilus-file-utilities.h |  2 ++
 3 files changed, 31 insertions(+)
---
diff --git a/src/nautilus-bookmark-list.c b/src/nautilus-bookmark-list.c
index 926d949fe..1cae8f628 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;
+    }
+
     if (nautilus_is_favorite_directory (location))
     {
         return FALSE;
diff --git a/src/nautilus-file-utilities.c b/src/nautilus-file-utilities.c
index ba67b8559..55040aa91 100644
--- a/src/nautilus-file-utilities.c
+++ b/src/nautilus-file-utilities.c
@@ -539,6 +539,16 @@ nautilus_is_search_directory (GFile *dir)
     return eel_uri_is_search (uri);
 }
 
+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_favorite_directory (GFile *dir)
 {
@@ -552,6 +562,15 @@ nautilus_is_favorite_directory (GFile *dir)
     return FALSE;
 }
 
+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)
 {
diff --git a/src/nautilus-file-utilities.h b/src/nautilus-file-utilities.h
index 415f01b3e..790c9bbf4 100644
--- a/src/nautilus-file-utilities.h
+++ b/src/nautilus-file-utilities.h
@@ -43,7 +43,9 @@ 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_favorite_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);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]