diff options
author | Ondrej Holy <oholy@redhat.com> | 2022-02-15 10:59:34 +0100 |
---|---|---|
committer | António Fernandes <antoniof@gnome.org> | 2022-03-05 16:22:16 +0000 |
commit | 5a3285d28f43e4f46d509e088debfe91ad190515 (patch) | |
tree | 96ab5b8b788f0ea1793fef144b3788a2d60d9f6e /src | |
parent | 0840fa09ab851922e57f999738a8b7c23bbe1823 (diff) | |
download | nautilus-5a3285d28f43e4f46d509e088debfe91ad190515.tar.gz |
nautilus-search-engine: Use GDateTime everywhere
The search providers convert dates from unix time to `GDateTime` and vice
versa. Let's use `GDateTime` everywhere.
Relates: https://gitlab.gnome.org/GNOME/nautilus/-/issues/2152
Diffstat (limited to 'src')
-rw-r--r-- | src/nautilus-search-engine-model.c | 14 | ||||
-rw-r--r-- | src/nautilus-search-engine-recent.c | 13 | ||||
-rw-r--r-- | src/nautilus-search-engine-simple.c | 15 | ||||
-rw-r--r-- | src/nautilus-ui-utilities.c | 13 | ||||
-rw-r--r-- | src/nautilus-ui-utilities.h | 2 |
5 files changed, 27 insertions, 30 deletions
diff --git a/src/nautilus-search-engine-model.c b/src/nautilus-search-engine-model.c index 6d91cc65d..1205873fe 100644 --- a/src/nautilus-search-engine-model.c +++ b/src/nautilus-search-engine-model.c @@ -179,7 +179,7 @@ model_directory_ready_cb (NautilusDirectory *directory, if (found && date_range != NULL) { NautilusQuerySearchType type; - guint64 current_file_unix_time; + GDateTime *target_date; type = nautilus_query_get_search_type (model->query); initial_date = g_ptr_array_index (date_range, 0); @@ -187,20 +187,20 @@ model_directory_ready_cb (NautilusDirectory *directory, if (type == NAUTILUS_QUERY_SEARCH_TYPE_LAST_ACCESS) { - current_file_unix_time = g_date_time_to_unix (atime); + target_date = atime; } else if (type == NAUTILUS_QUERY_SEARCH_TYPE_LAST_MODIFIED) { - current_file_unix_time = g_date_time_to_unix (mtime); + target_date = mtime; } else { - current_file_unix_time = g_date_time_to_unix (ctime); + target_date = ctime; } - found = nautilus_file_date_in_between (current_file_unix_time, - initial_date, - end_date); + found = nautilus_date_time_is_between_dates (target_date, + initial_date, + end_date); g_ptr_array_unref (date_range); } diff --git a/src/nautilus-search-engine-recent.c b/src/nautilus-search-engine-recent.c index 106fc6abf..1c69b2a93 100644 --- a/src/nautilus-search-engine-recent.c +++ b/src/nautilus-search-engine-recent.c @@ -294,7 +294,7 @@ recent_thread_func (gpointer user_data) if (date_range != NULL) { NautilusQuerySearchType type; - guint64 target_time; + GDateTime *target_date; GDateTime *initial_date; GDateTime *end_date; @@ -304,19 +304,20 @@ recent_thread_func (gpointer user_data) if (type == NAUTILUS_QUERY_SEARCH_TYPE_LAST_ACCESS) { - target_time = g_date_time_to_unix (atime); + target_date = atime; } else if (type == NAUTILUS_QUERY_SEARCH_TYPE_LAST_MODIFIED) { - target_time = g_date_time_to_unix (mtime); + target_date = mtime; } else if (type == NAUTILUS_QUERY_SEARCH_TYPE_CREATED) { - target_time = g_date_time_to_unix (ctime); + target_date = ctime; } - if (!nautilus_file_date_in_between (target_time, - initial_date, end_date)) + if (!nautilus_date_time_is_between_dates (target_date, + initial_date, + end_date)) { continue; } diff --git a/src/nautilus-search-engine-simple.c b/src/nautilus-search-engine-simple.c index bf3eea1c2..ec2433d5f 100644 --- a/src/nautilus-search-engine-simple.c +++ b/src/nautilus-search-engine-simple.c @@ -361,26 +361,27 @@ visit_directory (GFile *dir, if (found && date_range != NULL) { - guint64 current_file_time; + GDateTime *target_date; initial_date = g_ptr_array_index (date_range, 0); end_date = g_ptr_array_index (date_range, 1); if (type == NAUTILUS_QUERY_SEARCH_TYPE_LAST_ACCESS) { - current_file_time = g_date_time_to_unix (atime); + target_date = atime; } else if (type == NAUTILUS_QUERY_SEARCH_TYPE_LAST_MODIFIED) { - current_file_time = g_date_time_to_unix (mtime); + target_date = mtime; } else { - current_file_time = g_date_time_to_unix (ctime); + target_date = ctime; } - found = nautilus_file_date_in_between (current_file_time, - initial_date, - end_date); + + found = nautilus_date_time_is_between_dates (target_date, + initial_date, + end_date); } if (found) diff --git a/src/nautilus-ui-utilities.c b/src/nautilus-ui-utilities.c index 60d667a57..edcf25dbd 100644 --- a/src/nautilus-ui-utilities.c +++ b/src/nautilus-ui-utilities.c @@ -189,21 +189,18 @@ nautilus_ui_frame_video (GdkPixbuf **pixbuf) } gboolean -nautilus_file_date_in_between (guint64 unix_file_time, - GDateTime *initial_date, - GDateTime *end_date) +nautilus_date_time_is_between_dates (GDateTime *date, + GDateTime *initial_date, + GDateTime *end_date) { - GDateTime *date; gboolean in_between; /* Silently ignore errors */ - if (unix_file_time == 0) + if (date == NULL || g_date_time_to_unix (date) == 0) { return FALSE; } - date = g_date_time_new_from_unix_local (unix_file_time); - /* For the end date, we want to make end_date inclusive, * for that the difference between the start of the day and the in_between * has to be more than -1 day @@ -211,8 +208,6 @@ nautilus_file_date_in_between (guint64 unix_file_time, in_between = g_date_time_difference (date, initial_date) > 0 && g_date_time_difference (end_date, date) / G_TIME_SPAN_DAY > -1; - g_date_time_unref (date); - return in_between; } diff --git a/src/nautilus-ui-utilities.h b/src/nautilus-ui-utilities.h index d59d453e1..d93cb84a9 100644 --- a/src/nautilus-ui-utilities.h +++ b/src/nautilus-ui-utilities.h @@ -37,7 +37,7 @@ void nautilus_g_menu_replace_string_in_item (GMenu *menu, void nautilus_ui_frame_video (GdkPixbuf **pixbuf); -gboolean nautilus_file_date_in_between (guint64 file_unix_time, +gboolean nautilus_date_time_is_between_dates (GDateTime *date, GDateTime *initial_date, GDateTime *end_date); gchar * get_text_for_date_range (GPtrArray *date_range, |