search-view: run the search when the sources changes
This commit is contained in:
committed by
Erick Pérez Castellanos
parent
f0c126b0ee
commit
37566a435e
@@ -44,6 +44,8 @@ typedef struct
|
|||||||
/* misc */
|
/* misc */
|
||||||
gint no_results_timeout_id;
|
gint no_results_timeout_id;
|
||||||
gint num_results;
|
gint num_results;
|
||||||
|
gchar *field;
|
||||||
|
gchar *query;
|
||||||
|
|
||||||
/* property */
|
/* property */
|
||||||
icaltimetype *date;
|
icaltimetype *date;
|
||||||
@@ -92,6 +94,15 @@ static void display_header_func (GtkListBoxRow
|
|||||||
GtkListBoxRow *before,
|
GtkListBoxRow *before,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
|
|
||||||
|
static void source_added (GcalManager *manager,
|
||||||
|
ESource *source,
|
||||||
|
gboolean enable,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
static void source_removed (GcalManager *manager,
|
||||||
|
ESource *source,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
static void gcal_data_model_subscriber_interface_init (ECalDataModelSubscriberInterface *iface);
|
static void gcal_data_model_subscriber_interface_init (ECalDataModelSubscriberInterface *iface);
|
||||||
|
|
||||||
static void gcal_search_view_constructed (GObject *object);
|
static void gcal_search_view_constructed (GObject *object);
|
||||||
@@ -430,6 +441,26 @@ display_header_func (GtkListBoxRow *row,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
source_added (GcalManager *manager,
|
||||||
|
ESource *source,
|
||||||
|
gboolean enable,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
GcalSearchViewPrivate *priv;
|
||||||
|
|
||||||
|
priv = gcal_search_view_get_instance_private (GCAL_SEARCH_VIEW (user_data));
|
||||||
|
gcal_search_view_search (GCAL_SEARCH_VIEW (user_data), priv->field, priv->query);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
source_removed (GcalManager *manager,
|
||||||
|
ESource *source,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
source_added (manager, source, FALSE, user_data);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gcal_search_view_class_init (GcalSearchViewClass *klass)
|
gcal_search_view_class_init (GcalSearchViewClass *klass)
|
||||||
{
|
{
|
||||||
@@ -552,6 +583,9 @@ gcal_search_view_set_property (GObject *object,
|
|||||||
case PROP_MANAGER:
|
case PROP_MANAGER:
|
||||||
{
|
{
|
||||||
priv->manager = g_value_get_pointer (value);
|
priv->manager = g_value_get_pointer (value);
|
||||||
|
g_signal_connect (priv->manager, "source-added", G_CALLBACK (source_added), object);
|
||||||
|
g_signal_connect (priv->manager, "source-activated", G_CALLBACK (source_added), object);
|
||||||
|
g_signal_connect (priv->manager, "source-removed", G_CALLBACK (source_removed), object);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@@ -747,6 +781,14 @@ gcal_search_view_search (GcalSearchView *view,
|
|||||||
|
|
||||||
priv = gcal_search_view_get_instance_private (view);
|
priv = gcal_search_view_get_instance_private (view);
|
||||||
|
|
||||||
|
if (priv->query != NULL)
|
||||||
|
g_free (priv->query);
|
||||||
|
if (priv->field != NULL)
|
||||||
|
g_free (priv->field);
|
||||||
|
|
||||||
|
priv->query = g_strdup (query);
|
||||||
|
priv->field = g_strdup (field);
|
||||||
|
|
||||||
/* Only perform search on valid non-empty strings */
|
/* Only perform search on valid non-empty strings */
|
||||||
if (query && g_utf8_strlen (query, -1) > 0)
|
if (query && g_utf8_strlen (query, -1) > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user