Here is my first attempt at adding config hooks for the calendar properties window. Note that at this time, field verification isn't enabled, since I wasn't sure what people wanted for it. It requires a plugin to be installed for webcal properties to function correctly - i've added a plugins/ directory to the evolution root (as per some discussion on irc a week or so back). This will probably mean changing EPlugin to load plugins from both the system directory and the user EVOLUTION_PLUGIN_PATH, rather than just one or the other. -David
Attachment:
newfiles.tar.gz
Description: application/compressed-tar
? calendar-config-hooks.tar.gz ? plugin.mk ? plugins ? calendar/gui/apps_evolution_calendar-2.2.schemas ? calendar/gui/e-cal-config.c ? calendar/gui/e-cal-config.h ? calendar/gui/dialogs/cal-properties.c ? calendar/gui/dialogs/cal-properties.h ? help/C/evolution-2.2-C.omf ? help/C/evolution-2.2.xml ? mail/evolution-mail-2.2.schemas Index: ChangeLog =================================================================== RCS file: /cvs/gnome/evolution/ChangeLog,v retrieving revision 1.1375 diff -u -r1.1375 ChangeLog --- ChangeLog 1 Oct 2004 19:39:05 -0000 1.1375 +++ ChangeLog 14 Oct 2004 08:30:04 -0000 @@ -1,3 +1,7 @@ +2004-10-14 David Trowbridge <trowbrds cs colorado edu> + + * configure.in: added new "plugins" directory + 2004-10-01 Jeffrey Stedfast <fejj novell com> * configure.in (localedir): Enable imap4 plugin by default. We Index: Makefile.am =================================================================== RCS file: /cvs/gnome/evolution/Makefile.am,v retrieving revision 1.96 diff -u -r1.96 Makefile.am --- Makefile.am 12 Feb 2004 20:16:13 -0000 1.96 +++ Makefile.am 14 Oct 2004 08:30:04 -0000 @@ -48,7 +48,8 @@ views \ tools \ help \ - po + po \ + plugins # CDE Stuff Index: configure.in =================================================================== RCS file: /cvs/gnome/evolution/configure.in,v retrieving revision 1.722 diff -u -r1.722 configure.in --- configure.in 1 Oct 2004 19:39:05 -0000 1.722 +++ configure.in 14 Oct 2004 08:30:05 -0000 @@ -1277,6 +1277,9 @@ plugindir="$privlibdir/plugins" AC_SUBST(plugindir) +EVO_PLUGIN_RULE=$srcdir/plugin.mk +AC_SUBST_FILE(EVO_PLUGIN_RULE) + idldir="$datadir/idl/evolution-$BASE_VERSION" AC_SUBST(idldir) @@ -1514,6 +1517,8 @@ smime/lib/Makefile smime/gui/Makefile tools/Makefile +plugins/Makefile +plugins/com-novell-calendar-http/Makefile evolution-shell.pc camel.pc ]) Index: calendar/ChangeLog =================================================================== RCS file: /cvs/gnome/evolution/calendar/ChangeLog,v retrieving revision 1.2535 diff -u -r1.2535 ChangeLog --- calendar/ChangeLog 13 Oct 2004 04:58:51 -0000 1.2535 +++ calendar/ChangeLog 14 Oct 2004 08:30:18 -0000 @@ -1,3 +1,11 @@ +2004-10-14 David Trowbridge <trowbrds cs colorado edu> + + * gui/e-cal-config.c: added EConfig subclass for calendars + * gui/calendar-component.c: initialize plugin hooks on + component startup. + * gui/dialogs/cal-properties.c: added EConfig-based dialog + for the calendar properties window. + 2004-10-12 Li Yuan <li yuan sun com> * gui/e-day-view.c: (e_day_view_on_main_canvas_button_press): Index: calendar/gui/Makefile.am =================================================================== RCS file: /cvs/gnome/evolution/calendar/gui/Makefile.am,v retrieving revision 1.298 diff -u -r1.298 Makefile.am --- calendar/gui/Makefile.am 6 Oct 2004 03:22:38 -0000 1.298 +++ calendar/gui/Makefile.am 14 Oct 2004 08:30:19 -0000 @@ -59,6 +59,11 @@ component_LTLIBRARIES = libevolution-calendar.la +ecalendarincludedir = $(privincludedir)/calendar/gui + +ecalendarinclude_HEADERS = \ + e-cal-config.h + INCLUDES = \ -DG_LOG_DOMAIN=\"calendar-gui\" \ -I$(top_builddir)/shell \ @@ -115,6 +120,8 @@ e-alarm-list.h \ e-cal-component-preview.c \ e-cal-component-preview.h \ + e-cal-config.c \ + e-cal-config.h \ e-cal-model-calendar.h \ e-cal-model-calendar.c \ e-cal-model-calendar.h \ Index: calendar/gui/calendar-component.c =================================================================== RCS file: /cvs/gnome/evolution/calendar/gui/calendar-component.c,v retrieving revision 1.185 diff -u -r1.185 calendar-component.c --- calendar/gui/calendar-component.c 7 Oct 2004 01:42:50 -0000 1.185 +++ calendar/gui/calendar-component.c 14 Oct 2004 08:30:21 -0000 @@ -46,6 +46,7 @@ #include "comp-util.h" #include "common/authentication.h" #include "dialogs/calendar-setup.h" +#include "dialogs/cal-properties.h" #include "dialogs/comp-editor.h" #include "dialogs/copy-source-dialog.h" #include "dialogs/event-editor.h" @@ -54,6 +55,7 @@ #include "widgets/misc/e-error.h" #include "e-util/e-icon-factory.h" #include "e-cal-popup.h" +#include "e-cal-config.h" /* IDs for user creatable items */ #define CREATE_EVENT_ID "event" @@ -375,7 +377,7 @@ if (!selected_source) return; - calendar_setup_edit_calendar (GTK_WINDOW (gtk_widget_get_toplevel(ep->target->widget)), selected_source); + ec_calendar_properties_show (GTK_WINDOW (gtk_widget_get_toplevel (ep->target->widget)), selected_source); } static EPopupItem ecc_source_popups[] = { @@ -1182,6 +1184,17 @@ } static void +cc_startup (CalendarComponent *cc) +{ + static int started = 0; + if (started) + return; + started = 1; + + e_plugin_hook_register_type (ec_config_hook_get_type ()); +} + +static void impl_createControls (PortableServer_Servant servant, Bonobo_Control *corba_sidebar_control, Bonobo_Control *corba_view_control, @@ -1191,7 +1204,9 @@ CalendarComponent *calendar_component = CALENDAR_COMPONENT (bonobo_object_from_servant (servant)); CalendarComponentPrivate *priv; CalendarComponentView *component_view; - + + cc_startup (calendar_component); + priv = calendar_component->priv; /* Create the calendar component view */ Index: calendar/gui/dialogs/Makefile.am =================================================================== RCS file: /cvs/gnome/evolution/calendar/gui/dialogs/Makefile.am,v retrieving revision 1.64 diff -u -r1.64 Makefile.am --- calendar/gui/dialogs/Makefile.am 24 Jun 2004 21:02:09 -0000 1.64 +++ calendar/gui/dialogs/Makefile.am 14 Oct 2004 08:30:24 -0000 @@ -38,6 +38,8 @@ alarm-list-dialog.h \ cal-prefs-dialog.c \ cal-prefs-dialog.h \ + cal-properties.c \ + cal-properties.h \ calendar-setup.c \ calendar-setup.h \ cancel-comp.c \