[evolution] Add a "settings" module.



commit 8a71509ee441e48215df9a9c3018214fe9a592ce
Author: Matthew Barnes <mbarnes redhat com>
Date:   Sun Jan 20 18:31:11 2013 -0500

    Add a "settings" module.
    
    Collect all the "config" extensions from the "addressbook", "calendar",
    and "mail" modules into one place.  These extensions typically just bind
    GObject properties of extensible classes to app-specific GSettings keys.

 configure.ac                                       |    1 +
 modules/Makefile.am                                |    1 +
 modules/addressbook/Makefile.am                    |    2 -
 .../e-book-config-name-selector-entry.h            |   66 -----------------
 modules/addressbook/evolution-module-addressbook.c |    2 -
 modules/calendar/Makefile.am                       |   14 ----
 modules/calendar/e-cal-config-calendar-item.h      |   66 -----------------
 modules/calendar/e-cal-config-comp-editor.h        |   65 ----------------
 modules/calendar/e-cal-config-date-edit.h          |   65 ----------------
 modules/calendar/e-cal-config-meeting-store.h      |   65 ----------------
 .../calendar/e-cal-config-meeting-time-selector.h  |   66 -----------------
 modules/calendar/e-cal-config-view.h               |   64 ----------------
 modules/calendar/evolution-module-calendar.c       |   16 ----
 modules/mail/Makefile.am                           |    9 --
 modules/mail/e-mail-config-format-html.h           |   66 -----------------
 modules/mail/e-mail-config-reader.h                |   65 ----------------
 modules/mail/e-mail-config-web-view-gtkhtml.h      |   65 ----------------
 modules/mail/e-mail-config-web-view.h              |   64 ----------------
 modules/mail/evolution-module-mail.c               |   10 ---
 modules/settings/Makefile.am                       |   56 ++++++++++++++
 .../e-settings-cal-model.c}                        |   35 +++++----
 modules/settings/e-settings-cal-model.h            |   65 ++++++++++++++++
 .../e-settings-calendar-item.c}                    |   34 ++++----
 modules/settings/e-settings-calendar-item.h        |   66 +++++++++++++++++
 .../e-settings-calendar-view.c}                    |   35 +++++----
 modules/settings/e-settings-calendar-view.h        |   66 +++++++++++++++++
 .../e-settings-comp-editor.c}                      |   34 ++++----
 modules/settings/e-settings-comp-editor.h          |   64 ++++++++++++++++
 .../e-settings-date-edit.c}                        |   34 ++++----
 modules/settings/e-settings-date-edit.h            |   65 ++++++++++++++++
 .../e-settings-mail-formatter.c}                   |   62 ++++++++--------
 modules/settings/e-settings-mail-formatter.h       |   66 +++++++++++++++++
 .../e-settings-mail-reader.c}                      |   38 +++++-----
 modules/settings/e-settings-mail-reader.h          |   65 ++++++++++++++++
 .../e-settings-meeting-store.c}                    |   34 ++++----
 modules/settings/e-settings-meeting-store.h        |   65 ++++++++++++++++
 .../e-settings-meeting-time-selector.c}            |   34 ++++----
 .../settings/e-settings-meeting-time-selector.h    |   66 +++++++++++++++++
 .../e-settings-name-selector-entry.c}              |   54 +++++++-------
 modules/settings/e-settings-name-selector-entry.h  |   66 +++++++++++++++++
 .../e-settings-web-view-gtkhtml.c}                 |   78 ++++++++++----------
 modules/settings/e-settings-web-view-gtkhtml.h     |   65 ++++++++++++++++
 .../e-settings-web-view.c}                         |   34 ++++----
 .../e-settings-web-view.h}                         |   49 ++++++------
 modules/settings/evolution-module-settings.c       |   57 ++++++++++++++
 45 files changed, 1113 insertions(+), 1046 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 71dc0d9..82a0989 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1664,6 +1664,7 @@ modules/plugin-lib/Makefile
 modules/plugin-manager/Makefile
 modules/prefer-plain/Makefile
 modules/prefer-plain/plugin/Makefile
+modules/settings/Makefile
 modules/spamassassin/Makefile
 modules/startup-wizard/Makefile
 modules/text-highlight/Makefile
diff --git a/modules/Makefile.am b/modules/Makefile.am
index 509cf02..5491a60 100644
--- a/modules/Makefile.am
+++ b/modules/Makefile.am
@@ -54,6 +54,7 @@ SUBDIRS = \
 	plugin-lib \
 	plugin-manager \
 	prefer-plain \
+	settings \
 	startup-wizard \
 	vcard-inline \
 	web-inspector \
diff --git a/modules/addressbook/Makefile.am b/modules/addressbook/Makefile.am
index 759f195..2accc37 100644
--- a/modules/addressbook/Makefile.am
+++ b/modules/addressbook/Makefile.am
@@ -30,8 +30,6 @@ module_addressbook_la_SOURCES = \
 	eab-composer-util.h					\
 	e-book-config-hook.c					\
 	e-book-config-hook.h					\
-	e-book-config-name-selector-entry.c			\
-	e-book-config-name-selector-entry.h			\
 	e-book-shell-backend.c					\
 	e-book-shell-backend.h					\
 	e-book-shell-content.c					\
diff --git a/modules/addressbook/evolution-module-addressbook.c b/modules/addressbook/evolution-module-addressbook.c
index 950fdee..1caf7dd 100644
--- a/modules/addressbook/evolution-module-addressbook.c
+++ b/modules/addressbook/evolution-module-addressbook.c
@@ -24,7 +24,6 @@
 #endif
 
 #include "e-book-config-hook.h"
-#include "e-book-config-name-selector-entry.h"
 
 #include "e-book-shell-view.h"
 #include "e-book-shell-backend.h"
@@ -41,7 +40,6 @@ e_module_load (GTypeModule *type_module)
 	/* Register dynamically loaded types. */
 
 	e_book_config_hook_register_type (type_module);
-	e_book_config_name_selector_entry_type_register (type_module);
 
 	e_book_shell_view_register_type (type_module);
 	e_book_shell_backend_type_register (type_module);
diff --git a/modules/calendar/Makefile.am b/modules/calendar/Makefile.am
index 35e630e..e8ec2af 100644
--- a/modules/calendar/Makefile.am
+++ b/modules/calendar/Makefile.am
@@ -17,22 +17,8 @@ module_calendar_la_SOURCES = \
 	e-calendar-preferences.h			\
 	e-cal-attachment-handler.c			\
 	e-cal-attachment-handler.h			\
-	e-cal-config-calendar-item.c			\
-	e-cal-config-calendar-item.h			\
-	e-cal-config-comp-editor.c			\
-	e-cal-config-comp-editor.h			\
-	e-cal-config-date-edit.c			\
-	e-cal-config-date-edit.h			\
 	e-cal-config-hook.c				\
 	e-cal-config-hook.h				\
-	e-cal-config-meeting-store.c			\
-	e-cal-config-meeting-store.h			\
-	e-cal-config-meeting-time-selector.c		\
-	e-cal-config-meeting-time-selector.h		\
-	e-cal-config-model.c				\
-	e-cal-config-model.h				\
-	e-cal-config-view.c				\
-	e-cal-config-view.h				\
 	e-cal-event-hook.c				\
 	e-cal-event-hook.h				\
 	e-cal-shell-backend.c				\
diff --git a/modules/calendar/evolution-module-calendar.c b/modules/calendar/evolution-module-calendar.c
index f3ac75b..86cfa1f 100644
--- a/modules/calendar/evolution-module-calendar.c
+++ b/modules/calendar/evolution-module-calendar.c
@@ -43,14 +43,6 @@
 #include "e-task-shell-sidebar.h"
 #include "e-task-shell-view.h"
 
-#include "e-cal-config-calendar-item.h"
-#include "e-cal-config-comp-editor.h"
-#include "e-cal-config-date-edit.h"
-#include "e-cal-config-meeting-store.h"
-#include "e-cal-config-meeting-time-selector.h"
-#include "e-cal-config-model.h"
-#include "e-cal-config-view.h"
-
 #include "e-calendar-preferences.h"
 
 /* Module Entry Points */
@@ -82,14 +74,6 @@ e_module_load (GTypeModule *type_module)
 	e_task_shell_sidebar_type_register (type_module);
 	e_task_shell_view_register_type (type_module);
 
-	e_cal_config_calendar_item_type_register (type_module);
-	e_cal_config_comp_editor_type_register (type_module);
-	e_cal_config_date_edit_type_register (type_module);
-	e_cal_config_meeting_store_type_register (type_module);
-	e_cal_config_meeting_time_selector_type_register (type_module);
-	e_cal_config_model_type_register (type_module);
-	e_cal_config_view_type_register (type_module);
-
 	e_calendar_preferences_type_register (type_module);
 }
 
diff --git a/modules/mail/Makefile.am b/modules/mail/Makefile.am
index 0e78ab7..bbf8366 100644
--- a/modules/mail/Makefile.am
+++ b/modules/mail/Makefile.am
@@ -15,16 +15,8 @@ module_mail_la_SOURCES = \
 	evolution-module-mail.c						\
 	e-mail-attachment-handler.c					\
 	e-mail-attachment-handler.h					\
-	e-mail-config-format-html.c					\
-	e-mail-config-format-html.h					\
 	e-mail-config-hook.c						\
 	e-mail-config-hook.h						\
-	e-mail-config-reader.c						\
-	e-mail-config-reader.h						\
-	e-mail-config-web-view.c					\
-	e-mail-config-web-view.h					\
-	e-mail-config-web-view-gtkhtml.c				\
-	e-mail-config-web-view-gtkhtml.h				\
 	e-mail-event-hook.c						\
 	e-mail-event-hook.h						\
 	e-mail-shell-backend.c						\
@@ -58,7 +50,6 @@ module_mail_la_LIBADD = \
 	$(top_builddir)/composer/libcomposer.la				\
 	$(top_builddir)/mail/libevolution-mail.la			\
 	$(top_builddir)/mail/importers/libevolution-mail-importers.la	\
-	$(top_builddir)/em-format/libemformat.la			\
 	$(libevolution_mail_settings_la)				\
 	$(EVOLUTION_DATA_SERVER_LIBS)					\
 	$(GNOME_PLATFORM_LIBS)						\
diff --git a/modules/mail/evolution-module-mail.c b/modules/mail/evolution-module-mail.c
index fd2f5a3..fa2f14b 100644
--- a/modules/mail/evolution-module-mail.c
+++ b/modules/mail/evolution-module-mail.c
@@ -33,11 +33,6 @@
 #include "e-mail-shell-sidebar.h"
 #include "e-mail-shell-view.h"
 
-#include "e-mail-config-format-html.h"
-#include "e-mail-config-reader.h"
-#include "e-mail-config-web-view.h"
-#include "e-mail-config-web-view-gtkhtml.h"
-
 #include "em-account-prefs.h"
 
 /* Module Entry Points */
@@ -60,11 +55,6 @@ e_module_load (GTypeModule *type_module)
 	e_mail_shell_sidebar_type_register (type_module);
 	e_mail_shell_view_register_type (type_module);
 
-	e_mail_config_format_html_type_register (type_module);
-	e_mail_config_reader_type_register (type_module);
-	e_mail_config_web_view_type_register (type_module);
-	e_mail_config_web_view_gtkhtml_type_register (type_module);
-
 	em_account_prefs_type_register (type_module);
 }
 
diff --git a/modules/settings/Makefile.am b/modules/settings/Makefile.am
new file mode 100644
index 0000000..178c408
--- /dev/null
+++ b/modules/settings/Makefile.am
@@ -0,0 +1,56 @@
+NULL =
+
+module_LTLIBRARIES = module-settings.la
+
+module_settings_la_CPPFLAGS = \
+	$(AM_CPPFLAGS) \
+	-I$(top_srcdir) \
+	-DG_LOG_DOMAIN=\"evolution-module-settings\" \
+	$(EVOLUTION_DATA_SERVER_CFLAGS) \
+	$(GNOME_PLATFORM_CFLAGS) \
+	$(GTKHTML_CFLAGS) \
+	$(NULL)
+
+module_settings_la_SOURCES = \
+	evolution-module-settings.c \
+	e-settings-cal-model.c \
+	e-settings-cal-model.h \
+	e-settings-calendar-item.c \
+	e-settings-calendar-item.h \
+	e-settings-calendar-view.c \
+	e-settings-calendar-view.h \
+	e-settings-comp-editor.c \
+	e-settings-comp-editor.h \
+	e-settings-date-edit.c \
+	e-settings-date-edit.h \
+	e-settings-mail-formatter.c \
+	e-settings-mail-formatter.h \
+	e-settings-mail-reader.c \
+	e-settings-mail-reader.h \
+	e-settings-meeting-store.c \
+	e-settings-meeting-store.h \
+	e-settings-meeting-time-selector.c \
+	e-settings-meeting-time-selector.h \
+	e-settings-name-selector-entry.c \
+	e-settings-name-selector-entry.h \
+	e-settings-web-view.c \
+	e-settings-web-view.h \
+	e-settings-web-view-gtkhtml.c \
+	e-settings-web-view-gtkhtml.h \
+	$(NULL)
+
+module_settings_la_LIBADD = \
+	$(top_builddir)/e-util/libeutil.la \
+	$(top_builddir)/em-format/libemformat.la \
+	$(top_builddir)/shell/libeshell.la \
+	$(top_builddir)/mail/libevolution-mail.la \
+	$(top_builddir)/calendar/gui/libevolution-calendar.la \
+	$(EVOLUTION_DATA_SERVER_LIBS) \
+	$(GNOME_PLATFORM_LIBS) \
+	$(GTKHTML_LIBS) \
+	$(NULL)
+
+module_settings_la_LDFLAGS = \
+	-avoid-version -module $(NO_UNDEFINED)
+
+-include $(top_srcdir)/git.mk
diff --git a/modules/calendar/e-cal-config-model.c b/modules/settings/e-settings-cal-model.c
similarity index 82%
rename from modules/calendar/e-cal-config-model.c
rename to modules/settings/e-settings-cal-model.c
index fea96c7..5dd55f5 100644
--- a/modules/calendar/e-cal-config-model.c
+++ b/modules/settings/e-settings-cal-model.c
@@ -1,5 +1,5 @@
 /*
- * e-cal-config-model.c
+ * e-settings-cal-model.c
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -20,27 +20,27 @@
 #include <config.h>
 #endif
 
-#include "e-cal-config-model.h"
+#include "e-settings-cal-model.h"
 
 #include <shell/e-shell.h>
 #include <calendar/gui/e-cal-model.h>
 #include <calendar/gui/e-cal-model-tasks.h>
 
-#define E_CAL_CONFIG_MODEL_GET_PRIVATE(obj) \
+#define E_SETTINGS_CAL_MODEL_GET_PRIVATE(obj) \
 	(G_TYPE_INSTANCE_GET_PRIVATE \
-	((obj), E_TYPE_CAL_CONFIG_MODEL, ECalConfigModelPrivate))
+	((obj), E_TYPE_SETTINGS_CAL_MODEL, ESettingsCalModelPrivate))
 
-struct _ECalConfigModelPrivate {
+struct _ESettingsCalModelPrivate {
 	gint placeholder;
 };
 
 G_DEFINE_DYNAMIC_TYPE (
-	ECalConfigModel,
-	e_cal_config_model,
+	ESettingsCalModel,
+	e_settings_cal_model,
 	E_TYPE_EXTENSION)
 
 static void
-cal_config_model_constructed (GObject *object)
+settings_cal_model_constructed (GObject *object)
 {
 	EExtension *extension;
 	EExtensible *extensible;
@@ -141,41 +141,42 @@ cal_config_model_constructed (GObject *object)
 	}
 
 	/* Chain up to parent's constructed() method. */
-	G_OBJECT_CLASS (e_cal_config_model_parent_class)->constructed (object);
+	G_OBJECT_CLASS (e_settings_cal_model_parent_class)->
+		constructed (object);
 }
 
 static void
-e_cal_config_model_class_init (ECalConfigModelClass *class)
+e_settings_cal_model_class_init (ESettingsCalModelClass *class)
 {
 	GObjectClass *object_class;
 	EExtensionClass *extension_class;
 
-	g_type_class_add_private (class, sizeof (ECalConfigModelPrivate));
+	g_type_class_add_private (class, sizeof (ESettingsCalModelPrivate));
 
 	object_class = G_OBJECT_CLASS (class);
-	object_class->constructed = cal_config_model_constructed;
+	object_class->constructed = settings_cal_model_constructed;
 
 	extension_class = E_EXTENSION_CLASS (class);
 	extension_class->extensible_type = E_TYPE_CAL_MODEL;
 }
 
 static void
-e_cal_config_model_class_finalize (ECalConfigModelClass *class)
+e_settings_cal_model_class_finalize (ESettingsCalModelClass *class)
 {
 }
 
 static void
-e_cal_config_model_init (ECalConfigModel *extension)
+e_settings_cal_model_init (ESettingsCalModel *extension)
 {
-	extension->priv = E_CAL_CONFIG_MODEL_GET_PRIVATE (extension);
+	extension->priv = E_SETTINGS_CAL_MODEL_GET_PRIVATE (extension);
 }
 
 void
-e_cal_config_model_type_register (GTypeModule *type_module)
+e_settings_cal_model_type_register (GTypeModule *type_module)
 {
 	/* XXX G_DEFINE_DYNAMIC_TYPE declares a static type registration
 	 *     function, so we have to wrap it with a public function in
 	 *     order to register types from a separate compilation unit. */
-	e_cal_config_model_register_type (type_module);
+	e_settings_cal_model_register_type (type_module);
 }
 
diff --git a/modules/settings/e-settings-cal-model.h b/modules/settings/e-settings-cal-model.h
new file mode 100644
index 0000000..8fbfe4b
--- /dev/null
+++ b/modules/settings/e-settings-cal-model.h
@@ -0,0 +1,65 @@
+/*
+ * e-settings-cal-model.h
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the program; if not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+#ifndef E_SETTINGS_CAL_MODEL_H
+#define E_SETTINGS_CAL_MODEL_H
+
+#include <libebackend/libebackend.h>
+
+/* Standard GObject macros */
+#define E_TYPE_SETTINGS_CAL_MODEL \
+	(e_settings_cal_model_get_type ())
+#define E_SETTINGS_CAL_MODEL(obj) \
+	(G_TYPE_CHECK_INSTANCE_CAST \
+	((obj), E_TYPE_SETTINGS_CAL_MODEL, ESettingsCalModel))
+#define E_SETTINGS_CAL_MODEL_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_CAST \
+	((cls), E_TYPE_SETTINGS_CAL_MODEL, ESettingsCalModelClass))
+#define E_IS_SETTINGS_CAL_MODEL(obj) \
+	(G_TYPE_CHECK_INSTANCE_TYPE \
+	((obj), E_TYPE_SETTINGS_CAL_MODEL))
+#define E_IS_SETTINGS_CAL_MODEL_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_TYPE \
+	((cls), E_TYPE_SETTINGS_CAL_MODEL))
+#define E_SETTINGS_CAL_MODEL_GET_CLASS(obj) \
+	(G_TYPE_INSTANCE_GET_CLASS \
+	((obj), E_TYPE_SETTINGS_CAL_MODEL, ESettingsCalModelClass))
+
+G_BEGIN_DECLS
+
+typedef struct _ESettingsCalModel ESettingsCalModel;
+typedef struct _ESettingsCalModelClass ESettingsCalModelClass;
+typedef struct _ESettingsCalModelPrivate ESettingsCalModelPrivate;
+
+struct _ESettingsCalModel {
+	EExtension parent;
+	ESettingsCalModelPrivate *priv;
+};
+
+struct _ESettingsCalModelClass {
+	EExtensionClass parent_class;
+};
+
+GType		e_settings_cal_model_get_type	(void) G_GNUC_CONST;
+void		e_settings_cal_model_type_register
+						(GTypeModule *type_module);
+
+G_END_DECLS
+
+#endif /* E_SETTINGS_CAL_MODEL_H */
+
diff --git a/modules/calendar/e-cal-config-calendar-item.c b/modules/settings/e-settings-calendar-item.c
similarity index 67%
rename from modules/calendar/e-cal-config-calendar-item.c
rename to modules/settings/e-settings-calendar-item.c
index ddf6835..ae3c37b 100644
--- a/modules/calendar/e-cal-config-calendar-item.c
+++ b/modules/settings/e-settings-calendar-item.c
@@ -1,5 +1,5 @@
 /*
- * e-cal-config-calendar-item.c
+ * e-settings-calendar-item.c
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -20,25 +20,25 @@
 #include <config.h>
 #endif
 
-#include "e-cal-config-calendar-item.h"
+#include "e-settings-calendar-item.h"
 
 #include <shell/e-shell.h>
 
-#define E_CAL_CONFIG_CALENDAR_ITEM_GET_PRIVATE(obj) \
+#define E_SETTINGS_CALENDAR_ITEM_GET_PRIVATE(obj) \
 	(G_TYPE_INSTANCE_GET_PRIVATE \
-	((obj), E_TYPE_CAL_CONFIG_CALENDAR_ITEM, ECalConfigCalendarItemPrivate))
+	((obj), E_TYPE_SETTINGS_CALENDAR_ITEM, ESettingsCalendarItemPrivate))
 
-struct _ECalConfigCalendarItemPrivate {
+struct _ESettingsCalendarItemPrivate {
 	gint placeholder;
 };
 
 G_DEFINE_DYNAMIC_TYPE (
-	ECalConfigCalendarItem,
-	e_cal_config_calendar_item,
+	ESettingsCalendarItem,
+	e_settings_calendar_item,
 	E_TYPE_EXTENSION)
 
 static void
-cal_config_calendar_item_constructed (GObject *object)
+settings_calendar_item_constructed (GObject *object)
 {
 	EExtension *extension;
 	EExtensible *extensible;
@@ -62,43 +62,43 @@ cal_config_calendar_item_constructed (GObject *object)
 		G_BINDING_SYNC_CREATE);
 
 	/* Chain up to parent's constructed() method. */
-	G_OBJECT_CLASS (e_cal_config_calendar_item_parent_class)->
+	G_OBJECT_CLASS (e_settings_calendar_item_parent_class)->
 		constructed (object);
 }
 
 static void
-e_cal_config_calendar_item_class_init (ECalConfigCalendarItemClass *class)
+e_settings_calendar_item_class_init (ESettingsCalendarItemClass *class)
 {
 	GObjectClass *object_class;
 	EExtensionClass *extension_class;
 
 	g_type_class_add_private (
-		class, sizeof (ECalConfigCalendarItemPrivate));
+		class, sizeof (ESettingsCalendarItemPrivate));
 
 	object_class = G_OBJECT_CLASS (class);
-	object_class->constructed = cal_config_calendar_item_constructed;
+	object_class->constructed = settings_calendar_item_constructed;
 
 	extension_class = E_EXTENSION_CLASS (class);
 	extension_class->extensible_type = E_TYPE_CALENDAR_ITEM;
 }
 
 static void
-e_cal_config_calendar_item_class_finalize (ECalConfigCalendarItemClass *class)
+e_settings_calendar_item_class_finalize (ESettingsCalendarItemClass *class)
 {
 }
 
 static void
-e_cal_config_calendar_item_init (ECalConfigCalendarItem *extension)
+e_settings_calendar_item_init (ESettingsCalendarItem *extension)
 {
-	extension->priv = E_CAL_CONFIG_CALENDAR_ITEM_GET_PRIVATE (extension);
+	extension->priv = E_SETTINGS_CALENDAR_ITEM_GET_PRIVATE (extension);
 }
 
 void
-e_cal_config_calendar_item_type_register (GTypeModule *type_module)
+e_settings_calendar_item_type_register (GTypeModule *type_module)
 {
 	/* XXX G_DEFINE_DYNAMIC_TYPE declares a static type registration
 	 *     function, so we have to wrap it with a public function in
 	 *     order to register types from a separate compilation unit. */
-	e_cal_config_calendar_item_register_type (type_module);
+	e_settings_calendar_item_register_type (type_module);
 }
 
diff --git a/modules/settings/e-settings-calendar-item.h b/modules/settings/e-settings-calendar-item.h
new file mode 100644
index 0000000..e5d4576
--- /dev/null
+++ b/modules/settings/e-settings-calendar-item.h
@@ -0,0 +1,66 @@
+/*
+ * e-settings-calendar-item.h
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the program; if not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+#ifndef E_SETTINGS_CALENDAR_ITEM_H
+#define E_SETTINGS_CALENDAR_ITEM_H
+
+#include <libebackend/libebackend.h>
+
+/* Standard GObject macros */
+#define E_TYPE_SETTINGS_CALENDAR_ITEM \
+	(e_settings_calendar_item_get_type ())
+#define E_SETTINGS_CALENDAR_ITEM(obj) \
+	(G_TYPE_CHECK_INSTANCE_CAST \
+	((obj), E_TYPE_SETTINGS_CALENDAR_ITEM, ESettingsCalendarItem))
+#define E_SETTINGS_CALENDAR_ITEM_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_CAST \
+	((cls), E_TYPE_SETTINGS_CALENDAR_ITEM, ESettingsCalendarItemClass))
+#define E_IS_SETTINGS_CALENDAR_ITEM(obj) \
+	(G_TYPE_CHECK_INSTANCE_TYPE \
+	((obj), E_TYPE_SETTINGS_CALENDAR_ITEM))
+#define E_IS_SETTINGS_CALENDAR_ITEM_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_TYPE \
+	((cls), E_TYPE_SETTINGS_CALENDAR_ITEM))
+#define E_SETTINGS_CALENDAR_ITEM_GET_CLASS(obj) \
+	(G_TYPE_INSTANCE_GET_CLASS \
+	((obj), E_TYPE_SETTINGS_CALENDAR_ITEM, ESettingsCalendarItemClass))
+
+G_BEGIN_DECLS
+
+typedef struct _ESettingsCalendarItem ESettingsCalendarItem;
+typedef struct _ESettingsCalendarItemClass ESettingsCalendarItemClass;
+typedef struct _ESettingsCalendarItemPrivate ESettingsCalendarItemPrivate;
+
+struct _ESettingsCalendarItem {
+	EExtension parent;
+	ESettingsCalendarItemPrivate *priv;
+};
+
+struct _ESettingsCalendarItemClass {
+	EExtensionClass parent_class;
+};
+
+GType		e_settings_calendar_item_get_type
+						(void) G_GNUC_CONST;
+void		e_settings_calendar_item_type_register
+						(GTypeModule *type_module);
+
+G_END_DECLS
+
+#endif /* E_SETTINGS_CALENDAR_ITEM_H */
+
diff --git a/modules/calendar/e-cal-config-view.c b/modules/settings/e-settings-calendar-view.c
similarity index 76%
rename from modules/calendar/e-cal-config-view.c
rename to modules/settings/e-settings-calendar-view.c
index 38651bd..e1a0d47 100644
--- a/modules/calendar/e-cal-config-view.c
+++ b/modules/settings/e-settings-calendar-view.c
@@ -1,5 +1,5 @@
 /*
- * e-cal-config-view.c
+ * e-settings-calendar-view.c
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -20,27 +20,27 @@
 #include <config.h>
 #endif
 
-#include "e-cal-config-view.h"
+#include "e-settings-calendar-view.h"
 
 #include <shell/e-shell.h>
 #include <calendar/gui/e-day-view.h>
 #include <calendar/gui/e-week-view.h>
 
-#define E_CAL_CONFIG_VIEW_GET_PRIVATE(obj) \
+#define E_SETTINGS_CALENDAR_VIEW_GET_PRIVATE(obj) \
 	(G_TYPE_INSTANCE_GET_PRIVATE \
-	((obj), E_TYPE_CAL_CONFIG_VIEW, ECalConfigViewPrivate))
+	((obj), E_TYPE_SETTINGS_CALENDAR_VIEW, ESettingsCalendarViewPrivate))
 
-struct _ECalConfigViewPrivate {
+struct _ESettingsCalendarViewPrivate {
 	gint placeholder;
 };
 
 G_DEFINE_DYNAMIC_TYPE (
-	ECalConfigView,
-	e_cal_config_view,
+	ESettingsCalendarView,
+	e_settings_calendar_view,
 	E_TYPE_EXTENSION)
 
 static void
-cal_config_view_constructed (GObject *object)
+settings_calendar_view_constructed (GObject *object)
 {
 	EExtension *extension;
 	EExtensible *extensible;
@@ -105,41 +105,42 @@ cal_config_view_constructed (GObject *object)
 	}
 
 	/* Chain up to parent's constructed() method. */
-	G_OBJECT_CLASS (e_cal_config_view_parent_class)->constructed (object);
+	G_OBJECT_CLASS (e_settings_calendar_view_parent_class)->
+		constructed (object);
 }
 
 static void
-e_cal_config_view_class_init (ECalConfigViewClass *class)
+e_settings_calendar_view_class_init (ESettingsCalendarViewClass *class)
 {
 	GObjectClass *object_class;
 	EExtensionClass *extension_class;
 
-	g_type_class_add_private (class, sizeof (ECalConfigViewPrivate));
+	g_type_class_add_private (class, sizeof (ESettingsCalendarViewPrivate));
 
 	object_class = G_OBJECT_CLASS (class);
-	object_class->constructed = cal_config_view_constructed;
+	object_class->constructed = settings_calendar_view_constructed;
 
 	extension_class = E_EXTENSION_CLASS (class);
 	extension_class->extensible_type = E_TYPE_CALENDAR_VIEW;
 }
 
 static void
-e_cal_config_view_class_finalize (ECalConfigViewClass *class)
+e_settings_calendar_view_class_finalize (ESettingsCalendarViewClass *class)
 {
 }
 
 static void
-e_cal_config_view_init (ECalConfigView *extension)
+e_settings_calendar_view_init (ESettingsCalendarView *extension)
 {
-	extension->priv = E_CAL_CONFIG_VIEW_GET_PRIVATE (extension);
+	extension->priv = E_SETTINGS_CALENDAR_VIEW_GET_PRIVATE (extension);
 }
 
 void
-e_cal_config_view_type_register (GTypeModule *type_module)
+e_settings_calendar_view_type_register (GTypeModule *type_module)
 {
 	/* XXX G_DEFINE_DYNAMIC_TYPE declares a static type registration
 	 *     function, so we have to wrap it with a public function in
 	 *     order to register types from a separate compilation unit. */
-	e_cal_config_view_register_type (type_module);
+	e_settings_calendar_view_register_type (type_module);
 }
 
diff --git a/modules/settings/e-settings-calendar-view.h b/modules/settings/e-settings-calendar-view.h
new file mode 100644
index 0000000..d2fd828
--- /dev/null
+++ b/modules/settings/e-settings-calendar-view.h
@@ -0,0 +1,66 @@
+/*
+ * e-settings-calendar-view.h
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the program; if not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+#ifndef E_SETTINGS_CALENDAR_VIEW_H
+#define E_SETTINGS_CALENDAR_VIEW_H
+
+#include <libebackend/libebackend.h>
+
+/* Standard GObject macros */
+#define E_TYPE_SETTINGS_CALENDAR_VIEW \
+	(e_settings_calendar_view_get_type ())
+#define E_SETTINGS_CALENDAR_VIEW(obj) \
+	(G_TYPE_CHECK_INSTANCE_CAST \
+	((obj), E_TYPE_SETTINGS_CALENDAR_VIEW, ESettingsCalendarView))
+#define E_SETTINGS_CALENDAR_VIEW_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_CAST \
+	((cls), E_TYPE_SETTINGS_CALENDAR_VIEW, ESettingsCalendarViewClass))
+#define E_IS_SETTINGS_CALENDAR_VIEW(obj) \
+	(G_TYPE_CHECK_INSTANCE_TYPE \
+	((obj), E_TYPE_SETTINGS_CALENDAR_VIEW))
+#define E_IS_SETTINGS_CALENDAR_VIEW_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_TYPE \
+	((cls), E_TYPE_SETTINGS_CALENDAR_VIEW))
+#define E_SETTINGS_CALENDAR_VIEW_GET_CLASS(obj) \
+	(G_TYPE_INSTANCE_GET_CLASS \
+	((obj), E_TYPE_SETTINGS_CALENDAR_VIEW, ESettingsCalendarViewClass))
+
+G_BEGIN_DECLS
+
+typedef struct _ESettingsCalendarView ESettingsCalendarView;
+typedef struct _ESettingsCalendarViewClass ESettingsCalendarViewClass;
+typedef struct _ESettingsCalendarViewPrivate ESettingsCalendarViewPrivate;
+
+struct _ESettingsCalendarView {
+	EExtension parent;
+	ESettingsCalendarViewPrivate *priv;
+};
+
+struct _ESettingsCalendarViewClass {
+	EExtensionClass parent_class;
+};
+
+GType		e_settings_calendar_view_get_type
+						(void) G_GNUC_CONST;
+void		e_settings_calendar_view_type_register
+						(GTypeModule *type_module);
+
+G_END_DECLS
+
+#endif /* E_SETTINGS_CALENDAR_VIEW_H */
+
diff --git a/modules/calendar/e-cal-config-comp-editor.c b/modules/settings/e-settings-comp-editor.c
similarity index 73%
rename from modules/calendar/e-cal-config-comp-editor.c
rename to modules/settings/e-settings-comp-editor.c
index 98991b4..a10983a 100644
--- a/modules/calendar/e-cal-config-comp-editor.c
+++ b/modules/settings/e-settings-comp-editor.c
@@ -1,5 +1,5 @@
 /*
- * e-cal-config-comp-editor.c
+ * e-settings-comp-editor.c
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -20,26 +20,26 @@
 #include <config.h>
 #endif
 
-#include "e-cal-config-comp-editor.h"
+#include "e-settings-comp-editor.h"
 
 #include <shell/e-shell.h>
 #include <calendar/gui/dialogs/comp-editor.h>
 
-#define E_CAL_CONFIG_COMP_EDITOR_GET_PRIVATE(obj) \
+#define E_SETTINGS_COMP_EDITOR_GET_PRIVATE(obj) \
 	(G_TYPE_INSTANCE_GET_PRIVATE \
-	((obj), E_TYPE_CAL_CONFIG_COMP_EDITOR, ECalConfigCompEditorPrivate))
+	((obj), E_TYPE_SETTINGS_COMP_EDITOR, ESettingsCompEditorPrivate))
 
-struct _ECalConfigCompEditorPrivate {
+struct _ESettingsCompEditorPrivate {
 	gint placeholder;
 };
 
 G_DEFINE_DYNAMIC_TYPE (
-	ECalConfigCompEditor,
-	e_cal_config_comp_editor,
+	ESettingsCompEditor,
+	e_settings_comp_editor,
 	E_TYPE_EXTENSION)
 
 static void
-cal_config_comp_editor_constructed (GObject *object)
+settings_comp_editor_constructed (GObject *object)
 {
 	EExtension *extension;
 	EExtensible *extensible;
@@ -83,42 +83,42 @@ cal_config_comp_editor_constructed (GObject *object)
 		G_BINDING_SYNC_CREATE);
 
 	/* Chain up to parent's constructed() method. */
-	G_OBJECT_CLASS (e_cal_config_comp_editor_parent_class)->
+	G_OBJECT_CLASS (e_settings_comp_editor_parent_class)->
 		constructed (object);
 }
 
 static void
-e_cal_config_comp_editor_class_init (ECalConfigCompEditorClass *class)
+e_settings_comp_editor_class_init (ESettingsCompEditorClass *class)
 {
 	GObjectClass *object_class;
 	EExtensionClass *extension_class;
 
-	g_type_class_add_private (class, sizeof (ECalConfigCompEditorPrivate));
+	g_type_class_add_private (class, sizeof (ESettingsCompEditorPrivate));
 
 	object_class = G_OBJECT_CLASS (class);
-	object_class->constructed = cal_config_comp_editor_constructed;
+	object_class->constructed = settings_comp_editor_constructed;
 
 	extension_class = E_EXTENSION_CLASS (class);
 	extension_class->extensible_type = TYPE_COMP_EDITOR;
 }
 
 static void
-e_cal_config_comp_editor_class_finalize (ECalConfigCompEditorClass *class)
+e_settings_comp_editor_class_finalize (ESettingsCompEditorClass *class)
 {
 }
 
 static void
-e_cal_config_comp_editor_init (ECalConfigCompEditor *extension)
+e_settings_comp_editor_init (ESettingsCompEditor *extension)
 {
-	extension->priv = E_CAL_CONFIG_COMP_EDITOR_GET_PRIVATE (extension);
+	extension->priv = E_SETTINGS_COMP_EDITOR_GET_PRIVATE (extension);
 }
 
 void
-e_cal_config_comp_editor_type_register (GTypeModule *type_module)
+e_settings_comp_editor_type_register (GTypeModule *type_module)
 {
 	/* XXX G_DEFINE_DYNAMIC_TYPE declares a static type registration
 	 *     function, so we have to wrap it with a public function in
 	 *     order to register types from a separate compilation unit. */
-	e_cal_config_comp_editor_register_type (type_module);
+	e_settings_comp_editor_register_type (type_module);
 }
 
diff --git a/modules/settings/e-settings-comp-editor.h b/modules/settings/e-settings-comp-editor.h
new file mode 100644
index 0000000..24b03f6
--- /dev/null
+++ b/modules/settings/e-settings-comp-editor.h
@@ -0,0 +1,64 @@
+/*
+ * e-settings-comp-editor.h
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the program; if not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+#ifndef E_SETTINGS_COMP_EDITOR_H
+#define E_SETTINGS_COMP_EDITOR_H
+
+#include <libebackend/libebackend.h>
+
+/* Standard GObject macros */
+#define E_TYPE_SETTINGS_COMP_EDITOR \
+	(e_settings_comp_editor_get_type ())
+#define E_SETTINGS_COMP_EDITOR(obj) \
+	(G_TYPE_CHECK_INSTANCE_CAST \
+	((obj), E_TYPE_SETTINGS_COMP_EDITOR, ESettingsCompEditor))
+#define E_SETTINGS_COMP_EDITOR_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_CAST \
+	((cls), E_TYPE_SETTINGS_COMP_EDITOR, ESettingsCompEditorClass))
+#define E_IS_SETTINGS_COMP_EDITOR(obj) \
+	(G_TYPE_CHECK_INSTANCE_TYPE \
+	((obj), E_TYPE_SETTINGS_COMP_EDITOR))
+#define E_IS_SETTINGS_COMP_EDITOR_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_TYPE \
+	((cls), E_TYPE_SETTINGS_COMP_EDITOR))
+#define E_SETTINGS_COMP_EDITOR_GET_CLASS(obj) \
+	(G_TYPE_INSTANCE_GET_CLASS \
+	((obj), E_TYPE_SETTINGS_COMP_EDITOR, ESettingsCompEditorClass))
+
+G_BEGIN_DECLS
+
+typedef struct _ESettingsCompEditor ESettingsCompEditor;
+typedef struct _ESettingsCompEditorClass ESettingsCompEditorClass;
+typedef struct _ESettingsCompEditorPrivate ESettingsCompEditorPrivate;
+
+struct _ESettingsCompEditor {
+	EExtension parent;
+	ESettingsCompEditorPrivate *priv;
+};
+
+struct _ESettingsCompEditorClass {
+	EExtensionClass parent_class;
+};
+
+GType		e_settings_comp_editor_get_type	(void) G_GNUC_CONST;
+void		e_settings_comp_editor_type_register
+						(GTypeModule *type_module);
+
+G_END_DECLS
+
+#endif /* E_SETTINGS_COMP_EDITOR_H */
diff --git a/modules/calendar/e-cal-config-date-edit.c b/modules/settings/e-settings-date-edit.c
similarity index 68%
rename from modules/calendar/e-cal-config-date-edit.c
rename to modules/settings/e-settings-date-edit.c
index 0ac7e6e..36e1766 100644
--- a/modules/calendar/e-cal-config-date-edit.c
+++ b/modules/settings/e-settings-date-edit.c
@@ -1,5 +1,5 @@
 /*
- * e-cal-config-date-edit.c
+ * e-settings-date-edit.c
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -20,25 +20,25 @@
 #include <config.h>
 #endif
 
-#include "e-cal-config-date-edit.h"
+#include "e-settings-date-edit.h"
 
 #include <shell/e-shell.h>
 
-#define E_CAL_CONFIG_DATE_EDIT_GET_PRIVATE(obj) \
+#define E_SETTINGS_DATE_EDIT_GET_PRIVATE(obj) \
 	(G_TYPE_INSTANCE_GET_PRIVATE \
-	((obj), E_TYPE_CAL_CONFIG_DATE_EDIT, ECalConfigDateEditPrivate))
+	((obj), E_TYPE_SETTINGS_DATE_EDIT, ESettingsDateEditPrivate))
 
-struct _ECalConfigDateEditPrivate {
+struct _ESettingsDateEditPrivate {
 	gint placeholder;
 };
 
 G_DEFINE_DYNAMIC_TYPE (
-	ECalConfigDateEdit,
-	e_cal_config_date_edit,
+	ESettingsDateEdit,
+	e_settings_date_edit,
 	E_TYPE_EXTENSION)
 
 static void
-cal_config_date_edit_constructed (GObject *object)
+settings_date_edit_constructed (GObject *object)
 {
 	EExtension *extension;
 	EExtensible *extensible;
@@ -62,42 +62,42 @@ cal_config_date_edit_constructed (GObject *object)
 		G_BINDING_SYNC_CREATE);
 
 	/* Chain up to parent's constructed() method. */
-	G_OBJECT_CLASS (e_cal_config_date_edit_parent_class)->
+	G_OBJECT_CLASS (e_settings_date_edit_parent_class)->
 		constructed (object);
 }
 
 static void
-e_cal_config_date_edit_class_init (ECalConfigDateEditClass *class)
+e_settings_date_edit_class_init (ESettingsDateEditClass *class)
 {
 	GObjectClass *object_class;
 	EExtensionClass *extension_class;
 
-	g_type_class_add_private (class, sizeof (ECalConfigDateEditPrivate));
+	g_type_class_add_private (class, sizeof (ESettingsDateEditPrivate));
 
 	object_class = G_OBJECT_CLASS (class);
-	object_class->constructed = cal_config_date_edit_constructed;
+	object_class->constructed = settings_date_edit_constructed;
 
 	extension_class = E_EXTENSION_CLASS (class);
 	extension_class->extensible_type = E_TYPE_DATE_EDIT;
 }
 
 static void
-e_cal_config_date_edit_class_finalize (ECalConfigDateEditClass *class)
+e_settings_date_edit_class_finalize (ESettingsDateEditClass *class)
 {
 }
 
 static void
-e_cal_config_date_edit_init (ECalConfigDateEdit *extension)
+e_settings_date_edit_init (ESettingsDateEdit *extension)
 {
-	extension->priv = E_CAL_CONFIG_DATE_EDIT_GET_PRIVATE (extension);
+	extension->priv = E_SETTINGS_DATE_EDIT_GET_PRIVATE (extension);
 }
 
 void
-e_cal_config_date_edit_type_register (GTypeModule *type_module)
+e_settings_date_edit_type_register (GTypeModule *type_module)
 {
 	/* XXX G_DEFINE_DYNAMIC_TYPE declares a static type registration
 	 *     function, so we have to wrap it with a public function in
 	 *     order to register types from a separate compilation unit. */
-	e_cal_config_date_edit_register_type (type_module);
+	e_settings_date_edit_register_type (type_module);
 }
 
diff --git a/modules/settings/e-settings-date-edit.h b/modules/settings/e-settings-date-edit.h
new file mode 100644
index 0000000..63d0af1
--- /dev/null
+++ b/modules/settings/e-settings-date-edit.h
@@ -0,0 +1,65 @@
+/*
+ * e-settings-date-edit.h
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the program; if not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+#ifndef E_SETTINGS_DATE_EDIT_H
+#define E_SETTINGS_DATE_EDIT_H
+
+#include <libebackend/libebackend.h>
+
+/* Standard GObject macros */
+#define E_TYPE_SETTINGS_DATE_EDIT \
+	(e_settings_date_edit_get_type ())
+#define E_SETTINGS_DATE_EDIT(obj) \
+	(G_TYPE_CHECK_INSTANCE_CAST \
+	((obj), E_TYPE_SETTINGS_DATE_EDIT, ESettingsDateEdit))
+#define E_SETTINGS_DATE_EDIT_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_CAST \
+	((cls), E_TYPE_SETTINGS_DATE_EDIT, ESettingsDateEditClass))
+#define E_IS_SETTINGS_DATE_EDIT(obj) \
+	(G_TYPE_CHECK_INSTANCE_TYPE \
+	((obj), E_TYPE_SETTINGS_DATE_EDIT))
+#define E_IS_SETTINGS_DATE_EDIT_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_TYPE \
+	((cls), E_TYPE_SETTINGS_DATE_EDIT))
+#define E_SETTINGS_DATE_EDIT_GET_CLASS(obj) \
+	(G_TYPE_INSTANCE_GET_CLASS \
+	((obj), E_TYPE_SETTINGS_DATE_EDIT, ESettingsDateEditClass))
+
+G_BEGIN_DECLS
+
+typedef struct _ESettingsDateEdit ESettingsDateEdit;
+typedef struct _ESettingsDateEditClass ESettingsDateEditClass;
+typedef struct _ESettingsDateEditPrivate ESettingsDateEditPrivate;
+
+struct _ESettingsDateEdit {
+	EExtension parent;
+	ESettingsDateEditPrivate *priv;
+};
+
+struct _ESettingsDateEditClass {
+	EExtensionClass parent_class;
+};
+
+GType		e_settings_date_edit_get_type	(void) G_GNUC_CONST;
+void		e_settings_date_edit_type_register
+						(GTypeModule *type_module);
+
+G_END_DECLS
+
+#endif /* E_SETTINGS_DATE_EDIT_H */
+
diff --git a/modules/mail/e-mail-config-format-html.c b/modules/settings/e-settings-mail-formatter.c
similarity index 70%
rename from modules/mail/e-mail-config-format-html.c
rename to modules/settings/e-settings-mail-formatter.c
index d2df6b9..d81d4fb 100644
--- a/modules/mail/e-mail-config-format-html.c
+++ b/modules/settings/e-settings-mail-formatter.c
@@ -1,5 +1,5 @@
 /*
- * e-mail-config-format-html.c
+ * e-settings-mail-formatter.c
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -20,29 +20,29 @@
 #include <config.h>
 #endif
 
-#include "e-mail-config-format-html.h"
+#include "e-settings-mail-formatter.h"
 
 #include <shell/e-shell.h>
 #include <e-util/e-util.h>
 #include <em-format/e-mail-formatter.h>
 #include <mail/e-mail-reader-utils.h>
 
-#define E_MAIL_CONFIG_FORMAT_HTML_GET_PRIVATE(obj) \
+#define E_SETTINGS_MAIL_FORMATTER_GET_PRIVATE(obj) \
 	(G_TYPE_INSTANCE_GET_PRIVATE \
-	((obj), E_TYPE_MAIL_CONFIG_FORMAT_HTML, EMailConfigFormatHTMLPrivate))
+	((obj), E_TYPE_SETTINGS_MAIL_FORMATTER, ESettingsMailFormatterPrivate))
 
-struct _EMailConfigFormatHTMLPrivate {
+struct _ESettingsMailFormatterPrivate {
 	GSettings *settings;
 	gulong headers_changed_id;
 };
 
 G_DEFINE_DYNAMIC_TYPE (
-	EMailConfigFormatHTML,
-	e_mail_config_format_html,
+	ESettingsMailFormatter,
+	e_settings_mail_formatter,
 	E_TYPE_EXTENSION)
 
 static EMailFormatter *
-mail_config_format_html_get_formatter (EMailConfigFormatHTML *extension)
+settings_mail_formatter_get_extensible (ESettingsMailFormatter *extension)
 {
 	EExtensible *extensible;
 
@@ -52,15 +52,15 @@ mail_config_format_html_get_formatter (EMailConfigFormatHTML *extension)
 }
 
 static void
-mail_config_format_html_headers_changed_cb (GSettings *settings,
+settings_mail_formatter_headers_changed_cb (GSettings *settings,
                                             const gchar *key,
-                                            EMailConfigFormatHTML *extension)
+                                            ESettingsMailFormatter *extension)
 {
 	EMailFormatter *formatter;
 	gchar **headers;
 	gint ii;
 
-	formatter = mail_config_format_html_get_formatter (extension);
+	formatter = settings_mail_formatter_get_extensible (extension);
 
 	headers = g_settings_get_strv (settings, "headers");
 
@@ -85,11 +85,11 @@ mail_config_format_html_headers_changed_cb (GSettings *settings,
 }
 
 static void
-mail_config_format_html_dispose (GObject *object)
+settings_mail_formatter_dispose (GObject *object)
 {
-	EMailConfigFormatHTMLPrivate *priv;
+	ESettingsMailFormatterPrivate *priv;
 
-	priv = E_MAIL_CONFIG_FORMAT_HTML_GET_PRIVATE (object);
+	priv = E_SETTINGS_MAIL_FORMATTER_GET_PRIVATE (object);
 
 	if (priv->settings != NULL) {
 		g_signal_handler_disconnect (
@@ -100,20 +100,20 @@ mail_config_format_html_dispose (GObject *object)
 	}
 
 	/* Chain up to parent's dispose() method. */
-	G_OBJECT_CLASS (e_mail_config_format_html_parent_class)->
+	G_OBJECT_CLASS (e_settings_mail_formatter_parent_class)->
 		dispose (object);
 }
 
 static void
-mail_config_format_html_constructed (GObject *object)
+settings_mail_formatter_constructed (GObject *object)
 {
-	EMailConfigFormatHTML *extension;
+	ESettingsMailFormatter *extension;
 	EMailFormatter *formatter;
 	EShellSettings *shell_settings;
 	EShell *shell;
 
-	extension = E_MAIL_CONFIG_FORMAT_HTML (object);
-	formatter = mail_config_format_html_get_formatter (extension);
+	extension = E_SETTINGS_MAIL_FORMATTER (object);
+	formatter = settings_mail_formatter_get_extensible (extension);
 
 	shell = e_shell_get_default ();
 	shell_settings = e_shell_get_shell_settings (shell);
@@ -157,55 +157,55 @@ mail_config_format_html_constructed (GObject *object)
 
 	extension->priv->headers_changed_id = g_signal_connect (
 		extension->priv->settings, "changed::headers",
-		G_CALLBACK (mail_config_format_html_headers_changed_cb),
+		G_CALLBACK (settings_mail_formatter_headers_changed_cb),
 		extension);
 
 	/* Initial synchronization */
-	mail_config_format_html_headers_changed_cb (
+	settings_mail_formatter_headers_changed_cb (
 		extension->priv->settings, NULL, extension);
 
 	/* Chain up to parent's constructed() method. */
-	G_OBJECT_CLASS (e_mail_config_format_html_parent_class)->
+	G_OBJECT_CLASS (e_settings_mail_formatter_parent_class)->
 		constructed (object);
 }
 
 static void
-e_mail_config_format_html_class_init (EMailConfigFormatHTMLClass *class)
+e_settings_mail_formatter_class_init (ESettingsMailFormatterClass *class)
 {
 	GObjectClass *object_class;
 	EExtensionClass *extension_class;
 
 	g_type_class_add_private (
-		class, sizeof (EMailConfigFormatHTMLPrivate));
+		class, sizeof (ESettingsMailFormatterPrivate));
 
 	object_class = G_OBJECT_CLASS (class);
-	object_class->dispose = mail_config_format_html_dispose;
-	object_class->constructed = mail_config_format_html_constructed;
+	object_class->dispose = settings_mail_formatter_dispose;
+	object_class->constructed = settings_mail_formatter_constructed;
 
 	extension_class = E_EXTENSION_CLASS (class);
 	extension_class->extensible_type = E_TYPE_MAIL_FORMATTER;
 }
 
 static void
-e_mail_config_format_html_class_finalize (EMailConfigFormatHTMLClass *class)
+e_settings_mail_formatter_class_finalize (ESettingsMailFormatterClass *class)
 {
 }
 
 static void
-e_mail_config_format_html_init (EMailConfigFormatHTML *extension)
+e_settings_mail_formatter_init (ESettingsMailFormatter *extension)
 {
-	extension->priv = E_MAIL_CONFIG_FORMAT_HTML_GET_PRIVATE (extension);
+	extension->priv = E_SETTINGS_MAIL_FORMATTER_GET_PRIVATE (extension);
 
 	extension->priv->settings =
 		g_settings_new ("org.gnome.evolution.mail");
 }
 
 void
-e_mail_config_format_html_type_register (GTypeModule *type_module)
+e_settings_mail_formatter_type_register (GTypeModule *type_module)
 {
 	/* XXX G_DEFINE_DYNAMIC_TYPE declares a static type registration
 	 *     function, so we have to wrap it with a public function in
 	 *     order to register types from a separate compilation unit. */
-	e_mail_config_format_html_register_type (type_module);
+	e_settings_mail_formatter_register_type (type_module);
 }
 
diff --git a/modules/settings/e-settings-mail-formatter.h b/modules/settings/e-settings-mail-formatter.h
new file mode 100644
index 0000000..3097d74
--- /dev/null
+++ b/modules/settings/e-settings-mail-formatter.h
@@ -0,0 +1,66 @@
+/*
+ * e-settings-mail-formatter.h
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the program; if not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+#ifndef E_SETTINGS_MAIL_FORMATTER_H
+#define E_SETTINGS_MAIL_FORMATTER_H
+
+#include <libebackend/libebackend.h>
+
+/* Standard GObject macros */
+#define E_TYPE_SETTINGS_MAIL_FORMATTER \
+	(e_settings_mail_formatter_get_type ())
+#define E_SETTINGS_MAIL_FORMATTER(obj) \
+	(G_TYPE_CHECK_INSTANCE_CAST \
+	((obj), E_TYPE_SETTINGS_MAIL_FORMATTER, ESettingsMailFormatter))
+#define E_SETTINGS_MAIL_FORMATTER_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_CAST \
+	((cls), E_TYPE_SETTINGS_MAIL_FORMATTER, ESettingsMailFormatterClass))
+#define E_IS_SETTINGS_MAIL_FORMATTER(obj) \
+	(G_TYPE_CHECK_INSTANCE_TYPE \
+	((obj), E_TYPE_SETTINGS_MAIL_FORMATTER))
+#define E_IS_SETTINGS_MAIL_FORMATTER_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_TYPE \
+	((cls), E_TYPE_SETTINGS_MAIL_FORMATTER))
+#define E_SETTINGS_MAIL_FORMATTER_GET_CLASS(obj) \
+	(G_TYPE_INSTANCE_GET_CLASS \
+	((obj), E_TYPE_SETTINGS_MAIL_FORMATTER, ESettingsMailFormatterClass))
+
+G_BEGIN_DECLS
+
+typedef struct _ESettingsMailFormatter ESettingsMailFormatter;
+typedef struct _ESettingsMailFormatterClass ESettingsMailFormatterClass;
+typedef struct _ESettingsMailFormatterPrivate ESettingsMailFormatterPrivate;
+
+struct _ESettingsMailFormatter {
+	EExtension parent;
+	ESettingsMailFormatterPrivate *priv;
+};
+
+struct _ESettingsMailFormatterClass {
+	EExtensionClass parent_class;
+};
+
+GType		e_settings_mail_formatter_get_type
+						(void) G_GNUC_CONST;
+void		e_settings_mail_formatter_type_register
+						(GTypeModule *type_module);
+
+G_END_DECLS
+
+#endif /* E_SETTINGS_MAIL_FORMATTER_H */
+
diff --git a/modules/mail/e-mail-config-reader.c b/modules/settings/e-settings-mail-reader.c
similarity index 72%
rename from modules/mail/e-mail-config-reader.c
rename to modules/settings/e-settings-mail-reader.c
index aacfbd9..9cf906f 100644
--- a/modules/mail/e-mail-config-reader.c
+++ b/modules/settings/e-settings-mail-reader.c
@@ -1,5 +1,5 @@
 /*
- * e-mail-config-reader.c
+ * e-settings-mail-reader.c
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -20,26 +20,26 @@
 #include <config.h>
 #endif
 
-#include "e-mail-config-reader.h"
+#include "e-settings-mail-reader.h"
 
 #include <shell/e-shell.h>
 #include <mail/e-mail-reader.h>
 
-#define E_MAIL_CONFIG_READER_GET_PRIVATE(obj) \
+#define E_SETTINGS_MAIL_READER_GET_PRIVATE(obj) \
 	(G_TYPE_INSTANCE_GET_PRIVATE \
-	((obj), E_TYPE_MAIL_CONFIG_READER, EMailConfigReaderPrivate))
+	((obj), E_TYPE_SETTINGS_MAIL_READER, ESettingsMailReaderPrivate))
 
-struct _EMailConfigReaderPrivate {
+struct _ESettingsMailReaderPrivate {
 	gint placeholder;
 };
 
 G_DEFINE_DYNAMIC_TYPE (
-	EMailConfigReader,
-	e_mail_config_reader,
+	ESettingsMailReader,
+	e_settings_mail_reader,
 	E_TYPE_EXTENSION)
 
 static gboolean
-mail_config_reader_idle_cb (EExtension *extension)
+settings_mail_reader_idle_cb (EExtension *extension)
 {
 	EExtensible *extensible;
 	GtkActionGroup *action_group;
@@ -81,53 +81,53 @@ mail_config_reader_idle_cb (EExtension *extension)
 }
 
 static void
-mail_config_reader_constructed (GObject *object)
+settings_mail_reader_constructed (GObject *object)
 {
 	/* Bind properties to settings from an idle callback so the
 	 * EMailReader interface has a chance to be initialized first. */
 	g_idle_add_full (
 		G_PRIORITY_DEFAULT_IDLE,
-		(GSourceFunc) mail_config_reader_idle_cb,
+		(GSourceFunc) settings_mail_reader_idle_cb,
 		g_object_ref (object),
 		(GDestroyNotify) g_object_unref);
 
 	/* Chain up to parent's constructed() method. */
-	G_OBJECT_CLASS (e_mail_config_reader_parent_class)->
+	G_OBJECT_CLASS (e_settings_mail_reader_parent_class)->
 		constructed (object);
 }
 
 static void
-e_mail_config_reader_class_init (EMailConfigReaderClass *class)
+e_settings_mail_reader_class_init (ESettingsMailReaderClass *class)
 {
 	GObjectClass *object_class;
 	EExtensionClass *extension_class;
 
-	g_type_class_add_private (class, sizeof (EMailConfigReaderPrivate));
+	g_type_class_add_private (class, sizeof (ESettingsMailReaderPrivate));
 
 	object_class = G_OBJECT_CLASS (class);
-	object_class->constructed = mail_config_reader_constructed;
+	object_class->constructed = settings_mail_reader_constructed;
 
 	extension_class = E_EXTENSION_CLASS (class);
 	extension_class->extensible_type = E_TYPE_MAIL_READER;
 }
 
 static void
-e_mail_config_reader_class_finalize (EMailConfigReaderClass *class)
+e_settings_mail_reader_class_finalize (ESettingsMailReaderClass *class)
 {
 }
 
 static void
-e_mail_config_reader_init (EMailConfigReader *extension)
+e_settings_mail_reader_init (ESettingsMailReader *extension)
 {
-	extension->priv = E_MAIL_CONFIG_READER_GET_PRIVATE (extension);
+	extension->priv = E_SETTINGS_MAIL_READER_GET_PRIVATE (extension);
 }
 
 void
-e_mail_config_reader_type_register (GTypeModule *type_module)
+e_settings_mail_reader_type_register (GTypeModule *type_module)
 {
 	/* XXX G_DEFINE_DYNAMIC_TYPE declares a static type registration
 	 *     function, so we have to wrap it with a public function in
 	 *     order to register types from a separate compilation unit. */
-	e_mail_config_reader_register_type (type_module);
+	e_settings_mail_reader_register_type (type_module);
 }
 
diff --git a/modules/settings/e-settings-mail-reader.h b/modules/settings/e-settings-mail-reader.h
new file mode 100644
index 0000000..7967923
--- /dev/null
+++ b/modules/settings/e-settings-mail-reader.h
@@ -0,0 +1,65 @@
+/*
+ * e-settings-mail-reader.h
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the program; if not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+#ifndef E_SETTINGS_MAIL_READER_H
+#define E_SETTINGS_MAIL_READER_H
+
+#include <libebackend/libebackend.h>
+
+/* Standard GObject macros */
+#define E_TYPE_SETTINGS_MAIL_READER \
+	(e_settings_mail_reader_get_type ())
+#define E_SETTINGS_MAIL_READER(obj) \
+	(G_TYPE_CHECK_INSTANCE_CAST \
+	((obj), E_TYPE_SETTINGS_MAIL_READER, ESettingsMailReader))
+#define E_SETTINGS_MAIL_READER_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_CAST \
+	((cls), E_TYPE_SETTINGS_MAIL_READER, ESettingsMailReaderClass))
+#define E_IS_SETTINGS_MAIL_READER(obj) \
+	(G_TYPE_CHECK_INSTANCE_TYPE \
+	((obj), E_TYPE_SETTINGS_MAIL_READER))
+#define E_IS_SETTINGS_MAIL_READER_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_TYPE \
+	((cls), E_TYPE_SETTINGS_MAIL_READER))
+#define E_SETTINGS_MAIL_READER_GET_CLASS(obj) \
+	(G_TYPE_INSTANCE_GET_CLASS \
+	((obj), E_TYPE_SETTINGS_MAIL_READER, ESettingsMailReaderClass))
+
+G_BEGIN_DECLS
+
+typedef struct _ESettingsMailReader ESettingsMailReader;
+typedef struct _ESettingsMailReaderClass ESettingsMailReaderClass;
+typedef struct _ESettingsMailReaderPrivate ESettingsMailReaderPrivate;
+
+struct _ESettingsMailReader {
+	EExtension parent;
+	ESettingsMailReaderPrivate *priv;
+};
+
+struct _ESettingsMailReaderClass {
+	EExtensionClass parent_class;
+};
+
+GType		e_settings_mail_reader_get_type	(void) G_GNUC_CONST;
+void		e_settings_mail_reader_type_register
+						(GTypeModule *type_module);
+
+G_END_DECLS
+
+#endif /* E_SETTINGS_MAIL_READER_H */
+
diff --git a/modules/calendar/e-cal-config-meeting-store.c b/modules/settings/e-settings-meeting-store.c
similarity index 71%
rename from modules/calendar/e-cal-config-meeting-store.c
rename to modules/settings/e-settings-meeting-store.c
index 98b59c3..433adda 100644
--- a/modules/calendar/e-cal-config-meeting-store.c
+++ b/modules/settings/e-settings-meeting-store.c
@@ -1,5 +1,5 @@
 /*
- * e-cal-config-meeting-store.c
+ * e-settings-meeting-store.c
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -20,26 +20,26 @@
 #include <config.h>
 #endif
 
-#include "e-cal-config-meeting-store.h"
+#include "e-settings-meeting-store.h"
 
 #include <shell/e-shell.h>
 #include <calendar/gui/e-meeting-store.h>
 
-#define E_CAL_CONFIG_MEETING_STORE_GET_PRIVATE(obj) \
+#define E_SETTINGS_MEETING_STORE_GET_PRIVATE(obj) \
 	(G_TYPE_INSTANCE_GET_PRIVATE \
-	((obj), E_TYPE_CAL_CONFIG_MEETING_STORE, ECalConfigMeetingStorePrivate))
+	((obj), E_TYPE_SETTINGS_MEETING_STORE, ESettingsMeetingStorePrivate))
 
-struct _ECalConfigMeetingStorePrivate {
+struct _ESettingsMeetingStorePrivate {
 	gint placeholder;
 };
 
 G_DEFINE_DYNAMIC_TYPE (
-	ECalConfigMeetingStore,
-	e_cal_config_meeting_store,
+	ESettingsMeetingStore,
+	e_settings_meeting_store,
 	E_TYPE_EXTENSION)
 
 static void
-cal_config_meeting_store_constructed (GObject *object)
+settings_meeting_store_constructed (GObject *object)
 {
 	EExtension *extension;
 	EExtensible *extensible;
@@ -78,43 +78,43 @@ cal_config_meeting_store_constructed (GObject *object)
 		G_BINDING_SYNC_CREATE);
 
 	/* Chain up to parent's constructed() method. */
-	G_OBJECT_CLASS (e_cal_config_meeting_store_parent_class)->
+	G_OBJECT_CLASS (e_settings_meeting_store_parent_class)->
 		constructed (object);
 }
 
 static void
-e_cal_config_meeting_store_class_init (ECalConfigMeetingStoreClass *class)
+e_settings_meeting_store_class_init (ESettingsMeetingStoreClass *class)
 {
 	GObjectClass *object_class;
 	EExtensionClass *extension_class;
 
 	g_type_class_add_private (
-		class, sizeof (ECalConfigMeetingStorePrivate));
+		class, sizeof (ESettingsMeetingStorePrivate));
 
 	object_class = G_OBJECT_CLASS (class);
-	object_class->constructed = cal_config_meeting_store_constructed;
+	object_class->constructed = settings_meeting_store_constructed;
 
 	extension_class = E_EXTENSION_CLASS (class);
 	extension_class->extensible_type = E_TYPE_MEETING_STORE;
 }
 
 static void
-e_cal_config_meeting_store_class_finalize (ECalConfigMeetingStoreClass *class)
+e_settings_meeting_store_class_finalize (ESettingsMeetingStoreClass *class)
 {
 }
 
 static void
-e_cal_config_meeting_store_init (ECalConfigMeetingStore *extension)
+e_settings_meeting_store_init (ESettingsMeetingStore *extension)
 {
-	extension->priv = E_CAL_CONFIG_MEETING_STORE_GET_PRIVATE (extension);
+	extension->priv = E_SETTINGS_MEETING_STORE_GET_PRIVATE (extension);
 }
 
 void
-e_cal_config_meeting_store_type_register (GTypeModule *type_module)
+e_settings_meeting_store_type_register (GTypeModule *type_module)
 {
 	/* XXX G_DEFINE_DYNAMIC_TYPE declares a static type registration
 	 *     function, so we have to wrap it with a public function in
 	 *     order to register types from a separate compilation unit. */
-	e_cal_config_meeting_store_register_type (type_module);
+	e_settings_meeting_store_register_type (type_module);
 }
 
diff --git a/modules/settings/e-settings-meeting-store.h b/modules/settings/e-settings-meeting-store.h
new file mode 100644
index 0000000..f942f55
--- /dev/null
+++ b/modules/settings/e-settings-meeting-store.h
@@ -0,0 +1,65 @@
+/*
+ * e-settings-meeting-store.h
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the program; if not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+#ifndef E_SETTINGS_MEETING_STORE_H
+#define E_SETTINGS_MEETING_STORE_H
+
+#include <libebackend/libebackend.h>
+
+/* Standard GObject macros */
+#define E_TYPE_SETTINGS_MEETING_STORE \
+	(e_settings_meeting_store_get_type ())
+#define E_SETTINGS_MEETING_STORE(obj) \
+	(G_TYPE_CHECK_INSTANCE_CAST \
+	((obj), E_TYPE_SETTINGS_MEETING_STORE, ESettingsMeetingStore))
+#define E_SETTINGS_MEETING_STORE_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_CAST \
+	((cls), E_TYPE_SETTINGS_MEETING_STORE, ESettingsMeetingStoreClass))
+#define E_IS_SETTINGS_MEETING_STORE(obj) \
+	(G_TYPE_CHECK_INSTANCE_TYPE \
+	((obj), E_TYPE_SETTINGS_MEETING_STORE))
+#define E_IS_SETTINGS_MEETING_STORE_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_TYPE \
+	((cls), E_TYPE_SETTINGS_MEETING_STORE))
+#define E_SETTINGS_MEETING_STORE_GET_CLASS(obj) \
+	(G_TYPE_INSTANCE_GET_CLASS \
+	((obj), E_TYPE_CaL_CONFIG_MEETING_STORE, ESettingsMeetingStoreClass))
+
+G_BEGIN_DECLS
+
+typedef struct _ESettingsMeetingStore ESettingsMeetingStore;
+typedef struct _ESettingsMeetingStoreClass ESettingsMeetingStoreClass;
+typedef struct _ESettingsMeetingStorePrivate ESettingsMeetingStorePrivate;
+
+struct _ESettingsMeetingStore {
+	EExtension parent;
+	ESettingsMeetingStorePrivate *priv;
+};
+
+struct _ESettingsMeetingStoreClass {
+	EExtensionClass parent_class;
+};
+
+GType		e_settings_meeting_store_get_type
+						(void) G_GNUC_CONST;
+void		e_settings_meeting_store_type_register
+						(GTypeModule *type_module);
+
+G_END_DECLS
+
+#endif /* E_SETTINGS_MEETING_STORE_H */
diff --git a/modules/calendar/e-cal-config-meeting-time-selector.c b/modules/settings/e-settings-meeting-time-selector.c
similarity index 66%
rename from modules/calendar/e-cal-config-meeting-time-selector.c
rename to modules/settings/e-settings-meeting-time-selector.c
index 3877067..50a5694 100644
--- a/modules/calendar/e-cal-config-meeting-time-selector.c
+++ b/modules/settings/e-settings-meeting-time-selector.c
@@ -1,5 +1,5 @@
 /*
- * e-cal-config-meeting-time-selector.c
+ * e-settings-meeting-time-selector.c
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -20,26 +20,26 @@
 #include <config.h>
 #endif
 
-#include "e-cal-config-meeting-time-selector.h"
+#include "e-settings-meeting-time-selector.h"
 
 #include <shell/e-shell.h>
 #include <calendar/gui/e-meeting-time-sel.h>
 
-#define E_CAL_CONFIG_MEETING_TIME_SELECTOR_GET_PRIVATE(obj) \
+#define E_SETTINGS_MEETING_TIME_SELECTOR_GET_PRIVATE(obj) \
 	(G_TYPE_INSTANCE_GET_PRIVATE \
-	((obj), E_TYPE_CAL_CONFIG_MEETING_TIME_SELECTOR, ECalConfigMeetingTimeSelectorPrivate))
+	((obj), E_TYPE_SETTINGS_MEETING_TIME_SELECTOR, ESettingsMeetingTimeSelectorPrivate))
 
-struct _ECalConfigMeetingTimeSelectorPrivate {
+struct _ESettingsMeetingTimeSelectorPrivate {
 	gint placeholder;
 };
 
 G_DEFINE_DYNAMIC_TYPE (
-	ECalConfigMeetingTimeSelector,
-	e_cal_config_meeting_time_selector,
+	ESettingsMeetingTimeSelector,
+	e_settings_meeting_time_selector,
 	E_TYPE_EXTENSION)
 
 static void
-cal_config_meeting_time_selector_constructed (GObject *object)
+settings_meeting_time_selector_constructed (GObject *object)
 {
 	EExtension *extension;
 	EExtensible *extensible;
@@ -68,44 +68,44 @@ cal_config_meeting_time_selector_constructed (GObject *object)
 		G_BINDING_SYNC_CREATE);
 
 	/* Chain up to parent's constructed() method. */
-	G_OBJECT_CLASS (e_cal_config_meeting_time_selector_parent_class)->
+	G_OBJECT_CLASS (e_settings_meeting_time_selector_parent_class)->
 		constructed (object);
 }
 
 static void
-e_cal_config_meeting_time_selector_class_init (ECalConfigMeetingTimeSelectorClass *class)
+e_settings_meeting_time_selector_class_init (ESettingsMeetingTimeSelectorClass *class)
 {
 	GObjectClass *object_class;
 	EExtensionClass *extension_class;
 
 	g_type_class_add_private (
-		class, sizeof (ECalConfigMeetingTimeSelectorPrivate));
+		class, sizeof (ESettingsMeetingTimeSelectorPrivate));
 
 	object_class = G_OBJECT_CLASS (class);
-	object_class->constructed = cal_config_meeting_time_selector_constructed;
+	object_class->constructed = settings_meeting_time_selector_constructed;
 
 	extension_class = E_EXTENSION_CLASS (class);
 	extension_class->extensible_type = E_TYPE_MEETING_TIME_SELECTOR;
 }
 
 static void
-e_cal_config_meeting_time_selector_class_finalize (ECalConfigMeetingTimeSelectorClass *class)
+e_settings_meeting_time_selector_class_finalize (ESettingsMeetingTimeSelectorClass *class)
 {
 }
 
 static void
-e_cal_config_meeting_time_selector_init (ECalConfigMeetingTimeSelector *extension)
+e_settings_meeting_time_selector_init (ESettingsMeetingTimeSelector *extension)
 {
 	extension->priv =
-		E_CAL_CONFIG_MEETING_TIME_SELECTOR_GET_PRIVATE (extension);
+		E_SETTINGS_MEETING_TIME_SELECTOR_GET_PRIVATE (extension);
 }
 
 void
-e_cal_config_meeting_time_selector_type_register (GTypeModule *type_module)
+e_settings_meeting_time_selector_type_register (GTypeModule *type_module)
 {
 	/* XXX G_DEFINE_DYNAMIC_TYPE declares a static type registration
 	 *     function, so we have to wrap it with a public function in
 	 *     order to register types from a separate compilation unit. */
-	e_cal_config_meeting_time_selector_register_type (type_module);
+	e_settings_meeting_time_selector_register_type (type_module);
 }
 
diff --git a/modules/settings/e-settings-meeting-time-selector.h b/modules/settings/e-settings-meeting-time-selector.h
new file mode 100644
index 0000000..1317fcf
--- /dev/null
+++ b/modules/settings/e-settings-meeting-time-selector.h
@@ -0,0 +1,66 @@
+/*
+ * e-settings-meeting-time-selector.h
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the program; if not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+#ifndef E_SETTINGS_MEETING_TIME_SELECTOR_H
+#define E_SETTINGS_MEETING_TIME_SELECTOR_H
+
+#include <libebackend/libebackend.h>
+
+/* Standard GObject macros */
+#define E_TYPE_SETTINGS_MEETING_TIME_SELECTOR \
+	(e_settings_meeting_time_selector_get_type ())
+#define E_SETTINGS_MEETING_TIME_SELECTOR(obj) \
+	(G_TYPE_CHECK_INSTANCE_CAST \
+	((obj), E_TYPE_SETTINGS_MEETING_TIME_SELECTOR, ESettingsMeetingTimeSelector))
+#define E_SETTINGS_MEETING_TIME_SELECTOR_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_CAST \
+	((cls), E_TYPE_SETTINGS_MEETING_TIME_SELECTOR, ESettingsMeetingTimeSelectorClass))
+#define E_IS_SETTINGS_MEETING_TIME_SELECTOR(obj) \
+	(G_TYPE_CHECK_INSTANCE_TYPE \
+	((obj), E_TYPE_SETTINGS_MEETING_TIME_SELECTOR))
+#define E_IS_SETTINGS_MEETING_TIME_SELECTOR_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_TYPE \
+	((cls), E_TYPE_SETTINGS_MEETING_TIME_SELECTOR))
+#define E_SETTINGS_MEETING_TIME_SELECTOR_GET_CLASS(obj) \
+	(G_TYPE_INSTANCE_GET_CLASS \
+	((obj), E_TYPE_SETTINGS_MEETING_TIME_SELECTOR, ESettingsMeetingTimeSelectorClass))
+
+G_BEGIN_DECLS
+
+typedef struct _ESettingsMeetingTimeSelector ESettingsMeetingTimeSelector;
+typedef struct _ESettingsMeetingTimeSelectorClass ESettingsMeetingTimeSelectorClass;
+typedef struct _ESettingsMeetingTimeSelectorPrivate ESettingsMeetingTimeSelectorPrivate;
+
+struct _ESettingsMeetingTimeSelector {
+	EExtension parent;
+	ESettingsMeetingTimeSelectorPrivate *priv;
+};
+
+struct _ESettingsMeetingTimeSelectorClass {
+	EExtensionClass parent_class;
+};
+
+GType		e_settings_meeting_time_selector_get_type
+						(void) G_GNUC_CONST;
+void		e_settings_meeting_time_selector_type_register
+						(GTypeModule *type_module);
+
+G_END_DECLS
+
+#endif /* E_SETTINGS_MEETING_TIME_SELECTOR_H */
+
diff --git a/modules/addressbook/e-book-config-name-selector-entry.c b/modules/settings/e-settings-name-selector-entry.c
similarity index 56%
rename from modules/addressbook/e-book-config-name-selector-entry.c
rename to modules/settings/e-settings-name-selector-entry.c
index acc38a7..799a796 100644
--- a/modules/addressbook/e-book-config-name-selector-entry.c
+++ b/modules/settings/e-settings-name-selector-entry.c
@@ -1,5 +1,5 @@
 /*
- * e-book-config-name-selector-entry.c
+ * e-settings-name-selector-entry.c
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -20,29 +20,29 @@
 #include <config.h>
 #endif
 
-#include "e-book-config-name-selector-entry.h"
+#include "e-settings-name-selector-entry.h"
 
 #include <e-util/e-util.h>
 
-#define E_BOOK_CONFIG_NAME_SELECTOR_ENTRY_GET_PRIVATE(obj) \
+#define E_SETTINGS_NAME_SELECTOR_ENTRY_GET_PRIVATE(obj) \
 	(G_TYPE_INSTANCE_GET_PRIVATE \
-	((obj), E_TYPE_BOOK_CONFIG_NAME_SELECTOR_ENTRY, EBookConfigNameSelectorEntryPrivate))
+	((obj), E_TYPE_SETTINGS_NAME_SELECTOR_ENTRY, ESettingsNameSelectorEntryPrivate))
 
-struct _EBookConfigNameSelectorEntryPrivate {
+struct _ESettingsNameSelectorEntryPrivate {
 	GSettings *settings;
 };
 
 G_DEFINE_DYNAMIC_TYPE (
-	EBookConfigNameSelectorEntry,
-	e_book_config_name_selector_entry,
+	ESettingsNameSelectorEntry,
+	e_settings_name_selector_entry,
 	E_TYPE_EXTENSION)
 
 static void
-book_config_name_selector_entry_dispose (GObject *object)
+settings_name_selector_entry_dispose (GObject *object)
 {
-	EBookConfigNameSelectorEntryPrivate *priv;
+	ESettingsNameSelectorEntryPrivate *priv;
 
-	priv = E_BOOK_CONFIG_NAME_SELECTOR_ENTRY_GET_PRIVATE (object);
+	priv = E_SETTINGS_NAME_SELECTOR_ENTRY_GET_PRIVATE (object);
 
 	if (priv->settings != NULL) {
 		g_object_unref (priv->settings);
@@ -50,71 +50,73 @@ book_config_name_selector_entry_dispose (GObject *object)
 	}
 
 	/* Chain up to parent's dispose() method. */
-	G_OBJECT_CLASS (e_book_config_name_selector_entry_parent_class)->
+	G_OBJECT_CLASS (e_settings_name_selector_entry_parent_class)->
 		dispose (object);
 }
 
 static void
-book_config_name_selector_entry_constructed (GObject *object)
+settings_name_selector_entry_constructed (GObject *object)
 {
-	EBookConfigNameSelectorEntry *extension;
+	ESettingsNameSelectorEntry *extension;
 	EExtensible *extensible;
 
-	extension = E_BOOK_CONFIG_NAME_SELECTOR_ENTRY (object);
+	extension = E_SETTINGS_NAME_SELECTOR_ENTRY (object);
 	extensible = e_extension_get_extensible (E_EXTENSION (extension));
 
 	/* Chain up to parent's consturcted() method. */
-	G_OBJECT_CLASS (e_book_config_name_selector_entry_parent_class)->
+	G_OBJECT_CLASS (e_settings_name_selector_entry_parent_class)->
 		constructed (object);
 
 	g_settings_bind (
 		extension->priv->settings, "completion-minimum-query-length",
 		extensible, "minimum-query-length",
-		G_SETTINGS_BIND_DEFAULT | G_SETTINGS_BIND_NO_SENSITIVITY);
+		G_SETTINGS_BIND_DEFAULT |
+		G_SETTINGS_BIND_NO_SENSITIVITY);
 
 	g_settings_bind (
 		extension->priv->settings, "completion-show-address",
 		extensible, "show-address",
-		G_SETTINGS_BIND_DEFAULT | G_SETTINGS_BIND_NO_SENSITIVITY);
+		G_SETTINGS_BIND_DEFAULT |
+		G_SETTINGS_BIND_NO_SENSITIVITY);
 }
 
 static void
-e_book_config_name_selector_entry_class_init (EBookConfigNameSelectorEntryClass *class)
+e_settings_name_selector_entry_class_init (ESettingsNameSelectorEntryClass *class)
 {
 	GObjectClass *object_class;
 	EExtensionClass *extension_class;
 
 	g_type_class_add_private (
-		class, sizeof (EBookConfigNameSelectorEntryPrivate));
+		class, sizeof (ESettingsNameSelectorEntryPrivate));
 
 	object_class = G_OBJECT_CLASS (class);
-	object_class->dispose = book_config_name_selector_entry_dispose;
-	object_class->constructed = book_config_name_selector_entry_constructed;
+	object_class->dispose = settings_name_selector_entry_dispose;
+	object_class->constructed = settings_name_selector_entry_constructed;
 
 	extension_class = E_EXTENSION_CLASS (class);
 	extension_class->extensible_type = E_TYPE_NAME_SELECTOR_ENTRY;
 }
 
 static void
-e_book_config_name_selector_entry_class_finalize (EBookConfigNameSelectorEntryClass *class)
+e_settings_name_selector_entry_class_finalize (ESettingsNameSelectorEntryClass *class)
 {
 }
 
 static void
-e_book_config_name_selector_entry_init (EBookConfigNameSelectorEntry *extension)
+e_settings_name_selector_entry_init (ESettingsNameSelectorEntry *extension)
 {
 	extension->priv =
-		E_BOOK_CONFIG_NAME_SELECTOR_ENTRY_GET_PRIVATE (extension);
+		E_SETTINGS_NAME_SELECTOR_ENTRY_GET_PRIVATE (extension);
 	extension->priv->settings =
 		g_settings_new ("org.gnome.evolution.addressbook");
 }
 
 void
-e_book_config_name_selector_entry_type_register (GTypeModule *type_module)
+e_settings_name_selector_entry_type_register (GTypeModule *type_module)
 {
 	/* XXX G_DEFINE_DYNAMIC_TYPE declares a static type registration
 	 *     function, so we have to wrap it with a public function in
 	 *     order to register types from a separate compilation unit. */
-	e_book_config_name_selector_entry_register_type (type_module);
+	e_settings_name_selector_entry_register_type (type_module);
 }
 
diff --git a/modules/settings/e-settings-name-selector-entry.h b/modules/settings/e-settings-name-selector-entry.h
new file mode 100644
index 0000000..d1d27bb
--- /dev/null
+++ b/modules/settings/e-settings-name-selector-entry.h
@@ -0,0 +1,66 @@
+/*
+ * e-settings-name-selector-entry.h
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the program; if not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+#ifndef E_SETTINGS_NAME_SELECTOR_ENTRY_H
+#define E_SETTINGS_NAME_SELECTOR_ENTRY_H
+
+#include <libebackend/libebackend.h>
+
+/* Standard GObject macros */
+#define E_TYPE_SETTINGS_NAME_SELECTOR_ENTRY \
+	(e_settings_name_selector_entry_get_type ())
+#define E_SETTINGS_NAME_SELECTOR_ENTRY(obj) \
+	(G_TYPE_CHECK_INSTANCE_CAST \
+	((obj), E_TYPE_SETTINGS_NAME_SELECTOR_ENTRY, ESettingsNameSelectorEntry))
+#define E_SETTINGS_NAME_SELECTOR_ENTRY_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_CAST \
+	((cls), E_TYPE_SETTINGS_NAME_SELECTOR_ENTRY, ESettingsNameSelectorEntryClass))
+#define E_IS_SETTINGS_NAME_SELECTOR_ENTRY(obj) \
+	(G_TYPE_CHECK_INSTANCE_TYPE \
+	((obj), E_TYPE_SETTINGS_NAME_SELECTOR_ENTRY))
+#define E_IS_SETTINGS_NAME_SELECTOR_ENTRY_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_TYPE \
+	((cls), E_TYPE_SETTINGS_NAME_SELECTOR_ENTRY))
+#define E_SETTINGS_NAME_SELECTOR_ENTRY_GET_CLASS(obj) \
+	(G_TYPE_INSTANCE_GET_CLASS \
+	((obj), E_TYPE_SETTINGS_NAME_SELECTOR_ENTRY, ESettingsNameSelectorEntryClass))
+
+G_BEGIN_DECLS
+
+typedef struct _ESettingsNameSelectorEntry ESettingsNameSelectorEntry;
+typedef struct _ESettingsNameSelectorEntryClass ESettingsNameSelectorEntryClass;
+typedef struct _ESettingsNameSelectorEntryPrivate ESettingsNameSelectorEntryPrivate;
+
+struct _ESettingsNameSelectorEntry {
+	EExtension parent;
+	ESettingsNameSelectorEntryPrivate *priv;
+};
+
+struct _ESettingsNameSelectorEntryClass {
+	EExtensionClass parent_class;
+};
+
+GType		e_settings_name_selector_entry_get_type
+						(void) G_GNUC_CONST;
+void		e_settings_name_selector_entry_type_register
+						(GTypeModule *type_module);
+
+G_END_DECLS
+
+#endif /* E_SETTINGS_NAME_SELECTOR_ENTRY_H */
+
diff --git a/modules/mail/e-mail-config-web-view-gtkhtml.c b/modules/settings/e-settings-web-view-gtkhtml.c
similarity index 73%
rename from modules/mail/e-mail-config-web-view-gtkhtml.c
rename to modules/settings/e-settings-web-view-gtkhtml.c
index 40360d4..49e8112 100644
--- a/modules/mail/e-mail-config-web-view-gtkhtml.c
+++ b/modules/settings/e-settings-web-view-gtkhtml.c
@@ -1,5 +1,5 @@
 /*
- * e-mail-config-web-view.c
+ * e-settings-web-view-gtkhtml.c
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -23,27 +23,27 @@
 #include <stdio.h>
 #include <string.h>
 
-#include "e-mail-config-web-view-gtkhtml.h"
+#include "e-settings-web-view-gtkhtml.h"
 
 #include <shell/e-shell.h>
 
-#define E_MAIL_CONFIG_WEB_VIEW_GTKHTML_GET_PRIVATE(obj) \
+#define E_SETTINGS_WEB_VIEW_GTKHTML_GET_PRIVATE(obj) \
 	(G_TYPE_INSTANCE_GET_PRIVATE \
-	((obj), E_TYPE_MAIL_CONFIG_WEB_VIEW_GTKHTML, EMailConfigWebViewGtkHTMLPrivate))
+	((obj), E_TYPE_SETTINGS_WEB_VIEW_GTKHTML, ESettingsWebViewGtkHTMLPrivate))
 
-struct _EMailConfigWebViewGtkHTMLPrivate {
+struct _ESettingsWebViewGtkHTMLPrivate {
 	GtkCssProvider *css_provider;
 	EShellSettings *shell_settings;
 };
 
 G_DEFINE_DYNAMIC_TYPE (
-	EMailConfigWebViewGtkHTML,
-	e_mail_config_web_view_gtkhtml,
+	ESettingsWebViewGtkHTML,
+	e_settings_web_view_gtkhtml,
 	E_TYPE_EXTENSION)
 
 /* replaces content of color string */
 static void
-mail_config_web_view_gtkhtml_fix_color_string (gchar *color_string)
+settings_web_view_gtkhtml_fix_color_string (gchar *color_string)
 {
 	GdkColor color;
 
@@ -64,7 +64,7 @@ mail_config_web_view_gtkhtml_fix_color_string (gchar *color_string)
 }
 
 static void
-mail_config_web_view_gtkhtml_load_style (EMailConfigWebViewGtkHTML *extension)
+settings_web_view_gtkhtml_load_style (ESettingsWebViewGtkHTML *extension)
 {
 	GString *buffer;
 	gchar *citation_color;
@@ -104,8 +104,8 @@ mail_config_web_view_gtkhtml_load_style (EMailConfigWebViewGtkHTML *extension)
 
 	buffer = g_string_new ("EWebViewGtkHTML {\n");
 
-	mail_config_web_view_gtkhtml_fix_color_string (citation_color);
-	mail_config_web_view_gtkhtml_fix_color_string (spell_color);
+	settings_web_view_gtkhtml_fix_color_string (citation_color);
+	settings_web_view_gtkhtml_fix_color_string (spell_color);
 
 	if (custom_fonts && variable_font != NULL)
 		g_string_append_printf (
@@ -150,8 +150,8 @@ mail_config_web_view_gtkhtml_load_style (EMailConfigWebViewGtkHTML *extension)
 }
 
 static void
-mail_config_web_view_gtkhtml_realize (GtkWidget *widget,
-                                      EMailConfigWebViewGtkHTML *extension)
+settings_web_view_gtkhtml_realize (GtkWidget *widget,
+                                   ESettingsWebViewGtkHTML *extension)
 {
 	EShellSettings *shell_settings;
 
@@ -177,47 +177,47 @@ mail_config_web_view_gtkhtml_realize (GtkWidget *widget,
 		GTK_STYLE_PROVIDER (extension->priv->css_provider),
 		GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
 
-	mail_config_web_view_gtkhtml_load_style (extension);
+	settings_web_view_gtkhtml_load_style (extension);
 
 	/* Reload the style sheet when certain settings change. */
 
 	g_signal_connect_swapped (
 		shell_settings, "notify::mail-use-custom-fonts",
-		G_CALLBACK (mail_config_web_view_gtkhtml_load_style),
+		G_CALLBACK (settings_web_view_gtkhtml_load_style),
 		extension);
 
 	g_signal_connect_swapped (
 		shell_settings, "notify::mail-font-monospace",
-		G_CALLBACK (mail_config_web_view_gtkhtml_load_style),
+		G_CALLBACK (settings_web_view_gtkhtml_load_style),
 		extension);
 
 	g_signal_connect_swapped (
 		shell_settings, "notify::mail-font-variable",
-		G_CALLBACK (mail_config_web_view_gtkhtml_load_style),
+		G_CALLBACK (settings_web_view_gtkhtml_load_style),
 		extension);
 
 	g_signal_connect_swapped (
 		shell_settings, "notify::mail-mark-citations",
-		G_CALLBACK (mail_config_web_view_gtkhtml_load_style),
+		G_CALLBACK (settings_web_view_gtkhtml_load_style),
 		extension);
 
 	g_signal_connect_swapped (
 		shell_settings, "notify::mail-citation-color",
-		G_CALLBACK (mail_config_web_view_gtkhtml_load_style),
+		G_CALLBACK (settings_web_view_gtkhtml_load_style),
 		extension);
 
 	g_signal_connect_swapped (
 		shell_settings, "notify::composer-spell-color",
-		G_CALLBACK (mail_config_web_view_gtkhtml_load_style),
+		G_CALLBACK (settings_web_view_gtkhtml_load_style),
 		extension);
 }
 
 static void
-mail_config_web_view_gtkhtml_dispose (GObject *object)
+settings_web_view_gtkhtml_dispose (GObject *object)
 {
-	EMailConfigWebViewGtkHTMLPrivate *priv;
+	ESettingsWebViewGtkHTMLPrivate *priv;
 
-	priv = E_MAIL_CONFIG_WEB_VIEW_GTKHTML_GET_PRIVATE (object);
+	priv = E_SETTINGS_WEB_VIEW_GTKHTML_GET_PRIVATE (object);
 
 	if (priv->css_provider != NULL) {
 		g_object_unref (priv->css_provider);
@@ -227,28 +227,28 @@ mail_config_web_view_gtkhtml_dispose (GObject *object)
 	if (priv->shell_settings != NULL) {
 		g_signal_handlers_disconnect_by_func (
 			priv->shell_settings,
-			mail_config_web_view_gtkhtml_load_style, object);
+			settings_web_view_gtkhtml_load_style, object);
 		g_object_unref (priv->shell_settings);
 		priv->shell_settings = NULL;
 	}
 
 	/* Chain up to parent's dispose() method. */
-	G_OBJECT_CLASS (e_mail_config_web_view_gtkhtml_parent_class)->
+	G_OBJECT_CLASS (e_settings_web_view_gtkhtml_parent_class)->
 		dispose (object);
 }
 
 static void
-mail_config_web_view_gtkhtml_constructed (GObject *object)
+settings_web_view_gtkhtml_constructed (GObject *object)
 {
 	EShell *shell;
 	EShellSettings *shell_settings;
-	EMailConfigWebViewGtkHTML *extension;
+	ESettingsWebViewGtkHTML *extension;
 	EExtensible *extensible;
 
 	shell = e_shell_get_default ();
 	shell_settings = e_shell_get_shell_settings (shell);
 
-	extension = (EMailConfigWebViewGtkHTML *) object;
+	extension = (ESettingsWebViewGtkHTML *) object;
 	extensible = e_extension_get_extensible (E_EXTENSION (extension));
 
 	extension->priv->css_provider = gtk_css_provider_new ();
@@ -260,48 +260,48 @@ mail_config_web_view_gtkhtml_constructed (GObject *object)
 
 	g_signal_connect (
 		extensible, "realize",
-		G_CALLBACK (mail_config_web_view_gtkhtml_realize), extension);
+		G_CALLBACK (settings_web_view_gtkhtml_realize), extension);
 
 	/* Chain up to parent's constructed() method. */
-	G_OBJECT_CLASS (e_mail_config_web_view_gtkhtml_parent_class)->
+	G_OBJECT_CLASS (e_settings_web_view_gtkhtml_parent_class)->
 		constructed (object);
 }
 
 static void
-e_mail_config_web_view_gtkhtml_class_init (EMailConfigWebViewGtkHTMLClass *class)
+e_settings_web_view_gtkhtml_class_init (ESettingsWebViewGtkHTMLClass *class)
 {
 	GObjectClass *object_class;
 	EExtensionClass *extension_class;
 
 	g_type_class_add_private (
-		class, sizeof (EMailConfigWebViewGtkHTMLPrivate));
+		class, sizeof (ESettingsWebViewGtkHTMLPrivate));
 
 	object_class = G_OBJECT_CLASS (class);
-	object_class->dispose = mail_config_web_view_gtkhtml_dispose;
-	object_class->constructed = mail_config_web_view_gtkhtml_constructed;
+	object_class->dispose = settings_web_view_gtkhtml_dispose;
+	object_class->constructed = settings_web_view_gtkhtml_constructed;
 
 	extension_class = E_EXTENSION_CLASS (class);
 	extension_class->extensible_type = E_TYPE_WEB_VIEW_GTKHTML;
 }
 
 static void
-e_mail_config_web_view_gtkhtml_class_finalize (EMailConfigWebViewGtkHTMLClass *class)
+e_settings_web_view_gtkhtml_class_finalize (ESettingsWebViewGtkHTMLClass *class)
 {
 }
 
 static void
-e_mail_config_web_view_gtkhtml_init (EMailConfigWebViewGtkHTML *extension)
+e_settings_web_view_gtkhtml_init (ESettingsWebViewGtkHTML *extension)
 {
 	extension->priv =
-		E_MAIL_CONFIG_WEB_VIEW_GTKHTML_GET_PRIVATE (extension);
+		E_SETTINGS_WEB_VIEW_GTKHTML_GET_PRIVATE (extension);
 }
 
 void
-e_mail_config_web_view_gtkhtml_type_register (GTypeModule *type_module)
+e_settings_web_view_gtkhtml_type_register (GTypeModule *type_module)
 {
 	/* XXX G_DEFINE_DYNAMIC_TYPE declares a static type registration
 	 *     function, so we have to wrap it with a public function in
 	 *     order to register types from a separate compilation unit. */
-	e_mail_config_web_view_gtkhtml_register_type (type_module);
+	e_settings_web_view_gtkhtml_register_type (type_module);
 }
 
diff --git a/modules/settings/e-settings-web-view-gtkhtml.h b/modules/settings/e-settings-web-view-gtkhtml.h
new file mode 100644
index 0000000..d8075f8
--- /dev/null
+++ b/modules/settings/e-settings-web-view-gtkhtml.h
@@ -0,0 +1,65 @@
+/*
+ * e-settings-web-view-gtkhtml.h
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the program; if not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+#ifndef E_SETTINGS_WEB_VIEW_GTKHTML_H
+#define E_SETTINGS_WEB_VIEW_GTKHTML_H
+
+#include <libebackend/libebackend.h>
+
+/* Standard GObject macros */
+#define E_TYPE_SETTINGS_WEB_VIEW_GTKHTML \
+	(e_settings_web_view_gtkhtml_get_type ())
+#define E_SETTINGS_WEB_VIEW_GTKHTML(obj) \
+	(G_TYPE_CHECK_INSTANCE_CAST \
+	((obj), E_TYPE_SETTINGS_WEB_VIEW_GTKHTML, ESettingsWebViewGtkHTML))
+#define E_SETTINGS_WEB_VIEW_GTKHTML_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_CAST \
+	((cls), E_TYPE_SETTINGS_WEB_VIEW_GTKHTML, ESettingsWebViewGtkHTMLClass))
+#define E_IS_SETTINGS_WEB_VIEW_GTKHTML(obj) \
+	(G_TYPE_CHECK_INSTANCE_TYPE \
+	((obj), E_TYPE_SETTINGS_WEB_VIEW_GTKHTML))
+#define E_IS_SETTINGS_WEB_VIEW_GTKHTML_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_TYPE \
+	((cls), E_TYPE_SETTINGS_WEB_VIEW_GTKHTML))
+#define E_SETTINGS_WEB_VIEW_GTKHTML_GET_CLASS(obj) \
+	(G_TYPE_INSTANCE_GET_CLASS \
+	((obj), E_TYPE_SETTINGS_WEB_VIEW_GTKHTML, ESettingsWebViewGtkHTMLClass))
+
+G_BEGIN_DECLS
+
+typedef struct _ESettingsWebViewGtkHTML ESettingsWebViewGtkHTML;
+typedef struct _ESettingsWebViewGtkHTMLClass ESettingsWebViewGtkHTMLClass;
+typedef struct _ESettingsWebViewGtkHTMLPrivate ESettingsWebViewGtkHTMLPrivate;
+
+struct _ESettingsWebViewGtkHTML {
+	EExtension parent;
+	ESettingsWebViewGtkHTMLPrivate *priv;
+};
+
+struct _ESettingsWebViewGtkHTMLClass {
+	EExtensionClass parent_class;
+};
+
+GType		e_settings_web_view_gtkhtml_get_type
+						(void) G_GNUC_CONST;
+void		e_settings_web_view_gtkhtml_type_register
+						(GTypeModule *type_module);
+
+G_END_DECLS
+
+#endif /* E_SETTINGS_WEB_VIEW_GTKHTML_H */
diff --git a/modules/mail/e-mail-config-web-view.c b/modules/settings/e-settings-web-view.c
similarity index 70%
rename from modules/mail/e-mail-config-web-view.c
rename to modules/settings/e-settings-web-view.c
index 5d2fb92..c8da19f 100644
--- a/modules/mail/e-mail-config-web-view.c
+++ b/modules/settings/e-settings-web-view.c
@@ -1,5 +1,5 @@
 /*
- * e-mail-config-web-view.c
+ * e-settings-web-view.c
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -23,25 +23,25 @@
 #include <stdio.h>
 #include <string.h>
 
-#include "e-mail-config-web-view.h"
+#include "e-settings-web-view.h"
 
 #include <shell/e-shell.h>
 
-#define E_MAIL_CONFIG_WEB_VIEW_GET_PRIVATE(obj) \
+#define E_SETTINGS_WEB_VIEW_GET_PRIVATE(obj) \
 	(G_TYPE_INSTANCE_GET_PRIVATE \
-	((obj), E_TYPE_MAIL_CONFIG_WEB_VIEW, EMailConfigWebViewPrivate))
+	((obj), E_TYPE_SETTINGS_WEB_VIEW, ESettingsWebViewPrivate))
 
-struct _EMailConfigWebViewPrivate {
+struct _ESettingsWebViewPrivate {
 	gint placeholder;
 };
 
 G_DEFINE_DYNAMIC_TYPE (
-	EMailConfigWebView,
-	e_mail_config_web_view,
+	ESettingsWebView,
+	e_settings_web_view,
 	E_TYPE_EXTENSION)
 
 static void
-mail_config_web_view_constructed (GObject *object)
+settings_web_view_constructed (GObject *object)
 {
 	EShell *shell;
 	EShellSettings *shell_settings;
@@ -68,42 +68,42 @@ mail_config_web_view_constructed (GObject *object)
 		G_BINDING_SYNC_CREATE);
 
 	/* Chain up to parent's constructed() method. */
-	G_OBJECT_CLASS (e_mail_config_web_view_parent_class)->
+	G_OBJECT_CLASS (e_settings_web_view_parent_class)->
 		constructed (object);
 }
 
 static void
-e_mail_config_web_view_class_init (EMailConfigWebViewClass *class)
+e_settings_web_view_class_init (ESettingsWebViewClass *class)
 {
 	GObjectClass *object_class;
 	EExtensionClass *extension_class;
 
-	g_type_class_add_private (class, sizeof (EMailConfigWebViewPrivate));
+	g_type_class_add_private (class, sizeof (ESettingsWebViewPrivate));
 
 	object_class = G_OBJECT_CLASS (class);
-	object_class->constructed = mail_config_web_view_constructed;
+	object_class->constructed = settings_web_view_constructed;
 
 	extension_class = E_EXTENSION_CLASS (class);
 	extension_class->extensible_type = E_TYPE_WEB_VIEW;
 }
 
 static void
-e_mail_config_web_view_class_finalize (EMailConfigWebViewClass *class)
+e_settings_web_view_class_finalize (ESettingsWebViewClass *class)
 {
 }
 
 static void
-e_mail_config_web_view_init (EMailConfigWebView *extension)
+e_settings_web_view_init (ESettingsWebView *extension)
 {
-	extension->priv = E_MAIL_CONFIG_WEB_VIEW_GET_PRIVATE (extension);
+	extension->priv = E_SETTINGS_WEB_VIEW_GET_PRIVATE (extension);
 }
 
 void
-e_mail_config_web_view_type_register (GTypeModule *type_module)
+e_settings_web_view_type_register (GTypeModule *type_module)
 {
 	/* XXX G_DEFINE_DYNAMIC_TYPE declares a static type registration
 	 *     function, so we have to wrap it with a public function in
 	 *     order to register types from a separate compilation unit. */
-	e_mail_config_web_view_register_type (type_module);
+	e_settings_web_view_register_type (type_module);
 }
 
diff --git a/modules/calendar/e-cal-config-model.h b/modules/settings/e-settings-web-view.h
similarity index 50%
rename from modules/calendar/e-cal-config-model.h
rename to modules/settings/e-settings-web-view.h
index e5d0456..bc56cef 100644
--- a/modules/calendar/e-cal-config-model.h
+++ b/modules/settings/e-settings-web-view.h
@@ -1,5 +1,5 @@
 /*
- * e-cal-config-model.h
+ * e-settings-web-view.h
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -16,50 +16,49 @@
  *
  */
 
-#ifndef E_CAL_CONFIG_MODEL_H
-#define E_CAL_CONFIG_MODEL_H
+#ifndef E_SETTINGS_WEB_VIEW_H
+#define E_SETTINGS_WEB_VIEW_H
 
 #include <libebackend/libebackend.h>
 
 /* Standard GObject macros */
-#define E_TYPE_CAL_CONFIG_MODEL \
-	(e_cal_config_model_get_type ())
-#define E_CAL_CONFIG_MODEL(obj) \
+#define E_TYPE_SETTINGS_WEB_VIEW \
+	(e_settings_web_view_get_type ())
+#define E_SETTINGS_WEB_VIEW(obj) \
 	(G_TYPE_CHECK_INSTANCE_CAST \
-	((obj), E_TYPE_CAL_CONFIG_MODEL, ECalConfigModel))
-#define E_CAL_CONFIG_MODEL_CLASS(cls) \
+	((obj), E_TYPE_SETTINGS_WEB_VIEW, ESettingsWebView))
+#define E_SETTINGS_WEB_VIEW_CLASS(cls) \
 	(G_TYPE_CHECK_CLASS_CAST \
-	((cls), E_TYPE_CAL_CONFIG_MODEL, ECalConfigModelClass))
-#define E_IS_CAL_CONFIG_MODEL(obj) \
+	((cls), E_TYPE_SETTINGS_WEB_VIEW, ESettingsWebViewClass))
+#define E_IS_SETTINGS_WEB_VIEW(obj) \
 	(G_TYPE_CHECK_INSTANCE_TYPE \
-	((obj), E_TYPE_CAL_CONFIG_MODEL))
-#define E_IS_CAL_CONFIG_MODEL_CLASS(cls) \
+	((obj), E_TYPE_SETTINGS_WEB_VIEW))
+#define E_IS_SETTINGS_WEB_VIEW_CLASS(cls) \
 	(G_TYPE_CHECK_CLASS_TYPE \
-	((cls), E_TYPE_CAL_CONFIG_MODEL))
-#define E_CAL_CONFIG_MODEL_GET_CLASS(obj) \
+	((cls), E_TYPE_SETTINGS_WEB_VIEW))
+#define E_SETTINGS_WEB_VIEW_GET_CLASS(obj) \
 	(G_TYPE_INSTANCE_GET_CLASS \
-	((obj), E_TYPE_CAL_CONFIG_MODEL, ECalConfigModelClass))
+	((obj), E_TYPE_SETTINGS_WEB_VIEW, ESettingsWebViewClass))
 
 G_BEGIN_DECLS
 
-typedef struct _ECalConfigModel ECalConfigModel;
-typedef struct _ECalConfigModelClass ECalConfigModelClass;
-typedef struct _ECalConfigModelPrivate ECalConfigModelPrivate;
+typedef struct _ESettingsWebView ESettingsWebView;
+typedef struct _ESettingsWebViewClass ESettingsWebViewClass;
+typedef struct _ESettingsWebViewPrivate ESettingsWebViewPrivate;
 
-struct _ECalConfigModel {
+struct _ESettingsWebView {
 	EExtension parent;
-	ECalConfigModelPrivate *priv;
+	ESettingsWebViewPrivate *priv;
 };
 
-struct _ECalConfigModelClass {
+struct _ESettingsWebViewClass {
 	EExtensionClass parent_class;
 };
 
-GType		e_cal_config_model_get_type	(void) G_GNUC_CONST;
-void		e_cal_config_model_type_register
+GType		e_settings_web_view_get_type	(void) G_GNUC_CONST;
+void		e_settings_web_view_type_register
 						(GTypeModule *type_module);
 
 G_END_DECLS
 
-#endif /* E_CAL_CONFIG_MODEL_H */
-
+#endif /* E_SETTINGS_WEB_VIEW_H */
diff --git a/modules/settings/evolution-module-settings.c b/modules/settings/evolution-module-settings.c
new file mode 100644
index 0000000..f700555
--- /dev/null
+++ b/modules/settings/evolution-module-settings.c
@@ -0,0 +1,57 @@
+/*
+ * evolution-module-settings.c
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the program; if not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+#include "e-settings-cal-model.h"
+#include "e-settings-calendar-item.h"
+#include "e-settings-calendar-view.h"
+#include "e-settings-comp-editor.h"
+#include "e-settings-date-edit.h"
+#include "e-settings-mail-formatter.h"
+#include "e-settings-mail-reader.h"
+#include "e-settings-meeting-store.h"
+#include "e-settings-meeting-time-selector.h"
+#include "e-settings-name-selector-entry.h"
+#include "e-settings-web-view.h"
+#include "e-settings-web-view-gtkhtml.h"
+
+/* Module Entry Points */
+void e_module_load (GTypeModule *type_module);
+void e_module_unload (GTypeModule *type_module);
+
+G_MODULE_EXPORT void
+e_module_load (GTypeModule *type_module)
+{
+	e_settings_cal_model_type_register (type_module);
+	e_settings_calendar_item_type_register (type_module);
+	e_settings_calendar_view_type_register (type_module);
+	e_settings_comp_editor_type_register (type_module);
+	e_settings_date_edit_type_register (type_module);
+	e_settings_mail_formatter_type_register (type_module);
+	e_settings_mail_reader_type_register (type_module);
+	e_settings_meeting_store_type_register (type_module);
+	e_settings_meeting_time_selector_type_register (type_module);
+	e_settings_name_selector_entry_type_register (type_module);
+	e_settings_web_view_type_register (type_module);
+	e_settings_web_view_gtkhtml_type_register (type_module);
+}
+
+G_MODULE_EXPORT void
+e_module_unload (GTypeModule *type_module)
+{
+}
+



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]