new method.
2002-04-05 Rodrigo Moya <rodrigo@ximian.com> * pcs/cal-backend.[ch] (cal_backend_get_query): new method. * pcs/cal-backend-file.c (cal_backend_file_get_query): new method. * pcs/cal.c (impl_Cal_get_query): call the CalBackend's implementation instead of calling query_new directly. * pcs/query.[ch]: fixed headers. svn path=/trunk/; revision=16443
This commit is contained in:

committed by
Rodrigo Moya

parent
48182f64e8
commit
045c2a07b9
@ -1,3 +1,14 @@
|
||||
2002-04-05 Rodrigo Moya <rodrigo@ximian.com>
|
||||
|
||||
* pcs/cal-backend.[ch] (cal_backend_get_query): new method.
|
||||
|
||||
* pcs/cal-backend-file.c (cal_backend_file_get_query): new method.
|
||||
|
||||
* pcs/cal.c (impl_Cal_get_query): call the CalBackend's implementation
|
||||
instead of calling query_new directly.
|
||||
|
||||
* pcs/query.[ch]: fixed headers.
|
||||
|
||||
2002-04-10 Dan Winship <danw@ximian.com>
|
||||
|
||||
* gui/gnome-cal.c (gnome_calendar_open): Fix this: Rodrigo's patch
|
||||
|
@ -95,6 +95,9 @@ static CalBackendOpenStatus cal_backend_file_open (CalBackend *backend,
|
||||
const char *uristr,
|
||||
gboolean only_if_exists);
|
||||
static gboolean cal_backend_file_is_loaded (CalBackend *backend);
|
||||
static Query *cal_backend_file_get_query (CalBackend *backend,
|
||||
GNOME_Evolution_Calendar_QueryListener ql,
|
||||
const char *sexp);
|
||||
|
||||
static CalMode cal_backend_file_get_mode (CalBackend *backend);
|
||||
static void cal_backend_file_set_mode (CalBackend *backend, CalMode mode);
|
||||
@ -180,6 +183,7 @@ cal_backend_file_class_init (CalBackendFileClass *class)
|
||||
backend_class->get_uri = cal_backend_file_get_uri;
|
||||
backend_class->open = cal_backend_file_open;
|
||||
backend_class->is_loaded = cal_backend_file_is_loaded;
|
||||
backend_class->get_query = cal_backend_file_get_query;
|
||||
backend_class->get_mode = cal_backend_file_get_mode;
|
||||
backend_class->set_mode = cal_backend_file_set_mode;
|
||||
backend_class->get_n_objects = cal_backend_file_get_n_objects;
|
||||
@ -910,6 +914,19 @@ cal_backend_file_is_loaded (CalBackend *backend)
|
||||
return (priv->icalcomp != NULL);
|
||||
}
|
||||
|
||||
/* get_query handler for the file backend */
|
||||
static Query *
|
||||
cal_backend_file_get_query (CalBackend *backend,
|
||||
GNOME_Evolution_Calendar_QueryListener ql,
|
||||
const char *sexp)
|
||||
{
|
||||
CalBackendFile *cbfile;
|
||||
|
||||
cbfile = CAL_BACKEND_FILE (backend);
|
||||
|
||||
return query_new (backend, ql, sexp);
|
||||
}
|
||||
|
||||
/* is_remote handler for the file backend */
|
||||
static CalMode
|
||||
cal_backend_file_get_mode (CalBackend *backend)
|
||||
|
@ -143,6 +143,7 @@ cal_backend_class_init (CalBackendClass *class)
|
||||
class->get_uri = NULL;
|
||||
class->open = NULL;
|
||||
class->is_loaded = NULL;
|
||||
class->get_query = NULL;
|
||||
class->get_mode = NULL;
|
||||
class->set_mode = NULL;
|
||||
class->get_n_objects = NULL;
|
||||
@ -296,6 +297,32 @@ cal_backend_is_loaded (CalBackend *backend)
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* cal_backend_get_query:
|
||||
* @backend: A calendar backend.
|
||||
* @ql: The query listener.
|
||||
* @sexp: Search expression.
|
||||
*
|
||||
* Create a query object for this backend.
|
||||
*/
|
||||
Query *
|
||||
cal_backend_get_query (CalBackend *backend,
|
||||
GNOME_Evolution_Calendar_QueryListener ql,
|
||||
const char *sexp)
|
||||
{
|
||||
Query *result;
|
||||
|
||||
g_return_val_if_fail (backend != NULL, FALSE);
|
||||
g_return_val_if_fail (IS_CAL_BACKEND (backend), FALSE);
|
||||
|
||||
if (CLASS (backend)->get_query != NULL)
|
||||
result = (* CLASS (backend)->get_query) (backend, ql, sexp);
|
||||
else
|
||||
result = query_new (backend, ql, sexp);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* cal_backend_get_mode:
|
||||
* @backend: A calendar backend.
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include "evolution-calendar.h"
|
||||
#include "cal-common.h"
|
||||
#include "cal.h"
|
||||
#include "query.h"
|
||||
|
||||
BEGIN_GNOME_DECLS
|
||||
|
||||
@ -80,6 +81,10 @@ struct _CalBackendClass {
|
||||
|
||||
gboolean (* is_loaded) (CalBackend *backend);
|
||||
|
||||
Query *(* get_query) (CalBackend *backend,
|
||||
GNOME_Evolution_Calendar_QueryListener ql,
|
||||
const char *sexp);
|
||||
|
||||
/* Mode relate virtual methods */
|
||||
CalMode (* get_mode) (CalBackend *backend);
|
||||
void (* set_mode) (CalBackend *backend, CalMode mode);
|
||||
@ -127,6 +132,10 @@ CalBackendOpenStatus cal_backend_open (CalBackend *backend, const char *uristr,
|
||||
|
||||
gboolean cal_backend_is_loaded (CalBackend *backend);
|
||||
|
||||
Query *cal_backend_get_query (CalBackend *backend,
|
||||
GNOME_Evolution_Calendar_QueryListener ql,
|
||||
const char *sexp);
|
||||
|
||||
CalMode cal_backend_get_mode (CalBackend *backend);
|
||||
void cal_backend_set_mode (CalBackend *backend, CalMode mode);
|
||||
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include <ical.h>
|
||||
#include <bonobo/bonobo-exception.h>
|
||||
#include "cal.h"
|
||||
#include "cal-backend.h"
|
||||
#include "query.h"
|
||||
#include "wombat.h"
|
||||
|
||||
@ -427,7 +428,7 @@ impl_Cal_get_query (PortableServer_Servant servant,
|
||||
cal = CAL (bonobo_object_from_servant (servant));
|
||||
priv = cal->priv;
|
||||
|
||||
query = query_new (priv->backend, ql, sexp);
|
||||
query = cal_backend_get_query (priv->backend, ql, sexp);
|
||||
if (!query) {
|
||||
bonobo_exception_set (ev, ex_GNOME_Evolution_Calendar_Cal_CouldNotCreate);
|
||||
return CORBA_OBJECT_NIL;
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include <e-util/e-sexp.h>
|
||||
#include <cal-util/cal-recur.h>
|
||||
#include <cal-util/timeutil.h>
|
||||
#include "cal-backend.h"
|
||||
#include "query.h"
|
||||
|
||||
|
||||
|
@ -23,7 +23,8 @@
|
||||
|
||||
#include <libgnome/gnome-defs.h>
|
||||
#include <bonobo/bonobo-xobject.h>
|
||||
#include "cal-backend.h"
|
||||
#include "cal-common.h"
|
||||
#include "evolution-calendar.h"
|
||||
|
||||
BEGIN_GNOME_DECLS
|
||||
|
||||
|
Reference in New Issue
Block a user