aboutsummaryrefslogtreecommitdiffstats
path: root/my-evolution
diff options
context:
space:
mode:
Diffstat (limited to 'my-evolution')
-rw-r--r--my-evolution/ChangeLog47
-rw-r--r--my-evolution/Makefile.am22
-rw-r--r--my-evolution/apps_evolution_summary.schemas141
-rw-r--r--my-evolution/component-factory.c15
-rw-r--r--my-evolution/e-summary-calendar.c51
-rw-r--r--my-evolution/e-summary-preferences.c421
-rw-r--r--my-evolution/e-summary-tasks.c46
-rw-r--r--my-evolution/e-summary-weather.c7
-rw-r--r--my-evolution/e-summary.c14
-rw-r--r--my-evolution/e-summary.h6
10 files changed, 398 insertions, 372 deletions
diff --git a/my-evolution/ChangeLog b/my-evolution/ChangeLog
index 8df7cf1f68..8cd0595167 100644
--- a/my-evolution/ChangeLog
+++ b/my-evolution/ChangeLog
@@ -1,3 +1,50 @@
+2002-11-20 Ettore Perazzoli <ettore@ximian.com>
+
+ * e-summary.c (e_summary_init): Use GConf.
+
+ * e-summary-tasks.c: Replaced member config_listener in
+ ESummaryTasks with a gconf_client.
+ (setup_gconf_client): Renamed from setup_config_listener(). Set
+ up the GConf client and invoke gconf_client_add_dir() on the
+ interesting namespaces.
+ (gconf_client_value_changed_cb): Renamed from
+ config_listener_value_changed_cb and changed prototype to match
+ that of the "value_changed" signal in GConfClient.
+ (setup_task_folder): Updated to use GConf.
+
+ * e-summary-calendar.c: Replaced member config_listener with a
+ gconf_listener.
+ (setup_calendar): Use GConf.
+ (setup_gconf_client): Renamed from setup_config_listener. Set up
+ a GConf client and invoke gconf_client_add_dir() on the
+ interesting namespaces.
+ (gconf_client_value_changed_cb): Renamed from
+ config_listener_key_changed_cb() and changed prototype to match
+ that of the "value_changed" signal in GConfClient.
+ (locale_uses_24h_time_format): Removed.
+ (e_summary_calendar_free): g_object_unref() the gconf_client.
+
+ * Makefile.am: Add rules to install the schemas.
+
+ * apps_evolution_summary.schemas: New.
+
+ * e-summary-preferences.c: Did a global GList -> GSList switch.
+ (e_summary_preferences_restore): Use GConfClient instead of
+ EConfigListener.
+ (vector_from_folder_list): Removed since GConf makes this useless.
+ (folder_list_from_vector): Likewise.
+ (str_list_from_vector): Likewise.
+ (vector_from_str_list): Likewise.
+ (make_initial_weather_list): Likewise.
+ (make_initial_rdf_list): Likewise.
+ (make_initial_mail_list): Likewise.
+ (e_summary_preferences_save): Use GConf.
+ (e_summary_preferences_init): No need to set up defaults here.
+
+ * e-summary.h: Changed members display_folders, rdf_urls, stations
+ in ESummaryPrefs to be GSLists instead of GLists; updated all the
+ functions that use them accordingly.
+
2002-11-14 Ettore Perazzoli <ettore@ximian.com>
* Makefile.am: Added rule to generate
diff --git a/my-evolution/Makefile.am b/my-evolution/Makefile.am
index b05e0d3c8a..68b10e53c2 100644
--- a/my-evolution/Makefile.am
+++ b/my-evolution/Makefile.am
@@ -103,6 +103,9 @@ endif
Locationdir = $(datadir)/evolution
Location_DATA = Locations
+
+# .server files
+
server_in_files = GNOME_Evolution_Summary.server.in.in
serverdir = $(libdir)/bonobo/servers
@@ -110,10 +113,27 @@ server_DATA = $(server_in_files:.server.in.in=.server)
$(server_in_files:.server.in.in=.server.in): $(server_in_files)
sed -e "s|\@LIBEXECDIR\@|$(libexecdir)|" $< > $@
+@INTLTOOL_SERVER_RULE@
+
+
+# Glade
+
gladedir = $(datadir)/evolution/glade
glade_DATA = my-evolution.glade
-@INTLTOOL_SERVER_RULE@
+# GConf schemas
+
+schemadir = $(GCONF_SCHEMA_FILE_DIR)
+schema_DATA = apps_evolution_summary.schemas
+
+install-data-local:
+ if test -z "$(DESTDIR)" ; then \
+ for p in $(schema_DATA) ; do \
+ GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(srcdir)/$$p; \
+ done \
+ fi
+
+# Extra
EXTRA_DIST = \
$(summary_sources) \
diff --git a/my-evolution/apps_evolution_summary.schemas b/my-evolution/apps_evolution_summary.schemas
new file mode 100644
index 0000000000..840ff00b37
--- /dev/null
+++ b/my-evolution/apps_evolution_summary.schemas
@@ -0,0 +1,141 @@
+<gconfschemafile>
+ <schemalist>
+
+ <!-- Mail section -->
+
+ <schema>
+ <key>/schemas/apps/evolution/summary/mail/folder_evolution_uris</key>
+ <applyto>/apps/evolution/summary/mail/folder_evolution_uris</applyto>
+ <owner>evolution</owner>
+ <type>list</type>
+ <list_type>string</list_type>
+ <default>[]</default>
+ <locale name="C">
+ <short>evolution: URIs of the folders to display in the summary</short>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/apps/evolution/summary/mail/folder_physical_uris</key>
+ <applyto>/apps/evolution/summary/mail/folder_physical_uris</applyto>
+ <owner>evolution</owner>
+ <type>list</type>
+ <list_type>string</list_type>
+ <default>[]</default>
+ <locale name="C">
+ <short>Physical URIs of the folders to display in the summary</short>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/apps/evolution/summary/mail/show_full_paths</key>
+ <applyto>/apps/evolution/summary/mail/show_full_paths</applyto>
+ <owner>evolution</owner>
+ <type>bool</type>
+ <default>false</default>
+ <locale name="C">
+ <short>Whether to show the full paths to the mail folders displayed in the summary</short>
+ </locale>
+ </schema>
+
+ <!-- Calendar section -->
+
+ <schema>
+ <key>/schemas/apps/evolution/summary/calendar/days_shown</key>
+ <applyto>/apps/evolution/summary/calendar/days_shown</applyto>
+ <owner>evolution</owner>
+ <type>int</type>
+ <default>0</default>
+ <locale name="C">
+ <short>Number of days shown in the calendar section</short>
+ <long>Use '0' to display one day, '1' to display five days, '2' to display a full week, '3' to display a full month.</long>
+ </locale>
+ </schema>
+
+ <!-- Tasks section -->
+
+ <schema>
+ <key>/schemas/apps/evolution/summary/tasks/show_all</key>
+ <applyto>/apps/evolution/summary/tasks/show_all</applyto>
+ <owner>evolution</owner>
+ <type>bool</type>
+ <default>true</default>
+ <locale name="C">
+ <short>Whether to display all pending tasks instead of only today's tasks</short>
+ </locale>
+ </schema>
+
+ <!-- RDF section -->
+
+ <schema>
+ <key>/schemas/apps/evolution/summary/rdf/uris</key>
+ <applyto>/apps/evolution/summary/rdf/uris</applyto>
+ <owner>evolution</owner>
+ <type>list</type>
+ <list_type>string</list_type>
+ <default>[http://linuxtoday.com/backend/my-netscape.rdf,http://www.salon.com/feed/RDF/salon_use.rdf]</default>
+ <locale name="C">
+ <short>URIs of the RDF feeds to display in the summary</short>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/apps/evolution/summary/rdf/refresh_time</key>
+ <applyto>/apps/evolution/summary/rdf/refresh_time</applyto>
+ <owner>evolution</owner>
+ <type>int</type>
+ <default>600</default>
+ <locale name="C">
+ <short>Number of seconds between updates of the RDF feeds in the summary</short>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/apps/evolution/summary/rdf/max_items</key>
+ <applyto>/apps/evolution/summary/rdf/max_items</applyto>
+ <owner>evolution</owner>
+ <type>int</type>
+ <default>10</default>
+ <locale name="C">
+ <short>Maximum number of recent items to display for each RDF feed</short>
+ </locale>
+ </schema>
+
+ <!-- Weather section -->
+
+ <schema>
+ <key>/schemas/apps/evolution/summary/weather/stations</key>
+ <applyto>/apps/evolution/summary/weather/stations</applyto>
+ <owner>evolution</owner>
+ <type>list</type>
+ <list_type>string</list_type>
+ <default>[KBOS]</default>
+ <locale name="C">
+ <short>List of weather stations to display in the summary</short>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/apps/evolution/summary/weather/use_metric</key>
+ <applyto>/apps/evolution/summary/weather/use_metric</applyto>
+ <owner>evolution</owner>
+ <type>bool</type>
+ <default>false</default>
+ <locale name="C">
+ <short>Whether to use metric (instead of imperial) units in the summary</short>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/apps/evolution/summary/weather/refresh_time</key>
+ <applyto>/apps/evolution/summary/weather/refresh_time</applyto>
+ <owner>evolution</owner>
+ <type>int</type>
+ <default>600</default>
+ <locale name="C">
+ <short>Number of seconds between updates of the weather section of the summary</short>
+ </locale>
+ </schema>
+
+ </schemalist>
+</gconfschemafile>
diff --git a/my-evolution/component-factory.c b/my-evolution/component-factory.c
index d266bf2706..481d817403 100644
--- a/my-evolution/component-factory.c
+++ b/my-evolution/component-factory.c
@@ -127,9 +127,7 @@ component_destroy (BonoboObject *factory,
}
static BonoboObject *
-create_component (BonoboGenericFactory *factory,
- const char *id,
- void *data)
+create_component (void)
{
EvolutionShellComponent *shell_component;
ESummaryOfflineHandler *offline_handler;
@@ -164,12 +162,15 @@ void
component_factory_init (void)
{
BonoboGenericFactory *factory;
+ Bonobo_RegistrationResult result;
+ BonoboObject *shell_component;
- factory = bonobo_generic_factory_new (COMPONENT_FACTORY_ID,
- create_component,
- NULL);
+ shell_component = create_component ();
- if (factory == NULL)
+ result = bonobo_activation_active_server_register (COMPONENT_ID,
+ bonobo_object_corba_objref (BONOBO_OBJECT (shell_component)));
+
+ if (result != Bonobo_ACTIVATION_REG_SUCCESS)
g_error ("Cannot register Evolution Summary component factory.");
}
diff --git a/my-evolution/e-summary-calendar.c b/my-evolution/e-summary-calendar.c
index 0bb57276e8..71b62829be 100644
--- a/my-evolution/e-summary-calendar.c
+++ b/my-evolution/e-summary-calendar.c
@@ -1,8 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
/* e-summary-calendar.c
*
- * Copyright (C) 2001 Ximian, Inc.
- * Copyright (C) 2002 Ximian, Inc.
+ * Copyright (C) 2001, 2002 Ximian, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of version 2 of the GNU General Public
@@ -31,14 +30,14 @@
#include "e-summary-calendar.h"
#include "e-summary.h"
-#include "e-util/e-config-listener.h"
-
#include <cal-client/cal-client.h>
#include <cal-util/timeutil.h>
#include <bonobo/bonobo-exception.h>
#include <bonobo/bonobo-moniker-util.h>
+#include <gconf/gconf-client.h>
+
#include <ical.h>
#define MAX_RELOAD_TRIES 10
@@ -51,7 +50,7 @@ struct _ESummaryCalendar {
char *default_uri;
- EConfigListener *config_listener;
+ GConfClient *gconf_client;
int cal_open_reload_timeout_id;
int reload_count;
@@ -526,16 +525,6 @@ e_summary_calendar_protocol (ESummary *summary,
bonobo_object_release_unref (factory, NULL);
}
-static gboolean
-locale_uses_24h_time_format (void)
-{
- char s[16];
- time_t t = 0;
-
- strftime (s, sizeof s, "%p", gmtime (&t));
- return s[0] == '\0';
-}
-
static void
setup_calendar (ESummary *summary)
{
@@ -562,34 +551,38 @@ setup_calendar (ESummary *summary)
if (! cal_client_open_default_calendar (calendar->client, FALSE))
g_message ("Open calendar failed");
- calendar->wants24hr = e_config_listener_get_boolean_with_default (calendar->config_listener,
- "/Calendar/Display/Use24HourFormat",
- locale_uses_24h_time_format (), NULL);
- calendar->default_uri = e_config_listener_get_string_with_default (calendar->config_listener,
- "/DefaultFolders/calendar_path",
- "evolution:/local/Calendar", NULL);
+ calendar->wants24hr = gconf_client_get_bool (calendar->gconf_client,
+ "/apps/evolution/calendar/display/use_24h_format", NULL);
+ calendar->default_uri = gconf_client_get_string (calendar->gconf_client,
+ "/apps/evolution/shell/default_folders/celendar_path",
+ NULL);
}
static void
-config_listener_key_changed_cb (EConfigListener *listener,
- const char *key,
- void *user_data)
+gconf_client_value_changed_cb (GConfClient *client,
+ const char *key,
+ GConfValue *value,
+ void *user_data)
{
setup_calendar (E_SUMMARY (user_data));
generate_html (user_data);
}
static void
-setup_config_listener (ESummary *summary)
+setup_gconf_client (ESummary *summary)
{
ESummaryCalendar *calendar;
calendar = summary->calendar;
g_assert (calendar != NULL);
- calendar->config_listener = e_config_listener_new ();
+ calendar->gconf_client = gconf_client_get_default ();
- g_signal_connect (calendar->config_listener, "key_changed", G_CALLBACK (config_listener_key_changed_cb), summary);
+ g_signal_connect (calendar->gconf_client, "value_changed",
+ G_CALLBACK (gconf_client_value_changed_cb), summary);
+
+ gconf_client_add_dir (calendar->gconf_client, "/apps/evolution/calendar", FALSE, NULL);
+ gconf_client_add_dir (calendar->gconf_client, "/apps/evolution/shell/default_folders", FALSE, NULL);
setup_calendar (summary);
}
@@ -605,7 +598,7 @@ e_summary_calendar_init (ESummary *summary)
summary->calendar = calendar;
calendar->html = NULL;
- setup_config_listener (summary);
+ setup_gconf_client (summary);
setup_calendar (summary);
e_summary_add_protocol_listener (summary, "calendar", e_summary_calendar_protocol, calendar);
@@ -635,6 +628,8 @@ e_summary_calendar_free (ESummary *summary)
g_free (calendar->html);
g_free (calendar->default_uri);
+ g_object_unref (calendar->gconf_client);
+
g_free (calendar);
summary->calendar = NULL;
}
diff --git a/my-evolution/e-summary-preferences.c b/my-evolution/e-summary-preferences.c
index 11d49e7874..0d5db9235d 100644
--- a/my-evolution/e-summary-preferences.c
+++ b/my-evolution/e-summary-preferences.c
@@ -1,7 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
/* e-summary-preferences.c
*
- * Copyright (C) 2001 Ximian, Inc.
+ * Copyright (C) 2001, 2002 Ximian, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of version 2 of the GNU General Public
@@ -42,12 +42,12 @@
#include <bonobo/bonobo-control.h>
#include <bonobo/bonobo-widget.h>
+#include <gconf/gconf-client.h>
+
#include <shell/evolution-storage-set-view-listener.h>
#include <string.h>
-#include "e-util/e-config-listener.h"
-
#include "e-summary.h"
#include "e-summary-preferences.h"
#include "e-summary-table.h"
@@ -60,280 +60,121 @@
static ESummaryPrefs *global_preferences = NULL;
static GNOME_Evolution_Shell global_shell = NULL;
-static char *default_folders[2] = {
- "/local/Inbox", "/local/Outbox"
-};
-
-static void
-make_initial_mail_list (ESummaryPrefs *prefs)
-{
- char *evolution_dir;
- GList *folders = NULL;
- int i;
-
- evolution_dir = gnome_util_prepend_user_home ("evolution");
- for (i = 0; i < 2; i++) {
- ESummaryPrefsFolder *folder;
-
- folder = g_new (ESummaryPrefsFolder, 1);
- folder->evolution_uri = g_strconcat ("evolution:", default_folders[i], NULL);
- folder->physical_uri = g_strconcat ("file://", evolution_dir, default_folders[i], NULL);
-
- folders = g_list_append (folders, folder);
- }
-
- g_free (evolution_dir);
- prefs->display_folders = folders;
-}
-
-static void
-make_initial_rdf_list (ESummaryPrefs *prefs)
-{
- GList *rdfs;
-
- rdfs = g_list_prepend (NULL, g_strdup ("http://linuxtoday.com/backend/my-netscape.rdf"));
- rdfs = g_list_append (rdfs, g_strdup ("http://www.salon.com/feed/RDF/salon_use.rdf"));
-
- prefs->rdf_urls = rdfs;
-}
-
-static void
-make_initial_weather_list (ESummaryPrefs *prefs)
-{
- /* translators: Put a list of codes for locations you want to see in
- My Evolution by default here. You can find the list of all
- stations and their codes in Evolution sources.
- (evolution/my-evolution/Locations)
- Codes are seperated with : eg. "KBOS:EGAA"*/
- char *default_stations = _("KBOS"), **stations_v, **p;
- GList *stations = NULL;
-
- stations_v = g_strsplit (default_stations, ":", 0);
- g_assert (stations_v != NULL);
- for (p = stations_v; *p != NULL; p++) {
- stations = g_list_prepend (stations, *p);
- }
- g_free (stations_v);
-
- prefs->stations = g_list_reverse (stations);
-}
-
-/* Load the prefs off disk */
-
-static char *
-vector_from_str_list (GList *strlist)
-{
- char *vector;
- GString *str;
-
- if (strlist == NULL) {
- return g_strdup ("");
- }
-
- str = g_string_new ("");
- for (; strlist; strlist = strlist->next) {
- g_string_append (str, strlist->data);
-
- /* No space at end */
- if (strlist->next) {
- g_string_append (str, " !<-->! ");
- }
- }
-
- vector = str->str;
- g_string_free (str, FALSE);
-
- return vector;
-}
-
-static GList *
-str_list_from_vector (const char *vector)
+gboolean
+e_summary_preferences_restore (ESummaryPrefs *prefs)
{
- GList *strlist = NULL;
- char **tokens, **t;
-
- t = tokens = g_strsplit (vector, " !<-->! ", 8196);
-
- if (tokens == NULL) {
- return NULL;
- }
-
- for (; *tokens; tokens++) {
- strlist = g_list_prepend (strlist, g_strdup (*tokens));
- }
+ GConfClient *gconf_client;
+ GSList *path_list;
+ GSList *uri_list;
+ GSList *p, *q;
- g_strfreev (t);
-
- strlist = g_list_reverse (strlist);
- return strlist;
-}
+ g_return_val_if_fail (prefs != NULL, FALSE);
-static GList *
-folder_list_from_vector (const char *vector)
-{
- GList *flist = NULL;
- char **tokens, **t;
+ gconf_client = gconf_client_get_default ();
- t = tokens = g_strsplit (vector, " !<-->! ", 8196);
- if (tokens == NULL) {
- return NULL;
- }
+ path_list = gconf_client_get_list (gconf_client, "/apps/evolution/summary/mail/folder_evolution_uris",
+ GCONF_VALUE_STRING, NULL);
+ uri_list = gconf_client_get_list (gconf_client, "/apps/evolution/summary/mail/folder_physical_uris",
+ GCONF_VALUE_STRING, NULL);
- for (tokens = t; *tokens; tokens += 2) {
+ prefs->display_folders = NULL;
+ for (p = path_list, q = uri_list; p != NULL && q != NULL; p = p->next, q = q->next) {
ESummaryPrefsFolder *folder;
- const char *evolution_uri;
- const char *physical_uri;
-
- evolution_uri = *tokens;
- if (evolution_uri == NULL || strncmp (evolution_uri, "evolution:", 10) != 0)
- break;
-
- physical_uri = *(tokens + 1);
- if (physical_uri == NULL)
- break;
folder = g_new (ESummaryPrefsFolder, 1);
- folder->evolution_uri = g_strdup (evolution_uri);
- folder->physical_uri = g_strdup (physical_uri);
-
- flist = g_list_prepend (flist, folder);
+ folder->evolution_uri = p->data;
+ folder->physical_uri = q->data;
}
- g_strfreev (t);
+ g_slist_free (path_list);
+ g_slist_free (uri_list);
- flist = g_list_reverse (flist);
- return flist;
-}
+ prefs->show_full_path = gconf_client_get_bool (gconf_client, "/apps/evolution/summary/mail/show_full_paths", NULL);
-static char *
-vector_from_folder_list (GList *flist)
-{
- char *vector;
- GString *string;
+ prefs->rdf_urls = gconf_client_get_list (gconf_client, "/apps/evolution/summary/rdf/uris",
+ GCONF_VALUE_STRING, NULL);
- if (flist == NULL) {
- return g_strdup ("");
- }
+ prefs->rdf_refresh_time = gconf_client_get_int (gconf_client, "/apps/evolution/summary/rdf/refresh_time", NULL);
- string = g_string_new ("");
- for (; flist; flist = flist->next) {
- ESummaryPrefsFolder *folder;
+ prefs->limit = gconf_client_get_int (gconf_client, "/apps/evolution/summary/rdf/max_items", NULL);
- folder = flist->data;
- string = g_string_append (string, folder->evolution_uri);
- string = g_string_append (string, " !<-->! ");
- string = g_string_append (string, folder->physical_uri);
+ prefs->stations = gconf_client_get_list (gconf_client, "/apps/evolution/summary/weather/stations",
+ GCONF_VALUE_STRING, NULL);
- if (flist->next != NULL) {
- string = g_string_append (string, " !<-->! ");
- }
- }
+ if (gconf_client_get_bool (gconf_client, "/apps/evolution/summary/weather/use_metric", NULL))
+ prefs->units = UNITS_METRIC;
+ else
+ prefs->units = UNITS_IMPERIAL;
- vector = string->str;
- g_string_free (string, FALSE);
+ prefs->weather_refresh_time = gconf_client_get_int (gconf_client, "/apps/evolution/summary/weather/refresh_time",
+ NULL);
+
+ prefs->days = gconf_client_get_int (gconf_client, "/apps/evolution/summary/calendar/days_shown", NULL);
+ if (gconf_client_get_bool (gconf_client, "/apps/evolution/summary/tasks/show_all", NULL))
+ prefs->show_tasks = E_SUMMARY_CALENDAR_ALL_TASKS;
+ else
+ prefs->show_tasks = E_SUMMARY_CALENDAR_ONE_DAY;
- return vector;
+ g_object_unref (gconf_client);
+ return TRUE;
}
-gboolean
-e_summary_preferences_restore (ESummaryPrefs *prefs)
+void
+e_summary_preferences_save (ESummaryPrefs *prefs)
{
- EConfigListener *config_listener;
- char *vector;
- gboolean used_default;
+ GConfClient *gconf_client;
+ GSList *evolution_uri_list, *physical_uri_list;
+ GSList *p;
- g_return_val_if_fail (prefs != NULL, FALSE);
+ gconf_client = gconf_client_get_default ();
- config_listener = e_config_listener_new ();
+ evolution_uri_list = NULL;
+ physical_uri_list = NULL;
+ for (p = prefs->display_folders; p != NULL; p = p->next) {
+ const ESummaryPrefsFolder *folder;
- vector = e_config_listener_get_string (config_listener, "My-Evolution/Mail/display_folders-1.2");
- if (vector == NULL) {
- g_warning ("Error getting Mail/display_folders. Using defaults");
- make_initial_mail_list (prefs);
- } else {
- prefs->display_folders = folder_list_from_vector (vector);
- g_free (vector);
+ folder = (const ESummaryPrefsFolder *) p->data;
+ evolution_uri_list = g_slist_prepend (evolution_uri_list, folder->evolution_uri);
+ physical_uri_list = g_slist_prepend (evolution_uri_list, folder->physical_uri);
}
+ evolution_uri_list = g_slist_reverse (evolution_uri_list);
+ physical_uri_list = g_slist_reverse (physical_uri_list);
- prefs->show_full_path = e_config_listener_get_boolean (config_listener, "My-Evolution/Mail/show_full_path");
+ gconf_client_set_list (gconf_client, "/apps/evolution/summary/mail/folder_evolution_uris",
+ GCONF_VALUE_STRING, evolution_uri_list, NULL);
+ gconf_client_set_list (gconf_client, "/apps/evolution/summary/mail/folder_physical_uris",
+ GCONF_VALUE_STRING, physical_uri_list, NULL);
- vector = e_config_listener_get_string (config_listener, "My-Evolution/RDF/rdf_urls");
- if (vector == NULL)
- return FALSE;
-
- prefs->rdf_urls = str_list_from_vector (vector);
- g_free (vector);
+ g_slist_free (evolution_uri_list);
+ g_slist_free (physical_uri_list);
- prefs->rdf_refresh_time = e_config_listener_get_long_with_default (config_listener, "My-Evolution/RDF/rdf_refresh_time", 600, NULL);
+ gconf_client_set_bool (gconf_client, "/apps/evolution/summary/mail/show_full_paths", prefs->show_full_path, NULL);
- prefs->limit = e_config_listener_get_long_with_default (config_listener, "My-Evolution/RDF/limit", 10, NULL);
+ gconf_client_set_list (gconf_client, "/apps/evolution/summary/rdf/uris",
+ GCONF_VALUE_STRING, prefs->rdf_urls, NULL);
- vector = e_config_listener_get_string (config_listener, "My-Evolution/Weather/stations");
- if (vector == NULL)
- return FALSE;
+ gconf_client_set_int (gconf_client, "/apps/evolution/summary/rdf/refresh_time", prefs->rdf_refresh_time, NULL);
+ gconf_client_set_int (gconf_client, "/apps/evolution/summary/rdf/max_items", prefs->limit, NULL);
- prefs->stations = str_list_from_vector (vector);
- g_free (vector);
+ gconf_client_set_list (gconf_client, "/apps/evolution/summary/weather/stations",
+ GCONF_VALUE_STRING, prefs->stations, NULL);
- prefs->units = e_config_listener_get_long_with_default (config_listener, "My-Evolution/Weather/units", -1, &used_default);
- if (used_default)
- return FALSE;
+ gconf_client_set_bool (gconf_client, "/apps/evolution/summary/weather/use_metric",
+ prefs->units == UNITS_METRIC, NULL);
+ gconf_client_set_int (gconf_client, "/apps/evolution/summary/weather/refresh_time",
+ prefs->weather_refresh_time, NULL);
- prefs->weather_refresh_time = e_config_listener_get_long_with_default (config_listener,
- "My-Evolution/Weather/weather_refresh_time",
- -1, &used_default);
- if (used_default)
- return FALSE;
-
- prefs->days = e_config_listener_get_long_with_default (config_listener, "My-Evolution/Schedule/days", -1, &used_default);
- if (used_default)
- return FALSE;
+ gconf_client_set_int (gconf_client, "/apps/evolution/summary/calendar/days_shown",
+ prefs->days, NULL);
- prefs->show_tasks = e_config_listener_get_long_with_default (config_listener, "My-Evolution/Schedule/show_tasks", -1, &used_default);
- if (&used_default)
- return FALSE;
+ gconf_client_set_bool (gconf_client, "/apps/evolution/summary/tasks/show_all",
+ prefs->show_tasks == E_SUMMARY_CALENDAR_ALL_TASKS, NULL);
- g_object_unref (config_listener);
- return TRUE;
-}
-
-/* Write prefs to disk */
-void
-e_summary_preferences_save (ESummaryPrefs *prefs)
-{
- EConfigListener *config_listener;
- char *vector;
-
- config_listener = e_config_listener_new ();
-
- vector = vector_from_folder_list (prefs->display_folders);
- e_config_listener_set_string (config_listener, "My-Evolution/Mail/display_folders-1.2", vector);
- g_free (vector);
-
- e_config_listener_set_boolean (config_listener, "My-Evolution/Mail/show_full_path", prefs->show_full_path);
-
- vector = vector_from_str_list (prefs->rdf_urls);
- e_config_listener_set_string (config_listener, "My-Evolution/RDF/rdf_urls", vector);
- g_free (vector);
-
- e_config_listener_set_long (config_listener, "My-Evolution/RDF/rdf_refresh_time", prefs->rdf_refresh_time);
- e_config_listener_set_long (config_listener, "My-Evolution/RDF/limit", prefs->limit);
-
- vector = vector_from_str_list (prefs->stations);
- e_config_listener_set_string (config_listener, "My-Evolution/Weather/stations", vector);
- g_free (vector);
-
- e_config_listener_set_long (config_listener, "My-Evolution/Weather/units", prefs->units);
- e_config_listener_set_long (config_listener, "My-Evolution/Weather/weather_refresh_time", prefs->weather_refresh_time);
-
- e_config_listener_set_long (config_listener, "My-Evolution/Schedule/days", prefs->days);
- e_config_listener_set_long (config_listener, "My-Evolution/Schedule/show_tasks", prefs->show_tasks);
-
- g_object_unref (config_listener);
+ g_object_unref (gconf_client);
}
static void
-free_str_list (GList *list)
+free_str_list (GSList *list)
{
for (; list; list = list->next) {
g_free (list->data);
@@ -341,7 +182,7 @@ free_str_list (GList *list)
}
static void
-free_folder_list (GList *list)
+free_folder_list (GSList *list)
{
for (; list; list = list->next) {
ESummaryPrefsFolder *f = list->data;
@@ -357,39 +198,39 @@ e_summary_preferences_free (ESummaryPrefs *prefs)
{
if (prefs->display_folders) {
free_folder_list (prefs->display_folders);
- g_list_free (prefs->display_folders);
+ g_slist_free (prefs->display_folders);
}
if (prefs->rdf_urls) {
free_str_list (prefs->rdf_urls);
- g_list_free (prefs->rdf_urls);
+ g_slist_free (prefs->rdf_urls);
}
if (prefs->stations) {
free_str_list (prefs->stations);
- g_list_free (prefs->stations);
+ g_slist_free (prefs->stations);
}
g_free (prefs);
}
-static GList *
-copy_str_list (GList *list)
+static GSList *
+copy_str_list (GSList *list)
{
- GList *list_copy = NULL;
+ GSList *list_copy = NULL;
for (; list; list = list->next) {
- list_copy = g_list_prepend (list_copy, g_strdup (list->data));
+ list_copy = g_slist_prepend (list_copy, g_strdup (list->data));
}
- list_copy = g_list_reverse (list_copy);
+ list_copy = g_slist_reverse (list_copy);
return list_copy;
}
-static GList *
-copy_folder_list (GList *list)
+static GSList *
+copy_folder_list (GSList *list)
{
- GList *list_copy = NULL;
+ GSList *list_copy = NULL;
for (; list; list = list->next) {
ESummaryPrefsFolder *f1, *f2;
@@ -399,10 +240,10 @@ copy_folder_list (GList *list)
f2->evolution_uri = g_strdup (f1->evolution_uri);
f2->physical_uri = g_strdup (f1->physical_uri);
- list_copy = g_list_prepend (list_copy, f2);
+ list_copy = g_slist_prepend (list_copy, f2);
}
- list_copy = g_list_reverse (list_copy);
+ list_copy = g_slist_reverse (list_copy);
return list_copy;
}
@@ -442,27 +283,7 @@ e_summary_preferences_init (void)
prefs = g_new0 (ESummaryPrefs, 1);
global_preferences = prefs;
- if (e_summary_preferences_restore (prefs) == TRUE) {
- return prefs;
- }
-
- /* Defaults */
-
- /* Mail */
- make_initial_mail_list (prefs);
-
- /* RDF */
- make_initial_rdf_list (prefs);
- prefs->rdf_refresh_time = 600;
- prefs->limit = 10;
-
- /* Weather */
- make_initial_weather_list (prefs);
- prefs->units = UNITS_METRIC;
- prefs->weather_refresh_time = 600;
-
- prefs->days = E_SUMMARY_CALENDAR_ONE_DAY;
- prefs->show_tasks = E_SUMMARY_CALENDAR_ALL_TASKS;
+ e_summary_preferences_restore (prefs);
return prefs;
}
@@ -480,7 +301,7 @@ struct _MailPage {
GtkWidget *add, *remove;
GHashTable *model;
- GList *tmp_list;
+ GSList *tmp_list;
};
struct _RDFPage {
@@ -489,7 +310,7 @@ struct _RDFPage {
GtkWidget *new_button, *delete_url;
GHashTable *default_hash, *model;
- GList *known, *tmp_list;
+ GSList *known, *tmp_list;
};
struct _WeatherPage {
@@ -498,7 +319,7 @@ struct _WeatherPage {
GtkWidget *add, *remove;
GHashTable *model;
- GList *tmp_list;
+ GSList *tmp_list;
};
struct _CalendarPage {
@@ -559,7 +380,7 @@ static struct _RDFInfo rdfs[] = {
};
static void
-save_known_rdfs (GList *rdfs)
+save_known_rdfs (GSList *rdfs)
{
FILE *handle;
char *rdf_file;
@@ -595,7 +416,7 @@ static gboolean
rdf_is_shown (PropertyData *pd,
const char *url)
{
- GList *p;
+ GSList *p;
for (p = global_preferences->rdf_urls; p; p = p->next) {
if (strcmp (p->data, url) == 0) {
@@ -642,7 +463,7 @@ fill_rdf_etable (GtkWidget *widget,
e_summary_shown_add_node (ess, FALSE, entry, NULL, TRUE, NULL);
}
- pd->rdf->known = g_list_append (pd->rdf->known, &rdfs[i]);
+ pd->rdf->known = g_slist_append (pd->rdf->known, &rdfs[i]);
g_hash_table_insert (pd->rdf->default_hash, rdfs[i].url, &rdfs[i]);
}
@@ -688,7 +509,7 @@ fill_rdf_etable (GtkWidget *widget,
info->name = g_strdup (tokens[1]);
info->custom = TRUE;
- pd->rdf->known = g_list_append (pd->rdf->known, info);
+ pd->rdf->known = g_slist_append (pd->rdf->known, info);
entry = g_new (ESummaryShownModelEntry, 1);
entry->location = g_strdup (info->url);
@@ -752,7 +573,7 @@ add_dialog_clicked_cb (GtkWidget *widget,
info->name = g_strdup (name);
info->custom = TRUE;
- pd->rdf->known = g_list_append (pd->rdf->known, info);
+ pd->rdf->known = g_slist_append (pd->rdf->known, info);
entry = g_new (ESummaryShownModelEntry, 1);
entry->location = g_strdup (info->url);
@@ -833,7 +654,7 @@ rdf_delete_url_cb (GtkButton *button,
}
e_summary_shown_remove_node (E_SUMMARY_SHOWN (pd->rdf->etable), TRUE, entry);
- pd->rdf->known = g_list_remove (pd->rdf->known, entry->data);
+ pd->rdf->known = g_slist_remove (pd->rdf->known, entry->data);
/* FIXME: Remove from shown side as well */
}
@@ -1151,20 +972,20 @@ static void
free_property_dialog (PropertyData *pd)
{
if (pd->rdf) {
- g_list_free (pd->rdf->known);
+ g_slist_free (pd->rdf->known);
free_str_list (pd->rdf->tmp_list);
- g_list_free (pd->rdf->tmp_list);
+ g_slist_free (pd->rdf->tmp_list);
g_free (pd->rdf);
}
if (pd->mail) {
free_str_list (pd->mail->tmp_list);
- g_list_free (pd->mail->tmp_list);
+ g_slist_free (pd->mail->tmp_list);
g_free (pd->mail);
}
if (pd->weather) {
free_str_list (pd->weather->tmp_list);
- g_list_free (pd->weather->tmp_list);
+ g_slist_free (pd->weather->tmp_list);
g_free (pd->weather);
}
if (pd->calendar) {
@@ -1188,7 +1009,7 @@ set_selected_folders (GNOME_Evolution_StorageSetView view)
{
GNOME_Evolution_FolderList *list;
CORBA_Environment ev;
- GList *l;
+ GSList *l;
int i, count;
for (count = 0, l = global_preferences->display_folders; l;
@@ -1293,21 +1114,21 @@ add_shown_to_list (gpointer key,
gpointer data)
{
ESummaryShownModelEntry *item;
- GList **list;
+ GSList **list;
item = (ESummaryShownModelEntry *) value;
- list = (GList **) data;
+ list = (GSList **) data;
- *list = g_list_prepend (*list, g_strdup (item->location));
+ *list = g_slist_prepend (*list, g_strdup (item->location));
}
-static GList *
+static GSList *
get_folders_from_view (GtkWidget *view)
{
GNOME_Evolution_StorageSetView set_view;
GNOME_Evolution_FolderList *list;
CORBA_Environment ev;
- GList *out_list = NULL;
+ GSList *out_list = NULL;
int i;
set_view = g_object_get_data (G_OBJECT (view), "corba_view");
@@ -1330,7 +1151,7 @@ get_folders_from_view (GtkWidget *view)
f = g_new (ESummaryPrefsFolder, 1);
f->evolution_uri = g_strdup (folder.evolutionUri);
f->physical_uri = g_strdup (folder.physicalUri);
- out_list = g_list_append (out_list, f);
+ out_list = g_slist_append (out_list, f);
}
return out_list;
@@ -1346,7 +1167,7 @@ config_control_apply_cb (EvolutionConfigControl *control,
if (pd->rdf->tmp_list) {
free_str_list (pd->rdf->tmp_list);
- g_list_free (pd->rdf->tmp_list);
+ g_slist_free (pd->rdf->tmp_list);
pd->rdf->tmp_list = NULL;
}
/* Take each news feed which is on and add it
@@ -1356,7 +1177,7 @@ config_control_apply_cb (EvolutionConfigControl *control,
if (global_preferences->rdf_urls) {
free_str_list (global_preferences->rdf_urls);
- g_list_free (global_preferences->rdf_urls);
+ g_slist_free (global_preferences->rdf_urls);
}
global_preferences->rdf_urls = copy_str_list (pd->rdf->tmp_list);
@@ -1364,7 +1185,7 @@ config_control_apply_cb (EvolutionConfigControl *control,
/* Weather */
if (pd->weather->tmp_list) {
free_str_list (pd->weather->tmp_list);
- g_list_free (pd->weather->tmp_list);
+ g_slist_free (pd->weather->tmp_list);
pd->weather->tmp_list = NULL;
}
@@ -1372,14 +1193,14 @@ config_control_apply_cb (EvolutionConfigControl *control,
add_shown_to_list, &pd->weather->tmp_list);
if (global_preferences->stations) {
free_str_list (global_preferences->stations);
- g_list_free (global_preferences->stations);
+ g_slist_free (global_preferences->stations);
}
global_preferences->stations = copy_str_list (pd->weather->tmp_list);
/* Folders */
if (pd->mail->tmp_list) {
free_str_list (pd->mail->tmp_list);
- g_list_free (pd->mail->tmp_list);
+ g_slist_free (pd->mail->tmp_list);
pd->mail->tmp_list = NULL;
}
#if 0
@@ -1389,7 +1210,7 @@ config_control_apply_cb (EvolutionConfigControl *control,
if (global_preferences->display_folders) {
free_str_list (global_preferences->display_folders);
- g_list_free (global_preferences->display_folders);
+ g_slist_free (global_preferences->display_folders);
}
global_preferences->display_folders = copy_str_list (pd->mail->tmp_list);
diff --git a/my-evolution/e-summary-tasks.c b/my-evolution/e-summary-tasks.c
index 7763f248ad..3f0ba8ab73 100644
--- a/my-evolution/e-summary-tasks.c
+++ b/my-evolution/e-summary-tasks.c
@@ -31,8 +31,6 @@
#include "e-summary-tasks.h"
#include "e-summary.h"
-#include "e-util/e-config-listener.h"
-
#include <cal-client/cal-client.h>
#include <cal-util/timeutil.h>
@@ -42,6 +40,9 @@
#include <bonobo/bonobo-moniker-util.h>
#include <bonobo/bonobo-object.h>
+#include <gconf/gconf-client.h>
+
+
#define MAX_RELOAD_TRIES 10
struct _ESummaryTasks {
@@ -53,7 +54,7 @@ struct _ESummaryTasks {
char *default_uri;
- EConfigListener *config_listener;
+ GConfClient *gconf_client;
int cal_open_reload_timeout_id;
int reload_count;
@@ -478,7 +479,7 @@ setup_task_folder (ESummary *summary)
tasks = summary->tasks;
g_assert (tasks != NULL);
- g_assert (tasks->config_listener != NULL);
+ g_assert (tasks->gconf_client != NULL);
if (tasks->cal_open_reload_timeout_id != 0) {
g_source_remove (tasks->cal_open_reload_timeout_id);
@@ -490,15 +491,13 @@ setup_task_folder (ESummary *summary)
g_free (tasks->overdue_colour);
g_free (tasks->default_uri);
- tasks->due_today_colour = e_config_listener_get_string_with_default (tasks->config_listener,
- "/Calendar/Tasks/Colors/TasksDueToday", "blue", NULL);
- tasks->overdue_colour = e_config_listener_get_string_with_default (tasks->config_listener,
- "/Calendar/Tasks/Colors/TasksOverdue", "red", NULL);
+ tasks->due_today_colour = gconf_client_get_string (tasks->gconf_client,
+ "/apps/evolution/calendar/tasks/colors/TasksDueToday", NULL);
+ tasks->overdue_colour = gconf_client_get_string (tasks->gconf_client,
+ "/apps/evolution/calendar/tasks/colors/TasksOverdue", NULL);
- tasks->default_uri = e_config_listener_get_string_with_default (tasks->config_listener,
- "/DefaultFolders/tasks_path",
- NULL,
- NULL);
+ tasks->default_uri = gconf_client_get_string (tasks->gconf_client,
+ "/apps/evolution/shell/default_folders/tasks_path", NULL);
if (tasks->client != NULL)
g_object_unref (tasks->client);
@@ -518,26 +517,30 @@ setup_task_folder (ESummary *summary)
}
static void
-config_listener_key_changed_cb (EConfigListener *config_listener,
- const char *key,
- void *user_data)
+gconf_client_value_changed_cb (GConfClient *gconf_client,
+ const char *key,
+ GConfValue *value,
+ void *user_data)
{
setup_task_folder (E_SUMMARY (user_data));
-
generate_html (user_data);
}
static void
-setup_config_listener (ESummary *summary)
+setup_gconf_client (ESummary *summary)
{
ESummaryTasks *tasks;
tasks = summary->tasks;
g_assert (tasks != NULL);
- tasks->config_listener = e_config_listener_new ();
+ tasks->gconf_client = gconf_client_get_default ();
+
+ gconf_client_add_dir (tasks->gconf_client, "/apps/evolution/calendar/tasks/colors", FALSE, NULL);
+ gconf_client_add_dir (tasks->gconf_client, "/apps/evolution/shell/default_folders", FALSE, NULL);
- g_signal_connect (tasks->config_listener, "key_changed", G_CALLBACK (config_listener_key_changed_cb), summary);
+ g_signal_connect (tasks->gconf_client, "value_changed",
+ G_CALLBACK (gconf_client_value_changed_cb), summary);
}
void
@@ -548,11 +551,10 @@ e_summary_tasks_init (ESummary *summary)
g_return_if_fail (summary != NULL);
tasks = g_new0 (ESummaryTasks, 1);
- tasks->config_listener = e_config_listener_new ();
summary->tasks = tasks;
- setup_config_listener (summary);
+ setup_gconf_client (summary);
setup_task_folder (summary);
e_summary_add_protocol_listener (summary, "tasks", e_summary_tasks_protocol, tasks);
@@ -584,7 +586,7 @@ e_summary_tasks_free (ESummary *summary)
g_free (tasks->overdue_colour);
g_free (tasks->default_uri);
- g_object_unref (tasks->config_listener);
+ g_object_unref (tasks->gconf_client);
g_free (tasks);
summary->tasks = NULL;
diff --git a/my-evolution/e-summary-weather.c b/my-evolution/e-summary-weather.c
index 286a910220..4628d3edbc 100644
--- a/my-evolution/e-summary-weather.c
+++ b/my-evolution/e-summary-weather.c
@@ -599,7 +599,7 @@ e_summary_weather_init (ESummary *summary)
g_strfreev (stations_v);
timeout = 600;
} else {
- GList *p;
+ GSList *p;
for (p = prefs->stations; p; p = p->next) {
e_summary_weather_add_location (summary, p->data);
@@ -637,7 +637,7 @@ e_summary_weather_code_to_name (const char *code)
static gboolean
is_weather_shown (const char *code)
{
- GList *p;
+ GSList *p;
ESummaryPrefs *global_preferences;
global_preferences = e_summary_preferences_get_global ();
@@ -759,8 +759,9 @@ void
e_summary_weather_reconfigure (ESummary *summary)
{
ESummaryWeather *weather;
- GList *old, *p;
+ GList *old;
GList *weather_list;
+ GSList *p;
g_return_if_fail (summary != NULL);
g_return_if_fail (IS_E_SUMMARY (summary));
diff --git a/my-evolution/e-summary.c b/my-evolution/e-summary.c
index 005c20b6ac..274b469cd6 100644
--- a/my-evolution/e-summary.c
+++ b/my-evolution/e-summary.c
@@ -65,11 +65,11 @@
#include <gtk/gtkmain.h>
#include <gtk/gtkscrolledwindow.h>
+#include <gconf/gconf-client.h>
+
#include <string.h>
#include <unistd.h>
-#include "e-util/e-config-listener.h"
-
#include "e-summary.h"
#include "e-summary-preferences.h"
#include "my-evolution-html.h"
@@ -489,7 +489,7 @@ alarm_fn (gpointer alarm_id,
static void
e_summary_init (ESummary *summary)
{
- EConfigListener *config_listener;
+ GConfClient *gconf_client;
ESummaryPrivate *priv;
GdkColor bgcolor = {0, 0xffff, 0xffff, 0xffff};
time_t t, day_end;
@@ -528,18 +528,16 @@ e_summary_init (ESummary *summary)
priv->protocol_hash = NULL;
priv->connections = NULL;
- config_listener = e_config_listener_new ();
+ gconf_client = gconf_client_get_default ();
- summary->timezone = e_config_listener_get_string_with_default (config_listener,
- "/Calendar/Display/Timezone", "UTC",
- NULL);
+ summary->timezone = gconf_client_get_string (gconf_client, "/apps/evolution/calendar/display/timezone", NULL);
if (!summary->timezone || !summary->timezone[0]) {
g_free (summary->timezone);
summary->timezone = g_strdup ("UTC");
}
summary->tz = icaltimezone_get_builtin_timezone (summary->timezone);
- g_object_unref (config_listener);
+ g_object_unref (gconf_client);
t = time (NULL);
if (summary->tz == NULL) {
diff --git a/my-evolution/e-summary.h b/my-evolution/e-summary.h
index 1eda58bd0e..f787ca4814 100644
--- a/my-evolution/e-summary.h
+++ b/my-evolution/e-summary.h
@@ -86,16 +86,16 @@ struct _ESummaryPrefsFolder {
struct _ESummaryPrefs {
/* Mail */
- GList *display_folders; /* List of ESummaryPrefsFolder */
+ GSList *display_folders; /* List of ESummaryPrefsFolder */
gboolean show_full_path;
/* RDF */
- GList *rdf_urls;
+ GSList *rdf_urls;
int rdf_refresh_time;
int limit;
/* Weather */
- GList *stations;
+ GSList *stations;
ESummaryWeatherUnits units;
int weather_refresh_time;