summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOndrej Holy <oholy@redhat.com>2022-02-15 10:59:34 +0100
committerAntónio Fernandes <antoniof@gnome.org>2022-03-05 16:22:16 +0000
commit5a3285d28f43e4f46d509e088debfe91ad190515 (patch)
tree96ab5b8b788f0ea1793fef144b3788a2d60d9f6e /src
parent0840fa09ab851922e57f999738a8b7c23bbe1823 (diff)
downloadnautilus-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.c14
-rw-r--r--src/nautilus-search-engine-recent.c13
-rw-r--r--src/nautilus-search-engine-simple.c15
-rw-r--r--src/nautilus-ui-utilities.c13
-rw-r--r--src/nautilus-ui-utilities.h2
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,