manager: added ECalDataModel for search alone
This commit is contained in:
+25
-1
@@ -42,6 +42,7 @@ typedef struct
|
|||||||
ESourceRegistry *source_registry;
|
ESourceRegistry *source_registry;
|
||||||
|
|
||||||
ECalDataModel *e_data_model;
|
ECalDataModel *e_data_model;
|
||||||
|
ECalDataModel *search_data_model;
|
||||||
|
|
||||||
GCancellable *async_ops;
|
GCancellable *async_ops;
|
||||||
|
|
||||||
@@ -269,6 +270,7 @@ on_client_connected (GObject *source_object,
|
|||||||
e_source_get_uid (source));
|
e_source_get_uid (source));
|
||||||
|
|
||||||
e_cal_data_model_add_client (priv->e_data_model, client);
|
e_cal_data_model_add_client (priv->e_data_model, client);
|
||||||
|
e_cal_data_model_add_client (priv->search_data_model, client);
|
||||||
g_clear_object (&client);
|
g_clear_object (&client);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -348,6 +350,8 @@ remove_source (GcalManager *manager,
|
|||||||
|
|
||||||
e_cal_data_model_remove_client (priv->e_data_model,
|
e_cal_data_model_remove_client (priv->e_data_model,
|
||||||
e_source_get_uid (source));
|
e_source_get_uid (source));
|
||||||
|
e_cal_data_model_remove_client (priv->search_data_model,
|
||||||
|
e_source_get_uid (source));
|
||||||
g_hash_table_remove (priv->clients, source);
|
g_hash_table_remove (priv->clients, source);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -418,10 +422,14 @@ gcal_manager_init (GcalManager *self)
|
|||||||
|
|
||||||
/* create data model */
|
/* create data model */
|
||||||
priv->e_data_model = e_cal_data_model_new (submit_thread_job);
|
priv->e_data_model = e_cal_data_model_new (submit_thread_job);
|
||||||
|
priv->search_data_model = e_cal_data_model_new (submit_thread_job);
|
||||||
|
|
||||||
e_cal_data_model_set_expand_recurrences (priv->e_data_model, TRUE);
|
e_cal_data_model_set_expand_recurrences (priv->e_data_model, TRUE);
|
||||||
e_cal_data_model_set_timezone (priv->e_data_model,
|
e_cal_data_model_set_timezone (priv->e_data_model,
|
||||||
priv->system_timezone);
|
priv->system_timezone);
|
||||||
|
e_cal_data_model_set_expand_recurrences (priv->search_data_model, TRUE);
|
||||||
|
e_cal_data_model_set_timezone (priv->search_data_model,
|
||||||
|
priv->system_timezone);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -433,6 +441,8 @@ gcal_manager_finalize (GObject *object)
|
|||||||
|
|
||||||
if (priv->e_data_model != NULL)
|
if (priv->e_data_model != NULL)
|
||||||
g_object_unref (priv->e_data_model);
|
g_object_unref (priv->e_data_model);
|
||||||
|
if (priv->search_data_model != NULL)
|
||||||
|
g_object_unref (priv->search_data_model);
|
||||||
|
|
||||||
g_hash_table_destroy (priv->clients);
|
g_hash_table_destroy (priv->clients);
|
||||||
}
|
}
|
||||||
@@ -531,6 +541,20 @@ gcal_manager_set_subscriber (GcalManager *manager,
|
|||||||
range_start, range_end);
|
range_start, range_end);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gcal_manager_set_search_subscriber (GcalManager *manager,
|
||||||
|
ECalDataModelSubscriber *subscriber,
|
||||||
|
time_t range_start,
|
||||||
|
time_t range_end)
|
||||||
|
{
|
||||||
|
GcalManagerPrivate *priv;
|
||||||
|
|
||||||
|
priv = gcal_manager_get_instance_private (manager);
|
||||||
|
e_cal_data_model_subscribe (priv->search_data_model,
|
||||||
|
subscriber,
|
||||||
|
range_start, range_end);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gcal_manager_set_query:
|
* gcal_manager_set_query:
|
||||||
* @manager: A #GcalManager instance
|
* @manager: A #GcalManager instance
|
||||||
@@ -547,7 +571,7 @@ gcal_manager_set_query (GcalManager *manager,
|
|||||||
GcalManagerPrivate *priv;
|
GcalManagerPrivate *priv;
|
||||||
|
|
||||||
priv = gcal_manager_get_instance_private (manager);
|
priv = gcal_manager_get_instance_private (manager);
|
||||||
e_cal_data_model_set_filter (priv->e_data_model,
|
e_cal_data_model_set_filter (priv->search_data_model,
|
||||||
query != NULL ? query : "#t");
|
query != NULL ? query : "#t");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -71,6 +71,11 @@ void gcal_manager_set_subscriber (GcalManager *manager
|
|||||||
time_t range_start,
|
time_t range_start,
|
||||||
time_t range_end);
|
time_t range_end);
|
||||||
|
|
||||||
|
void gcal_manager_set_search_subscriber (GcalManager *manager,
|
||||||
|
ECalDataModelSubscriber *subscriber,
|
||||||
|
time_t range_start,
|
||||||
|
time_t range_end);
|
||||||
|
|
||||||
void gcal_manager_set_query (GcalManager *manager,
|
void gcal_manager_set_query (GcalManager *manager,
|
||||||
const gchar *query);
|
const gchar *query);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user