summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2023-03-17 12:38:13 -0300
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2023-04-22 10:22:57 +0000
commit8170ee045529b3a62193e336f370bc770ece6c11 (patch)
tree58fe3bb418f41c2abed2ef707741508ce59922bf
parentbadb7b3d9c82c55dcfbc764fef72ea3cb3059ca9 (diff)
downloadgnome-calendar-8170ee045529b3a62193e336f370bc770ece6c11.tar.gz
search: Remove artificial limits
Now that we use a widget that appropriately handles infinite items, we don't need to limit anything anymore. Related: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/624
-rw-r--r--src/gui/gcal-search-button.c1
-rw-r--r--src/search/gcal-search-engine.c3
-rw-r--r--src/search/gcal-search-engine.h1
-rw-r--r--src/search/gcal-search-model.c31
-rw-r--r--src/search/gcal-search-model.h1
5 files changed, 17 insertions, 20 deletions
diff --git a/src/gui/gcal-search-button.c b/src/gui/gcal-search-button.c
index d8ed14d1..e820bfc5 100644
--- a/src/gui/gcal-search-button.c
+++ b/src/gui/gcal-search-button.c
@@ -261,7 +261,6 @@ on_entry_search_changed_cb (GtkSearchEntry *entry,
search_engine = gcal_context_get_search_engine (self->context);
gcal_search_engine_search (search_engine,
sexp_query,
- 50,
self->cancellable,
on_search_finished_cb,
g_object_ref (self));
diff --git a/src/search/gcal-search-engine.c b/src/search/gcal-search-engine.c
index 47179ae6..87cd7d46 100644
--- a/src/search/gcal-search-engine.c
+++ b/src/search/gcal-search-engine.c
@@ -209,7 +209,6 @@ gcal_search_engine_new (GcalContext *context)
void
gcal_search_engine_search (GcalSearchEngine *self,
const gchar *search_query,
- gint max_results,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data)
@@ -228,7 +227,7 @@ gcal_search_engine_search (GcalSearchEngine *self,
now = g_date_time_new_now (timezone);
range_start = g_date_time_add_weeks (now, -1);
range_end = g_date_time_add_weeks (now, 3);
- model = gcal_search_model_new (cancellable, max_results, range_start, range_end);
+ model = gcal_search_model_new (cancellable, range_start, range_end);
gcal_timeline_set_filter (self->timeline, search_query);
gcal_timeline_add_subscriber (self->timeline, GCAL_TIMELINE_SUBSCRIBER (model));
diff --git a/src/search/gcal-search-engine.h b/src/search/gcal-search-engine.h
index a507db15..63f2e6a0 100644
--- a/src/search/gcal-search-engine.h
+++ b/src/search/gcal-search-engine.h
@@ -33,7 +33,6 @@ GcalSearchEngine* gcal_search_engine_new (GcalContext
void gcal_search_engine_search (GcalSearchEngine *self,
const gchar *search_query,
- gint max_results,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
diff --git a/src/search/gcal-search-model.c b/src/search/gcal-search-model.c
index d1be5bc5..f67e4f13 100644
--- a/src/search/gcal-search-model.c
+++ b/src/search/gcal-search-model.c
@@ -37,7 +37,6 @@ struct _GcalSearchModel
GObject parent;
GCancellable *cancellable;
- gint max_results;
GDateTime *range_start;
GDateTime *range_end;
@@ -119,6 +118,16 @@ search_hits_equals_cb (gconstpointer a,
return gcal_search_hit_compare (search_hit_a, search_hit_b) == 0;
}
+static void
+on_search_model_items_changed_cb (GListModel *model,
+ guint position,
+ guint removed,
+ guint added,
+ GcalSearchModel *self)
+{
+ g_list_model_items_changed (G_LIST_MODEL (self), position, removed, added);
+}
+
/*
* GcalTimelineSubscriber interface
@@ -139,7 +148,6 @@ gcal_search_model_add_event (GcalTimelineSubscriber *subscriber,
g_autoptr (GcalSearchHitEvent) search_hit = NULL;
GcalSearchModel *self;
gboolean found;
- guint position;
self = GCAL_SEARCH_MODEL (subscriber);
@@ -155,16 +163,10 @@ gcal_search_model_add_event (GcalTimelineSubscriber *subscriber,
if (found)
return;
- position = g_list_store_insert_sorted (G_LIST_STORE (self->model),
- search_hit,
- compare_search_hits_cb,
- self);
- if (position < self->max_results)
- {
- if (g_list_model_get_n_items (self->model) > self->max_results)
- g_list_model_items_changed (G_LIST_MODEL (self), self->max_results, 1, 0);
- g_list_model_items_changed (G_LIST_MODEL (self), position, 0, 1);
- }
+ g_list_store_insert_sorted (G_LIST_STORE (self->model),
+ search_hit,
+ compare_search_hits_cb,
+ self);
}
static void
@@ -203,7 +205,7 @@ static guint
gcal_search_model_get_n_items (GListModel *model)
{
GcalSearchModel *self = (GcalSearchModel *)model;
- return CLAMP (g_list_model_get_n_items (self->model), 0, self->max_results);
+ return g_list_model_get_n_items (self->model);
}
static gpointer
@@ -257,18 +259,17 @@ static void
gcal_search_model_init (GcalSearchModel *self)
{
self->model = (GListModel*) g_list_store_new (GCAL_TYPE_SEARCH_HIT);
+ g_signal_connect (self->model, "items-changed", G_CALLBACK (on_search_model_items_changed_cb), self);
}
GcalSearchModel *
gcal_search_model_new (GCancellable *cancellable,
- gint max_results,
GDateTime *range_start,
GDateTime *range_end)
{
GcalSearchModel *model;
model = g_object_new (GCAL_TYPE_SEARCH_MODEL, NULL);
- model->max_results = max_results;
model->cancellable = cancellable ? g_object_ref (cancellable) : NULL;
model->range_start = g_date_time_ref (range_start);
model->range_end = g_date_time_ref (range_end);
diff --git a/src/search/gcal-search-model.h b/src/search/gcal-search-model.h
index 8f040a00..bb036b5a 100644
--- a/src/search/gcal-search-model.h
+++ b/src/search/gcal-search-model.h
@@ -28,7 +28,6 @@ G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (GcalSearchModel, gcal_search_model, GCAL, SEARCH_MODEL, GObject)
GcalSearchModel* gcal_search_model_new (GCancellable *cancellable,
- gint max_results,
GDateTime *range_start,
GDateTime *range_end);