diff options
Diffstat (limited to 'calendar')
-rw-r--r-- | calendar/conduits/Makefile.am | 3 | ||||
-rw-r--r-- | calendar/conduits/calendar/calendar-conduit.c | 17 | ||||
-rw-r--r-- | calendar/conduits/todo/.cvsignore | 8 | ||||
-rw-r--r-- | calendar/conduits/todo/Makefile.am | 81 | ||||
-rw-r--r-- | calendar/conduits/todo/todo-conduit-control-applet.c | 373 | ||||
-rw-r--r-- | calendar/conduits/todo/todo-conduit.c | 80 | ||||
-rw-r--r-- | calendar/conduits/todo/todo-conduit.h | 41 | ||||
-rw-r--r-- | calendar/conduits/todo/todo.conduit.in | 8 |
8 files changed, 401 insertions, 210 deletions
diff --git a/calendar/conduits/Makefile.am b/calendar/conduits/Makefile.am index 7f60f24bef..906ea61971 100644 --- a/calendar/conduits/Makefile.am +++ b/calendar/conduits/Makefile.am @@ -1,2 +1 @@ -SUBDIRS = calendar -# todo
\ No newline at end of file +SUBDIRS = calendar todo diff --git a/calendar/conduits/calendar/calendar-conduit.c b/calendar/conduits/calendar/calendar-conduit.c index 30363cbcf2..64190a4424 100644 --- a/calendar/conduits/calendar/calendar-conduit.c +++ b/calendar/conduits/calendar/calendar-conduit.c @@ -144,7 +144,12 @@ get_calendar_objects(GnomePilotConduitStandardAbs *conduit, g_return_val_if_fail (conduit != NULL, NULL); g_return_val_if_fail (ctxt != NULL, NULL); - uids = cal_client_get_uids (ctxt->client, CALOBJ_TYPE_ANY); + /* uids = cal_client_get_uids (ctxt->client, CALOBJ_TYPE_ANY); */ + uids = cal_client_get_uids (ctxt->client, + CALOBJ_TYPE_EVENT | + /*CALOBJ_TYPE_TODO |*/ + CALOBJ_TYPE_JOURNAL | + CALOBJ_TYPE_OTHER); if (status != NULL) (*status) = TRUE; @@ -531,7 +536,15 @@ check_for_slow_setting (GnomePilotConduit *c, GCalConduitContext *ctxt) GList *uids; unsigned long int entry_number; - uids = cal_client_get_uids (ctxt->client, CALOBJ_TYPE_ANY); + /* get all but TODOs, those are handled by the todo conduit */ + /* uids = cal_client_get_uids (ctxt->client, CALOBJ_TYPE_ANY); */ + uids = cal_client_get_uids (ctxt->client, + CALOBJ_TYPE_EVENT | + /*CALOBJ_TYPE_TODO |*/ + CALOBJ_TYPE_JOURNAL | + CALOBJ_TYPE_OTHER); + + entry_number = g_list_length (uids); LOG (_("Calendar holds %d entries"), entry_number); diff --git a/calendar/conduits/todo/.cvsignore b/calendar/conduits/todo/.cvsignore new file mode 100644 index 0000000000..2820c43c3b --- /dev/null +++ b/calendar/conduits/todo/.cvsignore @@ -0,0 +1,8 @@ +Makefile.in +Makefile +.deps +.libs +*.lo +*.la +todo-conduit-control-applet +todo.conduit diff --git a/calendar/conduits/todo/Makefile.am b/calendar/conduits/todo/Makefile.am new file mode 100644 index 0000000000..6801c6150d --- /dev/null +++ b/calendar/conduits/todo/Makefile.am @@ -0,0 +1,81 @@ +# +# +# + +INCLUDES = \ + -I$(top_srcdir)/calendar \ + $(GNOME_PILOT_CFLAGS) + +file_conduitsdir=$(libdir)/gnome-pilot/conduits + +bin_PROGRAMS = todo-conduit-control-applet + +todo_conduit_control_applet_SOURCES = todo-conduit-control-applet.c + +todo_conduit_control_applet_LDADD = \ + $(CAPPLET_LIBS) \ + $(GNOME_LIBDIR) \ + -lgpilotdcm \ + -lgpilotd \ + -lgpilotdconduit \ + $(GNOME_CAPPLET_LIBS) \ + $(BONOBO_VFS_GNOME_LIBS) \ + $(GNOME_XML_LIB) \ + $(GNOMEUI_LIBS) \ + $(PISOCK_LIBDIR) $(PISOCK_LIBS) \ + $(INTLLIBS) + + +# $(top_builddir)/libgpilotdCM/libgpilotdcm.la \ +# $(top_builddir)/gpilotd/libgpilotd.la \ +# $(top_builddir)/gpilotd/libgpilotdconduit.la \ + + +# todo_conduit +todo_conduitsdir=$(libdir)/gnome-pilot/conduits +todo_conduits_LTLIBRARIES = libtodo_conduit.la + +libtodo_conduit_la_SOURCES = \ + todo-conduit.c + +# todo-conduit.c: my_gnomecal_idl + +todo.conduit: todo.conduit.in Makefile + sed -e 's^\@prefix\@^$(prefix)^g' < $(srcdir)/todo.conduit.in > todo.conduit.tmp \ + && mv todo.conduit.tmp todo.conduit + +# +# conduit +# + +libtodo_conduit_la_LDFLAGS = \ + -rpath $(libdir) + +libtodo_conduit_la_LIBADD = \ + $(top_builddir)/calendar/cal-client/libcal-client-static.la \ + $(top_builddir)/calendar/cal-util/libcal-util-static.la \ + $(top_builddir)/libversit/libversit.la \ + $(top_builddir)/libical/src/libical/libical-static.la \ + $(BONOBO_VFS_GNOME_LIBS) \ + $(PISOCK_LIBDIR) $(PISOCK_LIBS) \ + $(GNOME_LIBDIR) \ + $(GNOME_LIBS) + +ccenterdir = $(datadir)/control-center +ccenterPalmPilotdir = $(ccenterdir)/Peripherals +ccenterConduitsdir = $(ccenterPalmPilotdir)/Conduits +ccenterConduits_DATA = todo-conduit-control-applet.desktop + +panelConduitsdir = $(datadir)/gnome/apps/Settings/Peripherals/Conduits +panelConduits_DATA = $(ccenterConduits_DATA) + +Conduitdir = $(datadir)/gnome-pilot/conduits/ +Conduit_DATA = todo.conduit + +EXTRA_DIST = \ + todo.conduit.in \ + $(ccenterConduits_DATA) + +install-data-local: + $(mkinstalldirs) $(ccenterConduitsdir) + $(mkinstalldirs) $(Conduitdir) diff --git a/calendar/conduits/todo/todo-conduit-control-applet.c b/calendar/conduits/todo/todo-conduit-control-applet.c index 54a26715ef..c37f75144a 100644 --- a/calendar/conduits/todo/todo-conduit-control-applet.c +++ b/calendar/conduits/todo/todo-conduit-control-applet.c @@ -1,7 +1,4 @@ -/* Control applet ("capplet") for the gnome-pilot todo conduit, */ -/* based on */ -/* gpilotd control applet ('capplet') for use with the GNOME control center */ -/* $Id$ */ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ #include <pwd.h> #include <sys/types.h> @@ -11,9 +8,9 @@ #include <config.h> #include <capplet-widget.h> -#include <gpilotd/gpilotd-conduit-mgmt.h> -#include <gpilotd/gpilotd-app.h> -#include <gpilotd/gpilotd-app-dummy-callbacks.h> +#include <libgpilotdCM/gnome-pilot-conduit-management.h> +#include <libgpilotdCM/gnome-pilot-conduit-config.h> +#include <gpilotd/gnome-pilot-client.h> #include "todo-conduit.h" @@ -29,7 +26,10 @@ GtkWidget *cfgStateWindow=NULL; GtkWidget *dialogWindow=NULL; gboolean activated,org_activation_state; -GnomePilotConduitMgmt *conduit; +GnomePilotConduitManagement *conduit; +GnomePilotConduitConfig *conduit_config; +ConduitCfg *origState = NULL; +ConduitCfg *curState = NULL; static void doTrySettings(GtkWidget *widget, ConduitCfg *conduitCfg); static void doRevertSettings(GtkWidget *widget, ConduitCfg *conduitCfg); @@ -40,248 +40,281 @@ static void setStateCfg(GtkWidget *w); gint pilotId; CORBA_Environment ev; +static GnomePilotClient *gpc; -static void -doTrySettings(GtkWidget *widget, ConduitCfg *conduitCfg) +#if 0 +static void +load_configuration(ConduitCfg **c, + guint32 pilotId) { - readStateCfg(cfgStateWindow); - if(activated) - gpilotd_conduit_mgmt_enable(conduit,pilotId,GnomePilotConduitSyncTypeSynchronize); - else - gpilotd_conduit_mgmt_disable(conduit,pilotId); + g_assert(c!=NULL); + *c = g_new0(ConduitCfg,1); + (*c)->pilotId = pilotId; } +#endif /* 0 */ -static void -doSaveSettings(GtkWidget *widget, ConduitCfg *conduitCfg) + +#if 0 +static void +save_configuration(ConduitCfg *c) { - doTrySettings(widget, conduitCfg); - save_configuration(NULL); + g_return_if_fail(c!=NULL); } +#endif /* 0 */ -static void -doRevertSettings(GtkWidget *widget, ConduitCfg *conduitCfg) +static ConduitCfg* +dupe_configuration(ConduitCfg *c) { + ConduitCfg *retval; + g_return_val_if_fail(c!=NULL,NULL); + retval = g_new0(ConduitCfg,1); + retval->pilotId = c->pilotId; + return retval; +} + +#if 0 +/** this method frees all data from the conduit config */ +static void +destroy_configuration(ConduitCfg **c) { - activated = org_activation_state; - setStateCfg(cfgStateWindow); + g_return_if_fail(c!=NULL); + g_return_if_fail(*c!=NULL); + g_free(*c); + *c = NULL; } +#endif /* 0 */ static void -insert_dir_callback (GtkEditable *editable, const gchar *text, - gint len, gint *position, void *data) +doTrySettings(GtkWidget *widget, ConduitCfg *conduitCfg) { - gint i; - gchar *curname; - - curname = gtk_entry_get_text(GTK_ENTRY(editable)); - if (*curname == '\0' && len > 0) { - if (isspace(text[0])) { - gtk_signal_emit_stop_by_name(GTK_OBJECT(editable), "insert_text"); - return; - } - } else { - for (i=0; i<len; i++) { - if (isspace(text[i])) { - gtk_signal_emit_stop_by_name(GTK_OBJECT(editable), - "insert_text"); - return; - } - } - } + readStateCfg(cfgStateWindow); + if(activated) + gnome_pilot_conduit_config_enable(conduit_config,GnomePilotConduitSyncTypeCustom); + else + gnome_pilot_conduit_config_disable(conduit_config); } + static void -insert_dir_callback2(GtkEditable *editable, const gchar *text, - gint length, gint *position, - void *data) +doSaveSettings(GtkWidget *widget, ConduitCfg *conduitCfg) { - if (!ignore_changes) - capplet_widget_state_changed(CAPPLET_WIDGET(capplet), TRUE); + doTrySettings(widget, conduitCfg); + save_configuration(conduitCfg); } + static void -clist_changed(GtkWidget *widget, gpointer data) +doRevertSettings(GtkWidget *widget, ConduitCfg *conduitCfg) { - if (!ignore_changes) - capplet_widget_state_changed(CAPPLET_WIDGET(capplet), TRUE); + activated = org_activation_state; + setStateCfg(cfgStateWindow); } - -void about_cb (GtkWidget *widget, gpointer data) { - GtkWidget *about; - const gchar *authors[] = {_("Eskil Heyn Olsen <deity@eskil.dk>"),NULL}; + +static void +about_cb (GtkWidget *widget, gpointer data) +{ + GtkWidget *about; + const gchar *authors[] = {_("Eskil Heyn Olsen <deity@eskil.dk>"),NULL}; - about = gnome_about_new(_("Gpilotd todo conduit"), VERSION, - _("(C) 1998 the Free Software Foundation"), - authors, - _("Configuration utility for the todo conduit.\n"), - _("gnome-unknown.xpm")); - gtk_widget_show (about); + about = gnome_about_new(_("Gpilotd todo conduit"), VERSION, + _("(C) 1998 the Free Software Foundation"), + authors, + _("Configuration utility for the todo conduit.\n"), + _("gnome-unknown.xpm")); + gtk_widget_show (about); - return; + return; } static void toggled_cb(GtkWidget *widget, gpointer data) { - gtk_widget_set_sensitive(cfgOptionsWindow,GTK_TOGGLE_BUTTON(widget)->active); - capplet_widget_state_changed(CAPPLET_WIDGET(capplet), TRUE); + if(!ignore_changes) { + /* gtk_widget_set_sensitive(cfgOptionsWindow,GTK_TOGGLE_BUTTON(widget)->active); */ + capplet_widget_state_changed(CAPPLET_WIDGET(capplet), TRUE); + } } static GtkWidget *createStateCfgWindow(void) { - GtkWidget *vbox, *table; - GtkWidget *entry, *label; - GtkWidget *button; + GtkWidget *vbox, *table; + GtkWidget *label; + GtkWidget *button; - vbox = gtk_vbox_new(FALSE, GNOME_PAD); + vbox = gtk_vbox_new(FALSE, GNOME_PAD); - table = gtk_table_new(2, 2, FALSE); - gtk_table_set_row_spacings(GTK_TABLE(table), 4); - gtk_table_set_col_spacings(GTK_TABLE(table), 10); - gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, GNOME_PAD); + table = gtk_table_new(2, 2, FALSE); + gtk_table_set_row_spacings(GTK_TABLE(table), 4); + gtk_table_set_col_spacings(GTK_TABLE(table), 10); + gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, GNOME_PAD); - label = gtk_label_new(_("Enabled")); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1,2); + label = gtk_label_new(_("Enabled")); + gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1,2); - button = gtk_check_button_new(); - gtk_object_set_data(GTK_OBJECT(vbox), "conduit_on_off", button); - gtk_signal_connect(GTK_OBJECT(button), "toggled", - GTK_SIGNAL_FUNC(toggled_cb), - NULL); - gtk_table_attach_defaults(GTK_TABLE(table), button, 1, 2, 1,2); + button = gtk_check_button_new(); + gtk_object_set_data(GTK_OBJECT(vbox), "conduit_on_off", button); + gtk_signal_connect(GTK_OBJECT(button), "toggled", + GTK_SIGNAL_FUNC(toggled_cb), + NULL); + gtk_table_attach_defaults(GTK_TABLE(table), button, 1, 2, 1,2); - return vbox; + return vbox; } static void setStateCfg(GtkWidget *cfg) { - GtkWidget *button; - gchar num[40]; + GtkWidget *button; - button = gtk_object_get_data(GTK_OBJECT(cfg), "conduit_on_off"); + button = gtk_object_get_data(GTK_OBJECT(cfg), "conduit_on_off"); - g_assert(button!=NULL); + g_assert(button!=NULL); - ignore_changes = TRUE; - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),activated); - gtk_widget_set_sensitive(cfgOptionsWindow,GTK_TOGGLE_BUTTON(button)->active); - ignore_changes = FALSE; + ignore_changes = TRUE; + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),activated); + /* gtk_widget_set_sensitive(cfgOptionsWindow,GTK_TOGGLE_BUTTON(button)->active); */ + ignore_changes = FALSE; } static void readStateCfg(GtkWidget *cfg) { - GtkWidget *button; + GtkWidget *button; - button = gtk_object_get_data(GTK_OBJECT(cfg), "conduit_on_off"); + button = gtk_object_get_data(GTK_OBJECT(cfg), "conduit_on_off"); - g_assert(button!=NULL); + g_assert(button!=NULL); - activated = GTK_TOGGLE_BUTTON(button)->active; + activated = GTK_TOGGLE_BUTTON(button)->active; } static void pilot_capplet_setup(void) { - GtkWidget *frame, *table; + GtkWidget *frame, *table; - capplet = capplet_widget_new(); + capplet = capplet_widget_new(); - table = gtk_table_new(1, 2, FALSE); - gtk_container_border_width(GTK_CONTAINER(table), GNOME_PAD); - gtk_container_add(GTK_CONTAINER(capplet), table); + table = gtk_table_new(1, 2, FALSE); + gtk_container_border_width(GTK_CONTAINER(table), GNOME_PAD); + gtk_container_add(GTK_CONTAINER(capplet), table); - frame = gtk_frame_new(_("Conduit state")); - gtk_container_border_width(GTK_CONTAINER(frame), GNOME_PAD_SMALL); - gtk_table_attach_defaults(GTK_TABLE(table), frame, 0, 1, 0, 1); - cfgStateWindow = createStateCfgWindow(); - gtk_container_add(GTK_CONTAINER(frame), cfgStateWindow); + frame = gtk_frame_new(_("Conduit state")); + gtk_container_border_width(GTK_CONTAINER(frame), GNOME_PAD_SMALL); + gtk_table_attach_defaults(GTK_TABLE(table), frame, 0, 1, 0, 1); + cfgStateWindow = createStateCfgWindow(); + gtk_container_add(GTK_CONTAINER(frame), cfgStateWindow); - gtk_signal_connect(GTK_OBJECT(capplet), "try", - GTK_SIGNAL_FUNC(doTrySettings), NULL); - gtk_signal_connect(GTK_OBJECT(capplet), "revert", - GTK_SIGNAL_FUNC(doRevertSettings), NULL); - gtk_signal_connect(GTK_OBJECT(capplet), "ok", - GTK_SIGNAL_FUNC(doSaveSettings), NULL); - gtk_signal_connect(GTK_OBJECT(capplet), "help", - GTK_SIGNAL_FUNC(about_cb), NULL); + gtk_signal_connect(GTK_OBJECT(capplet), "try", + GTK_SIGNAL_FUNC(doTrySettings), curState); + gtk_signal_connect(GTK_OBJECT(capplet), "revert", + GTK_SIGNAL_FUNC(doRevertSettings), curState); + gtk_signal_connect(GTK_OBJECT(capplet), "ok", + GTK_SIGNAL_FUNC(doSaveSettings), curState); + gtk_signal_connect(GTK_OBJECT(capplet), "help", + GTK_SIGNAL_FUNC(about_cb), NULL); - setStateCfg(cfgStateWindow); + setStateCfg(cfgStateWindow); - gtk_widget_show_all(capplet); + gtk_widget_show_all(capplet); } -void run_error_dialog(gchar *mesg,...) { - char tmp[80]; - va_list ap; - - va_start(ap,mesg); - vsnprintf(tmp,79,mesg,ap); - dialogWindow = gnome_message_box_new(mesg,GNOME_MESSAGE_BOX_ERROR,GNOME_STOCK_BUTTON_OK,NULL); - gnome_dialog_run_and_close(GNOME_DIALOG(dialogWindow)); - va_end(ap); +static void +run_error_dialog(gchar *mesg,...) +{ + char tmp[80]; + va_list ap; + + va_start(ap,mesg); + vsnprintf(tmp,79,mesg,ap); + dialogWindow = gnome_message_box_new(mesg,GNOME_MESSAGE_BOX_ERROR,GNOME_STOCK_BUTTON_OK,NULL); + gnome_dialog_run_and_close(GNOME_DIALOG(dialogWindow)); + va_end(ap); } -gint get_pilot_id_from_gpilotd() { - gint *pilots; - int i; +static gint +get_pilot_id_from_gpilotd() +{ + GList *pilots=NULL; + gint pilot; + int i,err; i=0; - gpilotd_get_pilot_ids(&pilots); - if(pilots) { - while(pilots[i]!=-1) { g_message("pilot %d = \"%d\"",i,pilots[i]); i++; } - if(i==0) { + /* we don't worry about leaking here, so pilots isn't freed */ + switch(err = gnome_pilot_client_get_pilots(gpc,&pilots)) { + case GPILOTD_OK: { + if(pilots) { + for(i=0;i<g_list_length(pilots);i++) { + g_message("pilot %d = \"%s\"",i,(gchar*)g_list_nth(pilots,i)->data); + } + if(i==0) { + run_error_dialog(_("No pilot configured, please choose the\n'Pilot Link Properties' capplet first.")); + return -1; + } else { + gnome_pilot_client_get_pilot_id_by_name(gpc, + pilots->data, /* this is the first pilot */ + &pilot); + if(i>1) { + g_message("too many pilots..."); + /* need a choose here */ + } + return pilot; + } + } else { run_error_dialog(_("No pilot configured, please choose the\n'Pilot Link Properties' capplet first.")); return -1; - } else { - if(i==1) - return pilots[0]; - else { - g_message("too many pilots..."); - return pilots[0]; - } - } - } else { - run_error_dialog(_("No pilot configured, please choose the\n'Pilot Link Properties' capplet first.")); + } + break; + } + case GPILOTD_ERR_NOT_CONNECTED: + run_error_dialog(_("Not connected to the gnome-pilot daemon")); + return -1; + break; + default: + g_warning("gnome_pilot_client_get_pilot_ids(...) = %d",err); + run_error_dialog(_("An error occured when trying to fetch\npilot list from the gnome-pilot daemon")); return -1; - } + break; + } } int main( int argc, char *argv[] ) { - /* we're a capplet */ - gnome_capplet_init ("todo conduit control applet", NULL, argc, argv, - NULL, - 0, NULL); - - /* put all code to set things up in here */ - conduit = gpilotd_conduit_mgmt_new("todo_conduit"); - - /* get pilot name from gpilotd */ - /* 1. initialize the gpilotd connection */ - if (gpilotd_init(&argc,argv)!=0) { - run_error_dialog(_("Cannot initialze the GnomePilot Daemon")); - g_error(_("Cannot initialze the GnomePilot Daemon")); - return -1; - } - - /* 2 connect to gpilotd */ - if (gpilotd_connect()!=0) { - run_error_dialog(_("Cannot connect to the GnomePilot Daemon")); - g_error(_("Cannot connect to the GnomePilot Daemon")); - return -1; - } - - pilotId = get_pilot_id_from_gpilotd(); - if(!pilotId) return -1; - org_activation_state = activated = gpilotd_conduit_mgmt_is_enabled(conduit,pilotId); + /* + bindtextdomain (PACKAGE, GNOMELOCALEDIR); + textdomain (PACKAGE); + */ + + /* we're a capplet */ + gnome_capplet_init ("todo conduit control applet", NULL, argc, argv, + NULL, + 0, NULL); + + + gpc = gnome_pilot_client_new(); + gnome_pilot_client_connect_to_daemon(gpc); + pilotId = get_pilot_id_from_gpilotd(); + if(!pilotId) return -1; + + /* put all code to set things up in here */ + load_configuration(&origState,pilotId); + curState = dupe_configuration(origState); + + /* put all code to set things up in here */ + conduit = gnome_pilot_conduit_management_new ("todo_conduit", + GNOME_PILOT_CONDUIT_MGMT_ID); + if (conduit==NULL) return -1; + conduit_config = gnome_pilot_conduit_config_new(conduit,pilotId); + org_activation_state = activated = gnome_pilot_conduit_config_is_enabled(conduit_config,NULL); - pilot_capplet_setup(); + pilot_capplet_setup(); - /* done setting up, now run main loop */ - capplet_gtk_main(); - return 0; + /* done setting up, now run main loop */ + capplet_gtk_main(); + + gnome_pilot_conduit_management_destroy(conduit); + + return 0; } diff --git a/calendar/conduits/todo/todo-conduit.c b/calendar/conduits/todo/todo-conduit.c index 3a543816af..6c76fc626d 100644 --- a/calendar/conduits/todo/todo-conduit.c +++ b/calendar/conduits/todo/todo-conduit.c @@ -1,3 +1,4 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* $Id$ */ #include <glib.h> @@ -21,35 +22,45 @@ #include "todo-conduit.h" + +GnomePilotConduit *conduit_get_gpilot_conduit (guint32 pilotId); +void conduit_destroy_gpilot_conduit (GnomePilotConduit *conduit); + static gint load_records(GnomePilotConduit *c) { - return 0; + return 0; } + static gint -pre_sync(GnomePilotConduit *c, GnomePilotDBInfo *dbi) { - int l; - unsigned char *buf; +pre_sync(GnomePilotConduit *c, GnomePilotDBInfo *dbi) +{ + int l; + unsigned char *buf; - gtk_object_set_data(GTK_OBJECT(c),"dbinfo",dbi); + gtk_object_set_data(GTK_OBJECT(c),"dbinfo",dbi); - load_records(c); + load_records(c); - buf = (unsigned char*)g_malloc(0xffff); - if((l=dlp_ReadAppBlock(dbi->pilot_socket,dbi->db_handle,0,(unsigned char *)buf,0xffff))<0) { - return -1; - } - unpack_ToDoAppInfo(&(GET_DATA(c)->ai),buf,l); - g_free(buf); + buf = (unsigned char*)g_malloc(0xffff); + if((l=dlp_ReadAppBlock(dbi->pilot_socket,dbi->db_handle,0,(unsigned char *)buf,0xffff))<0) { + return -1; + } + unpack_ToDoAppInfo(&(GET_DATA(c)->ai),buf,l); + g_free(buf); - return 0; + return 0; } + +#if 0 static gint post_sync(GnomePilotConduit *c) { - return 0; + return 0; } +#endif /* 0 */ + static gint match_record (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, @@ -60,6 +71,8 @@ match_record (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, g_print ("in match_record\n"); return 0; } + + static gint free_match (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, LocalRecord **local, @@ -70,6 +83,8 @@ free_match (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, return 0; } + + static gint archive_local (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, LocalRecord *local, @@ -79,6 +94,8 @@ archive_local (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, return 1; } + + static gint archive_remote (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, LocalRecord *local, @@ -88,6 +105,8 @@ archive_remote (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, g_print ("entering archive_remote\n"); return 1; } + + static gint store_remote (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, PilotRecord *remote, @@ -97,6 +116,8 @@ store_remote (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, g_print ("Rec:%s:\nLength:%d\n", remote->record, remote->length); return 1; } + + static gint clear_status_archive_local (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, LocalRecord *local, @@ -105,6 +126,8 @@ clear_status_archive_local (GnomePilotConduitStandardAbs *pilot_conduit_standard g_print ("entering clear_status_archive_local\n"); return 1; } + + static gint iterate (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, LocalRecord **local, @@ -113,6 +136,8 @@ iterate (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, g_print ("entering iterate\n"); return 1; } + + static gint iterate_specific (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, LocalRecord **local, @@ -123,6 +148,8 @@ iterate_specific (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, g_print ("entering iterate_specific\n"); return 1; } + + static gint purge (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, gpointer data) @@ -130,6 +157,8 @@ purge (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, g_print ("entering purge\n"); return 1; } + + static gint set_status (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, LocalRecord *local, @@ -139,6 +168,8 @@ set_status (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, g_print ("entering set_status\n"); return 1; } + + static gint set_archived (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, LocalRecord *local, @@ -148,6 +179,8 @@ set_archived (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, g_print ("entering set_archived\n"); return 1; } + + static gint set_pilot_id (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, LocalRecord *local, @@ -157,6 +190,8 @@ set_pilot_id (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, g_print ("entering set_pilot_id\n"); return 1; } + + static gint compare (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, LocalRecord *local, @@ -166,6 +201,8 @@ compare (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, g_print ("entering compare\n"); return 1; } + + static gint compare_backup (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, LocalRecord *local, @@ -175,6 +212,8 @@ compare_backup (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, g_print ("entering compare_backup\n"); return 1; } + + static gint free_transmit (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, LocalRecord *local, @@ -184,6 +223,8 @@ free_transmit (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, g_print ("entering free_transmit\n"); return 1; } + + static gint delete_all (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, gpointer data) @@ -191,6 +232,8 @@ delete_all (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, g_print ("entering delete_all\n"); return 1; } + + static PilotRecord * transmit (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, LocalRecord *local, @@ -200,7 +243,8 @@ transmit (GnomePilotConduitStandardAbs *pilot_conduit_standard_abs, return NULL; } -static GnomePilotConduit * + +GnomePilotConduit * conduit_get_gpilot_conduit (guint32 pilotId) { GtkObject *retval; @@ -238,13 +282,15 @@ conduit_get_gpilot_conduit (guint32 pilotId) gtk_signal_connect (retval, "delete_all", (GtkSignalFunc) delete_all, NULL); gtk_signal_connect (retval, "transmit", (GtkSignalFunc) transmit, NULL); gtk_signal_connect (retval, "pre_sync", (GtkSignalFunc) pre_sync, NULL); - gtk_signal_connect (retval, "post_sync", (GtkSignalFunc) post_sync, NULL); + /* gtk_signal_connect (retval, "post_sync", (GtkSignalFunc) post_sync, NULL); */ load_configuration(&cfg,pilotId); return GNOME_PILOT_CONDUIT (retval); } -static void + + +void conduit_destroy_gpilot_conduit (GnomePilotConduit *conduit) { ConduitCfg *cc; diff --git a/calendar/conduits/todo/todo-conduit.h b/calendar/conduits/todo/todo-conduit.h index c224b2b1f3..083064d3c1 100644 --- a/calendar/conduits/todo/todo-conduit.h +++ b/calendar/conduits/todo/todo-conduit.h @@ -1,3 +1,4 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* $Id$ */ #ifndef __TODO_CONDUIT_H__ @@ -12,8 +13,8 @@ typedef struct _ConduitCfg ConduitCfg; struct _ConduitCfg { - gboolean open_secret; - guint32 pilotId; + gboolean open_secret; + guint32 pilotId; }; #define GET_CONFIG(c) ((ConduitCfg*)gtk_object_get_data(GTK_OBJECT(c),"conduit_cfg")) @@ -21,39 +22,41 @@ struct _ConduitCfg { typedef struct _ConduitData ConduitData; struct _ConduitData { - struct ToDoAppInfo ai; + struct ToDoAppInfo ai; }; #define GET_DATA(c) ((ConduitData*)gtk_object_get_data(GTK_OBJECT(c),"conduit_data")) static void load_configuration(ConduitCfg **c,guint32 pilotId) { - gchar prefix[256]; - g_snprintf(prefix,255,"/gnome-pilot.d/todod-conduit/Pilot_%u/",pilotId); + gchar prefix[256]; + g_snprintf(prefix,255,"/gnome-pilot.d/todod-conduit/Pilot_%u/",pilotId); - *c = g_new0(ConduitCfg,1); - gnome_config_push_prefix(prefix); - (*c)->open_secret = gnome_config_get_bool("open secret=FALSE"); - gnome_config_pop_prefix(); + *c = g_new0(ConduitCfg,1); + gnome_config_push_prefix(prefix); + (*c)->open_secret = gnome_config_get_bool("open secret=FALSE"); + gnome_config_pop_prefix(); - (*c)->pilotId = pilotId; + (*c)->pilotId = pilotId; } static void save_configuration(ConduitCfg *c) { - gchar prefix[256]; + gchar prefix[256]; - g_snprintf(prefix,255,"/gnome-pilot.d/todo-conduit/Pilot_%u/",c->pilotId); + g_snprintf(prefix,255,"/gnome-pilot.d/todo-conduit/Pilot_%u/",c->pilotId); - gnome_config_push_prefix(prefix); - gnome_config_set_bool("open secret",c->open_secret); - gnome_config_pop_prefix(); + gnome_config_push_prefix(prefix); + gnome_config_set_bool("open secret",c->open_secret); + gnome_config_pop_prefix(); - gnome_config_sync(); - gnome_config_drop_all(); + gnome_config_sync(); + gnome_config_drop_all(); } static void destroy_configuration(ConduitCfg **c) { - g_free(*c); - *c = NULL; + g_return_if_fail(c!=NULL); + g_return_if_fail(*c!=NULL); + g_free(*c); + *c = NULL; } #endif __TODO_CONDUIT_H__ diff --git a/calendar/conduits/todo/todo.conduit.in b/calendar/conduits/todo/todo.conduit.in new file mode 100644 index 0000000000..b940c2b498 --- /dev/null +++ b/calendar/conduits/todo/todo.conduit.in @@ -0,0 +1,8 @@ +<gnome-pilot-conduit version="1.0"> +<conduit id="todo_conduit" type="shlib" location="@prefix@/lib/gnome-pilot/conduits/libtodo_conduit.so"/> +<name value="todo"/> +<conduit-attribute name="description" value="Synchronizes with Evolution"/> +<conduit-attribute name="default-synctype" value="synchronize"/> +<conduit-attribute name="icon" value="@prefix@/share/pixmaps/gnome-calendar-conduit.png"/> +<conduit-attribute name="settings" value="TRUE"/> +</gnome-pilot-conduit> |