Get the calendar-weather plugin working.
This commit is contained in:
@ -43,8 +43,8 @@ static void
|
||||
ece_target_free (EEvent *ev, EEventTarget *t)
|
||||
{
|
||||
switch (t->type) {
|
||||
case E_CAL_EVENT_TARGET_MODULE: {
|
||||
ECalEventTargetModule *s = (ECalEventTargetModule *) t;
|
||||
case E_CAL_EVENT_TARGET_BACKEND: {
|
||||
ECalEventTargetBackend *s = (ECalEventTargetBackend *) t;
|
||||
if (s->shell_backend)
|
||||
g_object_unref (s->shell_backend);
|
||||
if (s->source_list)
|
||||
@ -94,10 +94,10 @@ e_cal_event_peek (void)
|
||||
return e_cal_event;
|
||||
}
|
||||
|
||||
ECalEventTargetModule *
|
||||
ECalEventTargetBackend *
|
||||
e_cal_event_target_new_module (ECalEvent *ece, EShellBackend *shell_backend, ESourceList *source_list, guint32 flags)
|
||||
{
|
||||
ECalEventTargetModule *t = e_event_target_new (&ece->event, E_CAL_EVENT_TARGET_MODULE, sizeof (*t));
|
||||
ECalEventTargetBackend *t = e_event_target_new (&ece->event, E_CAL_EVENT_TARGET_BACKEND, sizeof (*t));
|
||||
|
||||
t->shell_backend = g_object_ref (shell_backend);
|
||||
t->source_list = g_object_ref (source_list);
|
||||
@ -116,7 +116,7 @@ static const EEventHookTargetMask eceh_module_masks[] = {
|
||||
};
|
||||
|
||||
static const EEventHookTargetMap eceh_targets[] = {
|
||||
{ "module", E_CAL_EVENT_TARGET_MODULE, eceh_module_masks },
|
||||
{ "module", E_CAL_EVENT_TARGET_BACKEND, eceh_module_masks },
|
||||
{ NULL },
|
||||
};
|
||||
|
||||
|
||||
@ -36,17 +36,17 @@ typedef struct _ECalEvent ECalEvent;
|
||||
typedef struct _ECalEventClass ECalEventClass;
|
||||
|
||||
enum _e_cal_event_target_t {
|
||||
E_CAL_EVENT_TARGET_MODULE,
|
||||
E_CAL_EVENT_TARGET_BACKEND,
|
||||
};
|
||||
|
||||
/* Flags that describe TARGET_MODULE */
|
||||
/* Flags that describe TARGET_BACKEND */
|
||||
enum {
|
||||
E_CAL_EVENT_MODULE_MIGRATION = 1 << 0,
|
||||
};
|
||||
|
||||
typedef struct _ECalEventTargetModule ECalEventTargetModule;
|
||||
typedef struct _ECalEventTargetBackend ECalEventTargetBackend;
|
||||
|
||||
struct _ECalEventTargetModule {
|
||||
struct _ECalEventTargetBackend {
|
||||
EEventTarget target;
|
||||
EShellBackend *shell_backend;
|
||||
ESourceList *source_list;
|
||||
@ -64,7 +64,7 @@ struct _ECalEventClass {
|
||||
|
||||
GType e_cal_event_get_type (void);
|
||||
ECalEvent* e_cal_event_peek (void);
|
||||
ECalEventTargetModule* e_cal_event_target_new_module (ECalEvent *ece, EShellBackend *shell_backend, ESourceList *source_list, guint32 flags);
|
||||
ECalEventTargetBackend* e_cal_event_target_new_module (ECalEvent *ece, EShellBackend *shell_backend, ESourceList *source_list, guint32 flags);
|
||||
|
||||
/* ********************************************************************** */
|
||||
|
||||
|
||||
@ -1735,12 +1735,11 @@ plugins_experimental="$plugins_experimental_always $IPOD_SYNC $TNEF_ATTACHMENTS
|
||||
all_plugins_experimental="$plugins_experimental_always ipod-sync tnef-attachments"
|
||||
|
||||
dnl Temporary KILL-BONOBO hack
|
||||
enable_plugins="attachment-reminder addressbook-file audio-inline bbdb bogo-junk-plugin caldav calendar-file calendar-http default-mailer default-source email-custom-header external-editor face google-account-setup hula-account-setup imap-features mail-notification mail-to-task mark-all-read plugin-manager prefer-plain profiler pst-import sa-junk-plugin save-calendar startup-wizard subject-thread templates $TNEF_ATTACHMENTS vcard-inline webdav-account-setup"
|
||||
enable_plugins="attachment-reminder addressbook-file audio-inline bbdb bogo-junk-plugin caldav calendar-file calendar-http calendar-weather default-mailer default-source email-custom-header external-editor face google-account-setup hula-account-setup imap-features mail-notification mail-to-task mark-all-read plugin-manager prefer-plain profiler pst-import sa-junk-plugin save-calendar startup-wizard subject-thread templates $TNEF_ATTACHMENTS vcard-inline webdav-account-setup"
|
||||
|
||||
dnl PLUGINS NOT BUILDING YET
|
||||
dnl ------------------------
|
||||
dnl backup-restore
|
||||
dnl calendar-weather
|
||||
dnl exchange-operations
|
||||
dnl groupwise-features
|
||||
dnl ipod-sync
|
||||
|
||||
@ -623,7 +623,7 @@ e_cal_shell_backend_migrate (EShellBackend *shell_backend,
|
||||
ESource *personal_source = NULL;
|
||||
ESourceList *source_list;
|
||||
ECalEvent *ece;
|
||||
ECalEventTargetModule *target;
|
||||
ECalEventTargetBackend *target;
|
||||
gboolean retval = FALSE;
|
||||
|
||||
source_list = g_object_get_data (
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
eds_datadir = `pkg-config --variable=privdatadir evolution-data-server-1.2`
|
||||
|
||||
AM_CPPFLAGS = \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_builddir)/shell \
|
||||
$(EVOLUTION_CALENDAR_CFLAGS) \
|
||||
$(SOURCE_SEL_CFLAGS) \
|
||||
-DWEATHER_DATADIR=\""$(weatherdatadir)"\" \
|
||||
-DWEATHER_EDS_DATADIR=\""$(eds_datadir)/weather"\" \
|
||||
AM_CPPFLAGS = \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_srcdir)/widgets \
|
||||
$(EVOLUTION_CALENDAR_CFLAGS) \
|
||||
$(SOURCE_SEL_CFLAGS) \
|
||||
-DWEATHER_DATADIR=\""$(weatherdatadir)"\" \
|
||||
-DWEATHER_EDS_DATADIR=\""$(eds_datadir)/weather"\" \
|
||||
$(LIBGWEATHER_CFLAGS)
|
||||
|
||||
@EVO_PLUGIN_RULE@
|
||||
|
||||
@ -24,7 +24,6 @@
|
||||
#include "e-util/e-icon-factory.h"
|
||||
#include <calendar/gui/e-cal-config.h>
|
||||
#include <calendar/gui/e-cal-event.h>
|
||||
#include <calendar/gui/calendar-component.h>
|
||||
#include <libedataserver/e-source.h>
|
||||
#include <libedataserver/e-url.h>
|
||||
#include <libedataserver/e-categories.h>
|
||||
@ -42,7 +41,7 @@ GtkWidget *e_calendar_weather_location (EPlugin *epl, EConfigHookItemFactoryData
|
||||
GtkWidget *e_calendar_weather_refresh (EPlugin *epl, EConfigHookItemFactoryData *data);
|
||||
GtkWidget *e_calendar_weather_units (EPlugin *epl, EConfigHookItemFactoryData *data);
|
||||
gboolean e_calendar_weather_check (EPlugin *epl, EConfigHookPageCheckData *data);
|
||||
void e_calendar_weather_migrate (EPlugin *epl, ECalEventTargetComponent *data);
|
||||
void e_calendar_weather_migrate (EPlugin *epl, ECalEventTargetBackend *data);
|
||||
gint e_plugin_lib_enable (EPluginLib *epl, gint enable);
|
||||
|
||||
#define WEATHER_BASE_URI "weather://"
|
||||
@ -93,21 +92,16 @@ exit:
|
||||
}
|
||||
|
||||
void
|
||||
e_calendar_weather_migrate (EPlugin *epl, ECalEventTargetComponent *data)
|
||||
e_calendar_weather_migrate (EPlugin *epl, ECalEventTargetBackend *data)
|
||||
{
|
||||
/* Perform a migration step here. This allows us to keep the weather calendar completely
|
||||
* separate from evolution. If the plugin isn't built, the weather source group won't
|
||||
* show up in the user's evolution. If it is, this will create it if it doesn't exist */
|
||||
CalendarComponent *component;
|
||||
ESourceList *source_list;
|
||||
ESourceGroup *group;
|
||||
GSList *groups;
|
||||
ESourceGroup *weather = NULL;
|
||||
|
||||
component = data->component;
|
||||
source_list = calendar_component_peek_source_list (component);
|
||||
|
||||
groups = e_source_list_peek_groups (source_list);
|
||||
groups = e_source_list_peek_groups (data->source_list);
|
||||
if (groups) {
|
||||
/* groups are already there, we need to search */
|
||||
GSList *g;
|
||||
@ -121,7 +115,7 @@ e_calendar_weather_migrate (EPlugin *epl, ECalEventTargetComponent *data)
|
||||
|
||||
if (!weather) {
|
||||
group = e_source_group_new (_("Weather"), WEATHER_BASE_URI);
|
||||
e_source_list_add_group (source_list, group, -1);
|
||||
e_source_list_add_group (data->source_list, group, -1);
|
||||
|
||||
weather = group;
|
||||
}
|
||||
@ -129,7 +123,7 @@ e_calendar_weather_migrate (EPlugin *epl, ECalEventTargetComponent *data)
|
||||
if (weather)
|
||||
g_object_unref (weather);
|
||||
|
||||
e_source_list_sync (source_list, NULL);
|
||||
e_source_list_sync (data->source_list, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@ -62,7 +62,7 @@
|
||||
/* prototypes */
|
||||
gint e_plugin_lib_enable (EPluginLib *ep, gint enable);
|
||||
GtkWidget *plugin_google (EPlugin *epl, EConfigHookItemFactoryData *data);
|
||||
void e_calendar_google_migrate (EPlugin *epl, ECalEventTargetModule *data);
|
||||
void e_calendar_google_migrate (EPlugin *epl, ECalEventTargetBackend *data);
|
||||
|
||||
/*****************************************************************************/
|
||||
/* plugin intialization */
|
||||
@ -784,7 +784,7 @@ plugin_google (EPlugin *epl,
|
||||
}
|
||||
|
||||
void
|
||||
e_calendar_google_migrate (EPlugin *epl, ECalEventTargetModule *data)
|
||||
e_calendar_google_migrate (EPlugin *epl, ECalEventTargetBackend *data)
|
||||
{
|
||||
ESourceList *source_list;
|
||||
ESourceGroup *google = NULL;
|
||||
|
||||
Reference in New Issue
Block a user