[nautilus/wip/antoniof/bookmarking-clean] bookmark-list: Don't allow bookmarking recent://
- From: António Fernandes <antoniof src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus/wip/antoniof/bookmarking-clean] bookmark-list: Don't allow bookmarking recent://
- Date: Thu, 4 Jan 2018 02:09:20 +0000 (UTC)
commit 27ebca1290c45d3e0193fb4e60e1f15b1e845123
Author: António Fernandes <antoniof gnome org>
Date: Thu Jan 4 01:58:37 2018 +0000
bookmark-list: Don't allow bookmarking recent://
Recent is always in the sidebar. Bookmarking it results in a duplicate
sidebar entry for Recent.
Disable the bookmarking action in that case. Instead of yet another
"if" block, rearrange the code and add comments.
Fixes: #189
src/nautilus-bookmark-list.c | 26 ++++++++++++++------------
src/nautilus-file-utilities.c | 10 ++++++++++
src/nautilus-file-utilities.h | 1 +
3 files changed, 25 insertions(+), 12 deletions(-)
---
diff --git a/src/nautilus-bookmark-list.c b/src/nautilus-bookmark-list.c
index 926d949fe..7c3993a28 100644
--- a/src/nautilus-bookmark-list.c
+++ b/src/nautilus-bookmark-list.c
@@ -625,26 +625,22 @@ nautilus_bookmark_list_can_bookmark_location (NautilusBookmarkList *list,
if (nautilus_bookmark_list_item_with_location (list, location, NULL))
{
- return FALSE;
- }
-
- if (nautilus_is_home_directory (location))
- {
+ /* Already bookmarked */
return FALSE;
}
if (nautilus_is_search_directory (location))
{
+ /* Can't bookmark searches */
return FALSE;
}
- if (nautilus_is_other_locations_directory (location))
- {
- return FALSE;
- }
-
- if (nautilus_is_favorite_directory (location))
+ if (nautilus_is_recent_directory (location) ||
+ nautilus_is_favorite_directory (location) ||
+ nautilus_is_home_directory (location) ||
+ nautilus_is_other_locations_directory (location))
{
+ /* Already in the sidebar */
return FALSE;
}
@@ -652,7 +648,13 @@ nautilus_bookmark_list_can_bookmark_location (NautilusBookmarkList *list,
is_builtin = nautilus_bookmark_get_is_builtin (bookmark);
g_object_unref (bookmark);
- return !is_builtin;
+ if (is_builtin)
+ {
+ /* Already in the sidebar */
+ return FALSE;
+ }
+
+ return TRUE;
}
/**
diff --git a/src/nautilus-file-utilities.c b/src/nautilus-file-utilities.c
index ba67b8559..9ebd9f069 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)
{
diff --git a/src/nautilus-file-utilities.h b/src/nautilus-file-utilities.h
index 415f01b3e..a0b1b1926 100644
--- a/src/nautilus-file-utilities.h
+++ b/src/nautilus-file-utilities.h
@@ -43,6 +43,7 @@ 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_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]