Skip to content

Commit 0a37810

Browse files
yetistlukefromdc
authored andcommitted
Fixed the value of 6 month and 1 year.
1 parent 3a22d4c commit 0a37810

File tree

4 files changed

+67
-30
lines changed

4 files changed

+67
-30
lines changed

‎libcaja-private/caja-query.c‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ struct CajaQueryDetails
3636
char *location_uri;
3737
GList *mime_types;
3838
GList *tags;
39-
gint64 duration;
39+
gint64 timestamp;
4040
gint64 size;
4141
};
4242

@@ -77,7 +77,7 @@ static void
7777
caja_query_init (CajaQuery *query)
7878
{
7979
query->details = g_new0 (CajaQueryDetails, 1);
80-
query->details->duration = 0;
80+
query->details->timestamp = 0;
8181
query->details->size = 0;
8282
}
8383

@@ -383,7 +383,7 @@ caja_query_to_xml (CajaQuery *query)
383383
char *mimetype;
384384
char *tag;
385385
GList *l;
386-
gint64 duration;
386+
gint64 timestamp;
387387
gint64 size;
388388

389389
xml = g_string_new ("");
@@ -426,10 +426,10 @@ caja_query_to_xml (CajaQuery *query)
426426
g_string_append (xml, " </tags>\n");
427427
}
428428

429-
if (query->details->duration != 0)
429+
if (query->details->timestamp != 0)
430430
{
431431
g_string_append_printf(xml, " <duration>%ld</duration>",
432-
query->details->duration);
432+
query->details->timestamp);
433433
}
434434

435435
if (query->details->size != 0)
@@ -463,14 +463,14 @@ caja_query_save (CajaQuery *query, char *file)
463463
return res;
464464
}
465465

466-
void caja_query_set_duration(CajaQuery *query, gint64 sec)
466+
void caja_query_set_timestamp(CajaQuery *query, gint64 sec)
467467
{
468-
query->details->duration = sec;
468+
query->details->timestamp = sec;
469469
}
470470

471-
gint64 caja_query_get_duration(CajaQuery *query)
471+
gint64 caja_query_get_timestamp(CajaQuery *query)
472472
{
473-
return query->details->duration;
473+
return query->details->timestamp;
474474
}
475475

476476
void caja_query_set_size(CajaQuery *query, gint64 size)

‎libcaja-private/caja-query.h‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ char * caja_query_to_readable_string (CajaQuery *query);
6969
CajaQuery * caja_query_load (char *file);
7070
gboolean caja_query_save (CajaQuery *query, char *file);
7171

72-
gint64 caja_query_get_duration (CajaQuery *query);
73-
void caja_query_set_duration (CajaQuery *query, gint64 sec);
72+
gint64 caja_query_get_timestamp (CajaQuery *query);
73+
void caja_query_set_timestamp (CajaQuery *query, gint64 sec);
7474

7575
gint64 caja_query_get_size (CajaQuery *query);
7676
void caja_query_set_size (CajaQuery *query, gint64 size);

‎libcaja-private/caja-search-engine-simple.c‎

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ typedef struct
4848

4949
gint n_processed_files;
5050
GList *uri_hits;
51-
gint64 duration;
51+
gint64 timestamp;
5252
gint64 size;
5353
} SearchThreadData;
5454

@@ -126,7 +126,7 @@ search_thread_data_new (CajaSearchEngineSimple *engine,
126126

127127
data->tags = caja_query_get_tags (query);
128128
data->mime_types = caja_query_get_mime_types (query);
129-
data->duration = caja_query_get_duration (query);
129+
data->timestamp = caja_query_get_timestamp (query);
130130
data->size = caja_query_get_size (query);
131131

132132
data->cancellable = g_cancellable_new ();
@@ -355,7 +355,6 @@ visit_directory (GFile *dir, SearchThreadData *data)
355355
const char *id;
356356
gboolean visited;
357357
GTimeVal result;
358-
time_t timestamp;
359358
gchar *attributes;
360359
GString *attr_string;
361360

@@ -366,7 +365,7 @@ visit_directory (GFile *dir, SearchThreadData *data)
366365
if (data->tags != NULL) {
367366
g_string_append (attr_string, "," G_FILE_ATTRIBUTE_XATTR_XDG_TAGS);
368367
}
369-
if (data->duration != 0) {
368+
if (data->timestamp != 0) {
370369
g_string_append (attr_string, "," G_FILE_ATTRIBUTE_TIME_MODIFIED ","
371370
G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC);
372371
}
@@ -384,8 +383,6 @@ visit_directory (GFile *dir, SearchThreadData *data)
384383
return;
385384
}
386385

387-
timestamp = time(NULL);
388-
389386
while ((info = g_file_enumerator_next_file (enumerator, data->cancellable, NULL)) != NULL)
390387
{
391388
if (g_file_info_get_is_hidden (info))
@@ -434,13 +431,13 @@ visit_directory (GFile *dir, SearchThreadData *data)
434431
hit = file_has_all_tags (info, data->tags);
435432
}
436433

437-
if (hit && data->duration != 0) {
434+
if (hit && data->timestamp != 0) {
438435
g_file_info_get_modification_time (info, &result);
439-
if (data->duration > 0) {
440-
if (timestamp - result.tv_sec < data->duration)
436+
if (data->timestamp > 0) {
437+
if (data->timestamp < result.tv_sec)
441438
hit = FALSE;
442439
} else {
443-
if (timestamp - result.tv_sec > ABS(data->duration))
440+
if (result.tv_sec < ABS(data->timestamp))
444441
hit = FALSE;
445442
}
446443
}

‎src/caja-query-editor.c‎

Lines changed: 49 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,17 @@
3535
#include <gdk/gdkkeysyms.h>
3636
#include <gtk/gtk.h>
3737

38+
enum
39+
{
40+
DURATION_INVALID,
41+
DURATION_ONE_HOUR,
42+
DURATION_ONE_DAY,
43+
DURATION_ONE_WEEK,
44+
DURATION_ONE_MONTH,
45+
DURATION_SIX_MONTHS,
46+
DURATION_ONE_YEAR,
47+
};
48+
3849
typedef enum
3950
{
4051
CAJA_QUERY_EDITOR_ROW_LOCATION,
@@ -1054,7 +1065,7 @@ static GtkWidget *modtime_row_create_widgets(CajaQueryEditorRow *row)
10541065

10551066
gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0);
10561067

1057-
duration_store = gtk_list_store_new(2, G_TYPE_LONG, G_TYPE_STRING);
1068+
duration_store = gtk_list_store_new(2, G_TYPE_INT, G_TYPE_STRING);
10581069
duration_combo = gtk_combo_box_new_with_model(GTK_TREE_MODEL(duration_store));
10591070
g_object_unref(duration_store);
10601071

@@ -1063,17 +1074,17 @@ static GtkWidget *modtime_row_create_widgets(CajaQueryEditorRow *row)
10631074
"text", 1, NULL);
10641075

10651076
gtk_list_store_append(duration_store, &iter);
1066-
gtk_list_store_set(duration_store, &iter, 0, 3600, 1, _("1 Hour"), -1);
1077+
gtk_list_store_set(duration_store, &iter, 0, DURATION_ONE_HOUR, 1, _("1 Hour"), -1);
10671078
gtk_list_store_append(duration_store, &iter);
1068-
gtk_list_store_set(duration_store, &iter, 0, 86400, 1, _("1 Day"), -1);
1079+
gtk_list_store_set(duration_store, &iter, 0, DURATION_ONE_DAY, 1, _("1 Day"), -1);
10691080
gtk_list_store_append(duration_store, &iter);
1070-
gtk_list_store_set(duration_store, &iter, 0, 604800, 1, _("1 Week"), -1);
1081+
gtk_list_store_set(duration_store, &iter, 0, DURATION_ONE_WEEK, 1, _("1 Week"), -1);
10711082
gtk_list_store_append(duration_store, &iter);
1072-
gtk_list_store_set(duration_store, &iter, 0, 2419200, 1, _("1 Month"), -1);
1083+
gtk_list_store_set(duration_store, &iter, 0, DURATION_ONE_MONTH, 1, _("1 Month"), -1);
10731084
gtk_list_store_append(duration_store, &iter);
1074-
gtk_list_store_set(duration_store, &iter, 0, 14515200, 1, _("6 Months"), -1);
1085+
gtk_list_store_set(duration_store, &iter, 0, DURATION_SIX_MONTHS, 1, _("6 Months"), -1);
10751086
gtk_list_store_append(duration_store, &iter);
1076-
gtk_list_store_set(duration_store, &iter, 0, 29030400, 1, _("1 Year"), -1);
1087+
gtk_list_store_set(duration_store, &iter, 0, DURATION_ONE_YEAR, 1, _("1 Year"), -1);
10771088

10781089
gtk_combo_box_set_active(GTK_COMBO_BOX(duration_combo), 0);
10791090

@@ -1096,7 +1107,9 @@ static void modtime_row_add_to_query(CajaQueryEditorRow *row, CajaQuery *query)
10961107
GtkTreeIter iter;
10971108
GtkTreeIter duration_iter;
10981109
gboolean is_greater = FALSE;
1099-
gint64 duration;
1110+
GDateTime *now, *datetime;
1111+
gint duration;
1112+
gint64 timestamp;
11001113

11011114
if (!GTK_IS_CONTAINER(row->type_widget))
11021115
return;
@@ -1121,7 +1134,34 @@ static void modtime_row_add_to_query(CajaQueryEditorRow *row, CajaQuery *query)
11211134
duration_model = gtk_combo_box_get_model(GTK_COMBO_BOX(duration_combo));
11221135
gtk_tree_model_get(duration_model, &duration_iter, 0, &duration, -1);
11231136

1124-
caja_query_set_duration(query, is_greater ? duration : -duration);
1137+
now = g_date_time_new_now_local ();
1138+
switch (duration)
1139+
{
1140+
case DURATION_ONE_HOUR:
1141+
datetime = g_date_time_add_hours (now, -1);
1142+
break;
1143+
case DURATION_ONE_DAY:
1144+
datetime = g_date_time_add_days (now, -1);
1145+
break;
1146+
case DURATION_ONE_WEEK:
1147+
datetime = g_date_time_add_weeks (now, -1);
1148+
break;
1149+
case DURATION_ONE_MONTH:
1150+
datetime = g_date_time_add_months (now, -1);
1151+
break;
1152+
case DURATION_SIX_MONTHS:
1153+
datetime = g_date_time_add_months (now, -6);
1154+
break;
1155+
case DURATION_ONE_YEAR:
1156+
datetime = g_date_time_add_years (now, -1);
1157+
break;
1158+
}
1159+
1160+
g_date_time_unref (now);
1161+
timestamp = g_date_time_to_unix (datetime);
1162+
g_date_time_unref (datetime);
1163+
1164+
caja_query_set_timestamp(query, is_greater ? timestamp: -timestamp);
11251165
}
11261166

11271167
static void modtime_row_free_data(CajaQueryEditorRow *row)

0 commit comments

Comments
 (0)